Escanear una tarjeta de visita
Un montón de tarjetas de presentación de una feria comercial es una pila de contactos que todavía no existen en ningún CRM. Este endpoint lee la foto de una tarjeta y devuelve nombre, cargo, empresa, teléfono, correo y dirección como JSON estructurado, para que un apretón de manos se convierta en un contacto sin que nadie tenga que digitar nada.
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 tarjeta que nunca termina de capturarse
Las tarjetas de presentación sobreviven como ritual de networking precisamente porque se intercambian rápido, pero esa rapidez tiene un costo después: la tarjeta queda en el bolsillo de un saco, un cajón, una caja de zapatos, hasta que termina descartada sin leer porque digitar cuarenta contactos en un CRM después de una conferencia no es el plan de nadie para un lunes. La tarjeta cumplió su función en el momento del saludo; este endpoint termina el trabajo que ella empezó.
Quién escanea tarjetas en vez de digitarlas
Equipos de ventas que procesan el cúmulo de fotos de tarjetas capturadas en un escáner de gafetes de feria hacia contactos de CRM, aplicaciones de networking que permiten fotografiar una tarjeta y guardar el contacto al instante, organizadores de eventos que ofrecen a los asistentes una función de captura de contactos, y cualquiera que esté digitalizando un fichero heredado de tarjetas de papel antes de que se pierda para siempre.
La ficha de contacto que recibe
Envía la foto, recibe de inmediato un task_id, y la tarea terminada devuelve nombre completo, cargo, empresa, números de teléfono, correo electrónico y dirección física como campos JSON separados — la misma forma que pide un formulario de contacto, lista para insertarse directamente en un CRM o una libreta de direcciones en lugar de un bloque de texto sin estructura.
Cómo encaja en un flujo de captura de contactos
Como la llamada es asíncrona y se cobra por imagen, un lote de una conferencia —decenas de tarjetas fotografiadas seguidas— es simplemente decenas de solicitudes en paralelo: una aplicación móvil sube cada foto al tomarla, y el webhook devuelve cada ficha de contacto de forma independiente, lista para enviarse al CRM en el momento en que se procesa y no después de una sesión de captura manual de vuelta en la oficina.
Por qué una tarjeta es más difícil de leer de lo que parece
Una tarjeta de presentación comprime varios campos distintos —un nombre, un cargo, una empresa, varios números de teléfono, un correo, a veces un logo que hace las veces de nombre de empresa— en un rectángulo pequeño sin un diseño consistente entre marcas, tipografías o idiomas. Leer el texto es solo la mitad del trabajo; etiquetar correctamente cuál línea es el cargo y cuál es la empresa es lo que convierte texto crudo en un contacto utilizable.
Qué puede hacer con ella
Captura de contactos en ferias comerciales
Un vendedor fotografía las tarjetas recolectadas en un stand, y cada una se convierte en un contacto de CRM estructurado al final del día.
Guardado de contactos en app de networking
Una aplicación de networking permite fotografiar la tarjeta de un nuevo contacto y guarda nombre, cargo y teléfono directamente en la libreta de direcciones.
Función de captura en eventos
Un organizador de eventos ofrece a los expositores una función de escaneo que convierte las fotos de tarjetas de los asistentes en una lista de contactos descargable.
Digitalizar un fichero heredado de tarjetas
Una oficina digitaliza un cajón de tarjetas de presentación acumuladas en una base de datos de contactos buscable, en un solo lote.
Preguntas frecuentes
¿Cómo uso la API Escanear Tarjetas?
Envíe una foto a POST /ocr/business-card, reciba de inmediato un task_id, y obtenga la ficha de contacto por webhook o enlace firmado cuando esté lista.
¿Tiene 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ál es el precio?
$0.010 por solicitud más $0.0575 por imagen, precio publicado y plano por tarjeta escaneada.
¿Qué campos extrae?
Nombre, cargo, empresa, números de teléfono, correo electrónico y dirección física, cada uno como su propio campo JSON en lugar de un bloque de texto.
¿Funciona con tarjetas en distintos idiomas?
Sí, lee tarjetas en idiomas y alfabetos comunes y devuelve los campos que logra identificar en la tarjeta.
¿Puedo escanear una pila completa de tarjetas a la vez?
Cada solicitud procesa una imagen de tarjeta y devuelve su propio task_id, así que una pila es simplemente solicitudes en paralelo recogidas por webhook, no una sola carga masiva.
¿Qué pasa si la tarjeta tiene un diseño inusual o un logo en vez del nombre de la empresa?
Hace su mejor esfuerzo por identificar empresa y cargo incluso en diseños poco estándar, pero tarjetas muy estilizadas o basadas solo en logo pueden devolver menos campos.
¿Se cobra si falla el escaneo?
No. Una tarea fallida se reintenta automáticamente hasta tres veces y nunca se cobra; en su lugar recibe un error claro.
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/business-card \
-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/business-card", {
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/business-card",
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/business-card", 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/business-card", 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.business_card",
"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. |