Extraer el texto de una imagen
La API OCR lee el texto que hay dentro de una foto, una captura de pantalla o un documento escaneado como imagen, y lo devuelve como texto plano y buscable. Importa porque una imagen llena de palabras es, de otro modo, un callejón sin salida para la búsqueda, la indexación o cualquier proceso posterior que espera texto y no píxeles.
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.
Texto atrapado en píxeles
Una foto de un recibo, la captura de una conversación, la imagen de una pizarra: todas contienen información que una persona lee de un vistazo, pero que una base de datos no puede consultar, un buscador no puede encontrar y un script no puede analizar. El reconocimiento óptico de caracteres existe precisamente para cerrar esa brecha, y es una tecnología práctica desde que los escáneres planos y los primeros motores de reconocimiento hicieron viable digitalizar archivos de papel hace décadas; la api ocr aplica ese mismo principio a cualquier imagen que llegue hoy a su flujo de trabajo.
Qué envía y qué recibe
Envía una imagen — una foto tomada con el celular, una captura de pantalla, una página escaneada guardada como imagen — y el servicio la analiza para detectar y transcribir el texto que contiene, devolviendo el contenido reconocido como texto plano que puede guardar, buscar o pasar a otro proceso. Está preparado para la variabilidad de las imágenes reales: iluminación desigual, una ligera inclinación, texto sobre un fondo cargado, porque las imágenes de producción rara vez son tan limpias como un escaneo de laboratorio.
El ciclo de la solicitud asíncrona
Una llamada a POST /ocr/image devuelve un task_id de inmediato en lugar de obligarle a mantener una conexión abierta mientras corre el reconocimiento. Una vez extraído el texto, se le avisa mediante un webhook firmado — la opción indicada para un flujo que procesa muchas imágenes de forma automática — o puede obtener el resultado desde un enlace firmado que permanece válido 24 horas, útil cuando una persona solo necesita bajar una transcripción.
Dónde encaja el OCR en un sistema más grande
Esto encaja de forma natural detrás de una función de carga de documentos, una app que escanea recibos, una herramienta de inventario que fotografía etiquetas de producto, o cualquier flujo donde los usuarios entregan imágenes en lugar de datos escritos. Como el endpoint es asíncrono y sin estado por solicitud, escala igual sea que procese la carga de un solo usuario o un trabajo por lotes con miles de imágenes durante la noche, sin necesitar una integración distinta para cada caso.
Costo, reintentos y manejo de datos
El precio es de $0.010 por solicitud más $0.0575 por imagen, publicado y predecible, sin sistemas de tokens ni unidades inventadas. Las imágenes que fallan en el reconocimiento se reintentan tres veces antes de devolver un error claro, y una tarea fallida nunca se cobra — solo paga por texto realmente entregado. El acceso requiere saldo prepago, sin plan gratuito ni prueba, lo que mantiene el endpoint rápido y libre de abuso; sin saldo, las llamadas devuelven 402. Las imágenes cargadas y el texto extraído se eliminan tras la ventana de retención y nunca se usan para entrenamiento.
Qué puede hacer con ella
Captura de recibos y gastos
Una app de control de gastos permite fotografiar un recibo y extrae el comercio, la fecha y el monto como texto en lugar de guardar una imagen que no se puede buscar.
Captura de pantalla a texto en tickets de soporte
Una herramienta de soporte convierte la captura de un mensaje de error del cliente en texto buscable para que los agentes encuentren tickets similares después.
Registro de etiquetas de producto e inventario
Una app de bodega fotografía las etiquetas de producto en la estantería y extrae números de modelo y texto directo al sistema de inventario, sin captura manual.
Digitalizar documentos fotografiados
Un equipo de campo fotografía formularios impresos en el sitio y el texto reconocido alimenta directamente la base de datos de la oficina.
Preguntas frecuentes
¿Cómo extraigo texto de una imagen con una API?
Envía la imagen a POST /ocr/image y recibe un task_id de inmediato. La api ocr la procesa de forma asíncrona y entrega el texto reconocido por webhook firmado o por un enlace firmado válido 24 horas.
¿La API OCR es gratis?
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.
¿Qué formatos de imagen acepta?
Se admiten formatos estándar como JPEG y PNG, lo que cubre fotos tomadas con el celular, capturas de pantalla y páginas escaneadas guardadas como imagen.
¿Funciona con fotos, no solo con escaneos limpios?
Sí, el reconocimiento está preparado para condiciones reales como iluminación desigual, una ligera inclinación o texto sobre un fondo cargado, no solo escaneos perfectamente planos.
¿Puedo procesar muchas imágenes a la vez?
Sí. Cada llamada es una solicitud asíncrona independiente que devuelve su propio task_id, así que un trabajo por lotes puede enviar miles de imágenes y recoger los resultados a medida que terminan.
¿Qué pasa si el OCR falla en una imagen?
El sistema reintenta tres veces antes de devolver un error claro, y una tarea fallida nunca se cobra, así que solo paga por texto que realmente se entrega.
¿Cómo se compara la API OCR con leer la imagen a mano?
Reemplaza la transcripción manual con una llamada automatizada que devuelve texto estructurado y buscable en segundos, en lugar de requerir que alguien lo teclee.
¿Por cuánto tiempo está disponible el texto extraído?
El enlace firmado permanece válido 24 horas, o puede recibir el texto de inmediato por webhook firmado; tras la ventana de retención la imagen y el texto se eliminan y nunca se usan para entrenamiento.
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/image \
-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/image", {
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/image",
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/image", 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/image", 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.image",
"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. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |