Leer un formulario rellenado
Un formulario de papel rellenado es exactamente el tipo de documento que las computadoras debieron haber jubilado hace años, y sin embargo recepciones, clínicas y oficinas de gobierno todavía dependen de ellos. Este endpoint lee un formulario escaneado o fotografiado campo por campo —texto impreso, escritura a mano, casillas marcadas— y devuelve las respuestas como JSON estructurado en lugar de una imagen plana.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
La última milla que se quedó en papel
Muchos procesos se digitalizaron hace décadas, pero el punto real de captura de datos —una hoja de admisión de un paciente, una encuesta llenada en un quiosco, un trámite gubernamental completado a mano en un mostrador— con frecuencia se quedó tercamente en papel, porque obligar a cada persona a llenarlo en una pantalla no siempre es realista. Este endpoint existe para esa última milla: toma el formulario de papel tal como fue completado y lo convierte en datos sin pedirle a nadie que lo transcriba.
Qué lee realmente el endpoint
A diferencia de un OCR genérico que devuelve texto sin diferenciar, este endpoint entiende el formulario como un conjunto de campos: localiza las etiquetas, lee lo que se escribió o tecleó junto a cada una, interpreta casillas marcadas y opciones seleccionadas, y devuelve cada respuesta asociada al nombre de su campo. Envíe el formulario escaneado o fotografiado a POST /ocr/form, reciba un task_id de inmediato, y obtenga las respuestas estructuradas mediante un webhook firmado o un enlace firmado válido por 24 horas una vez que termina el procesamiento.
Por qué los formularios son más difíciles de lo que parecen
Un formulario parece simple comparado con un contrato o un currículum, pero es engañosamente exigente de procesar bien: la letra manuscrita varía enormemente de una persona a otra, una casilla puede ser una palomita, una X, un cuadro relleno o una opción encerrada en un círculo según quién la haya llenado, y la misma plantilla fotografiada en ángulo luce muy distinta a su gemela escaneada. Leer un formulario de forma confiable exige manejar esa inconsistencia a nivel de cada campo, no solo pasar reconocimiento de texto sobre toda la página.
Dónde rinde frutos la lectura automática de formularios
Clínicas y hospitales lo usan para digitalizar hojas de admisión de pacientes sin que una persona transcriba cada campo; oficinas de gobierno y municipalidades lo usan para procesar trámites en papel presentados en el mostrador; firmas de investigación de mercado lo usan para convertir una pila de encuestas en papel en una hoja de cálculo lista para analizar, todo sin rediseñar el formulario ni pedirle a los encuestados que cambien su manera de llenarlo.
Un precio que refleja el trabajo campo por campo
Este endpoint cuesta $0.010 por solicitud más $0.0575 por página, más alto que la extracción de texto plano porque leer campos discretos, escritura manuscrita y casillas con precisión implica genuinamente más trabajo; se cobra únicamente cuando un formulario se procesa con éxito, y un intento fallido se reintenta automáticamente hasta tres veces antes de devolver un error claro sin ningún cargo. No hay capa gratuita ni prueba: el acceso requiere saldo prepago, lo que mantiene el endpoint rápido y reservado para envíos reales.
Qué puede hacer con ella
Digitalización de admisión de pacientes
Convierte hojas de admisión manuscritas de la recepción de una clínica en registros estructurados sin captura manual de datos.
Procesamiento de trámites gubernamentales
Lee solicitudes en papel presentadas en un mostrador y las convierte en registros de base de datos, sin retecleo manual del personal.
Captura de encuestas de investigación de mercado
Convierte una pila de encuestas en papel, incluidas casillas y comentarios manuscritos, en una hoja de cálculo lista para analizar.
Recepción de formularios de reclamos de seguros
Extrae los datos del asegurado y las opciones marcadas en formularios de reclamo escaneados para agilizar la clasificación inicial.
Preguntas frecuentes
¿La api extraer datos de formularios lee escritura a mano?
Sí, interpreta entradas manuscritas además de texto impreso y casillas marcadas, y devuelve cada respuesta asociada a su campo.
¿Qué tipos de archivo puedo enviar?
Páginas escaneadas y fotografías de formularios de papel rellenados, además de documentos de formulario digitales nativos.
¿Existe una capa gratuita para la api extraer datos de formularios?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Por qué cuesta más que una extracción de texto plano?
Leer campos discretos, escritura manuscrita y casillas con precisión requiere más procesamiento que extraer texto plano, lo que se refleja en el precio de $0.010 por solicitud más $0.0575 por página.
¿Cómo recibo los datos extraídos del formulario?
Mediante un webhook firmado cuando termina la tarea, o desde un enlace firmado válido por 24 horas.
¿Se cobra si el formulario no se procesa correctamente?
No. Las tareas fallidas se reintentan automáticamente hasta tres veces y nunca se cobran si aun así fallan.
¿Reconoce casillas y opciones seleccionadas?
Sí, interpreta palomitas, marcas de X, cuadros rellenos y selecciones encerradas en círculo como parte de la respuesta de cada campo.
¿Puedo procesar formularios de varias páginas en lote?
Sí, el precio es por página y cada envío corre como su propia tarea asíncrona, así que los lotes grandes se procesan en paralelo.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/ocr/form \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/ocr/form", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ocr/form",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ocr/form", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ocr/form", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ocr.form",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
max_pages | 10 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
413 | input_too_large | El archivo supera el límite de tamaño. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |