Traducir texto de una foto
El menú de un restaurante fotografiado en otra ciudad, una etiqueta de advertencia tomada en una planta, la captura de un chat en un idioma que su equipo de soporte no lee: este endpoint primero lee los píxeles y luego traduce lo que encuentra, en una sola llamada. Sin paso de OCR aparte, sin retipear nada a mano.
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
La mayoría de las herramientas de traducción esperan texto limpio y seleccionable, pero buena parte del texto del mundo real nunca llega así: está incrustado en la foto de un letrero, un contrato escaneado, una captura compartida en un ticket de soporte, o una etiqueta de producto fotografiada en una bodega. Antes de traducir ese texto hay que reconocerlo, y la calidad del reconocimiento depende mucho de la iluminación, el ángulo, la tipografía y la resolución de la imagen, que es justo la parte que este endpoint absorbe para que quien lo llama no tenga que combinar dos herramientas por su cuenta.
Una llamada, dos pasos por dentro
Se envía POST /translate/ocr con una imagen y un idioma de destino, y la tarea primero extrae el texto visible con reconocimiento óptico de caracteres y luego pasa ese texto por traducción, devolviendo tanto el texto de origen reconocido como su traducción. Al ser asíncrona, la respuesta inmediata es un task_id, y el resultado llega por webhook firmado o mediante un enlace firmado que se mantiene disponible por 24 horas, útil cuando la imagen es grande o la cola está ocupada.
Una breve nota sobre el OCR
El reconocimiento óptico de caracteres nace de dispositivos construidos para leer numerales impresos a mediados del siglo XX, mucho antes de convertirse en la tecnología de fondo dentro de escáneres, lectores de placas y apps de cámara de teléfono; lo que ha cambiado desde entonces es que el reconocimiento moderno maneja fotos reales y desordenadas (ángulos torcidos, tipografías mixtas, poca luz) en lugar de solo escaneos limpios, y eso es justo lo que vuelve prácticos los flujos de foto a traducción en vez de una curiosidad de laboratorio.
Dónde rinde más este endpoint
Aplicaciones de viaje y hotelería que traducen menús y señalización a partir de una foto del usuario, equipos de soporte al cliente que reciben capturas de pantalla en idiomas extranjeros, vendedores de comercio electrónico que traducen etiquetas y empaques fotografiados de proveedores en el extranjero, y equipos de cumplimiento que leen letreros de seguridad o documentos de envío capturados en campo.
Cómo encaja en un flujo más grande
El precio es transparente y aditivo: una base de $0.011 por solicitud más $0.0705 por cada imagen procesada, así que el costo escala de forma predecible con el volumen en lugar de esconderse detrás de créditos empaquetados. Como la tarea solo se cobra si tiene éxito, con tres reintentos automáticos antes de reportar un error claro, es seguro conectarla directamente a un flujo de recepción de contenido, un bot de tickets de soporte o el flujo de subida de fotos de una app móvil sin tener que vigilar reintentos manualmente.
Qué puede hacer con ella
Apps de viaje
Un viajero fotografía un menú en el extranjero y la app muestra una traducción superpuesta al instante sin que el usuario escriba una sola palabra.
Triage de tickets de soporte
Una herramienta de soporte traduce automáticamente las capturas de pantalla que usuarios de otros idiomas adjuntan a sus tickets, para que los agentes no tengan que adivinar.
Comercio electrónico transfronterizo
Un vendedor traduce las etiquetas de producto fotografiadas del empaque de un proveedor extranjero antes de publicar el artículo en un nuevo mercado.
Verificaciones de cumplimiento en campo
Una app de inspección lee y traduce letreros de seguridad fotografiados en sitio para confirmar que cumplen con el texto requerido.
Preguntas frecuentes
¿Cómo funciona la API para traducir el texto de una imagen?
Ejecuta reconocimiento óptico de caracteres sobre la imagen para extraer el texto visible y luego lo traduce al idioma de destino, devolviendo ambos en una sola respuesta.
¿Qué formatos de imagen acepta?
Funciona con formatos comunes de foto y captura de pantalla; la tarea está pensada para fotos reales, no solo escaneos limpios, incluyendo tomas inclinadas o con poca luz.
¿Hay una prueba gratuita?
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.
¿Cuánto cuesta traducir el texto de una imagen?
Una base de $0.011 por solicitud más $0.0705 por cada imagen procesada, publicado por adelantado y sin créditos ocultos.
¿Puedo traducir muchas fotos en volumen?
Sí, cada imagen se envía como una solicitud asíncrona independiente y se cobra por separado, lo cual se adapta bien a flujos por lotes.
¿Qué tan precisa es la lectura del texto?
La precisión depende de la calidad de la imagen (ángulo, iluminación y resolución influyen), pero la tarea está diseñada para fotos reales típicas, no solo escaneos de estudio.
¿Cómo recibo el resultado traducido?
Mediante un webhook firmado cuando la tarea termina, o un enlace firmado válido por 24 horas si prefiere consultarlo usted mismo.
¿Qué pasa si falla el paso de OCR o de traducción?
La tarea reintenta automáticamente hasta tres veces y nunca se cobra si falla; recibirá un error claro una vez agotados los reintentos.
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/translate/ocr \
-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/translate/ocr", {
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/translate/ocr",
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/translate/ocr", 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/translate/ocr", 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": "translate.ocr",
"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_tokens | 20000 |
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. |