Leer un formulario rellenado
Fotografíe una hoja de ingreso rellenada y cada respuesta vuelve junto a su etiqueta: texto escrito a máquina, letra a mano, una casilla marcada, una X o una opción rodeada, leído pregunta por pregunta. Paga por uso, sin suscripción.
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.
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.
Por qué un formulario sencillo cuesta de leer
Un formulario parece simple al lado de un contrato, pero leerlo bien es sorprendentemente exigente. La letra cambia muchísimo de una persona a otra. Una casilla marcada puede ser una paloma, una X, un cuadro relleno o una opción rodeada con un círculo, según quién la rellenó. Y el mismo formulario fotografiado de lado no se parece en nada a su versión escaneada. Un reconocimiento de texto sobre toda la página devuelve un bloque de palabras sin orden. Esta herramienta, en cambio, lee el formulario pregunta por pregunta: localiza cada etiqueta, lee lo escrito a su lado, interpreta las casillas y opciones marcadas y devuelve cada respuesta unida a su etiqueta.
Dónde siguen llegando formularios en papel
Muchos procesos se digitalizaron hace tiempo, pero el momento de recoger los datos a menudo siguió en papel, porque no siempre es realista que todo el mundo use una pantalla. Las clínicas convierten las hojas de ingreso escritas a mano en registros sin que nadie las vuelva a teclear. Las oficinas públicas leen las solicitudes entregadas en ventanilla. Los equipos de investigación pasan un montón de encuestas en papel, comentarios incluidos, a una tabla lista para analizar. Para documentos de identidad u órdenes de compra encajan mejor los lectores específicos.
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.
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. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿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.
Herramientas relacionadas
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, por email y desde Telegram — y pronto también desde nuestra app.
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 '{"image":"https://ejemplo.com/imagen.jpg"}'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({
"image": "https://ejemplo.com/imagen.jpg"
})
});
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={
"image": "https://ejemplo.com/imagen.jpg"
},
)
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" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
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
{
"image": "https://ejemplo.com/imagen.jpg"
}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. |
Notas técnicas
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.
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.
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.
Preguntas técnicas
¿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.