Skip to main content
Documentación de API

Imagen a tabla

Extrae estructuras de tablas como JSON, CSV o Excel.

POST /api/v1/image-to-table

Envía una imagen en el campo multipart image a POST /api/v1/image-to-table; los valores admitidos de format son json (predeterminado), csv y xlsx. Sustituye YOUR_API_KEY y table.png, y llama desde tu servidor según las instrucciones Bearer.

curl --silent --show-error --include --max-time 150 \
  'https://freeaiocr.com/api/v1/image-to-table?format=json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Idempotency-Key: example-table-request-0001' \
  -F 'image=@table.png'

La respuesta JSON incluye request_id, usage, billing y tables con objetos {title, html}. El HTML se limpia por seguridad; Table N es un nombre de respaldo, no un título detectado. No se expone el texto bruto del modelo.

{
  "request_id": "b2c8ec98-2a36-4f87-99d2-3d7839b92518",
  "usage": {
    "input_tokens": 2000,
    "output_tokens": 4000
  },
  "billing": {
    "currency": "USD",
    "price_version": "2026-10-26-v1",
    "base_usd": "0.002000000",
    "input_overage_usd": "0.000000000",
    "output_overage_usd": "0.002400000",
    "total_usd": "0.004400000"
  },
  "tables": [
    {
      "title": "Sales",
      "html": "<table><tbody><tr><th>Item</th><th>Qty</th></tr><tr><td>Notebook</td><td>0012</td></tr></tbody></table>"
    }
  ]
}

Conserva la misma imagen y el mismo Idempotency-Key para descargar otros formatos sin volver a reconocer ni pagar:

curl --silent --show-error --fail --output tables.csv --max-time 150 \
  'https://freeaiocr.com/api/v1/image-to-table?format=csv' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Idempotency-Key: example-table-request-0001' \
  -F 'image=@table.png'
curl --silent --show-error --fail --output tables.xlsx --max-time 150 \
  'https://freeaiocr.com/api/v1/image-to-table?format=xlsx' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Idempotency-Key: example-table-request-0001' \
  -F 'image=@table.png'
  • CSV: una tabla produce CSV UTF-8 normal; varias tablas producen secciones separadas por líneas en blanco, cada una encabezada por # Table N: Title. No es un único CSV estándar. Divide las secciones antes de importar. Se neutralizan cadenas que podrían ejecutar fórmulas
  • XLSX: un archivo Excel con una hoja Table N por tabla y celdas combinadas preservadas. Los números, incluidos los ceros iniciales, se guardan como texto; revísalos antes de calcular
  • Entrada: la API solo admite una imagen PNG, JPEG o WebP de hasta 10 MB. La herramienta web también admite HEIC, HEIF y BMP, pero la API no. No se admiten PDF, documentos multipágina ni lotes, aunque una imagen puede contener varias tablas

Errores específicos y reglas compartidas

Si no se detecta una tabla válida, se devuelve 422 no_tables antes de la liquidación, se libera la reserva y no se cobra. Si falla la exportación CSV/XLSX tras reconocer y cobrar, se devuelve 503 export_failed con recognition_succeeded: true. Reintenta con format=json durante la ventana de repetición usando la misma imagen, cuenta e Idempotency-Key; no inicies otra operación si el cobro es incierto. Los errores son JSON con request_id, error.code y Cache-Control: no-store; las descargas correctas incluyen X-Request-Id, X-OCR-Charged-USD y X-OCR-Price-Version.

Cambiar format no repite el reconocimiento ni el cargo. Los resultados terminados pueden recuperarse durante 24 horas; los reintentos cuentan en los límites de frecuencia. Reutilizar una clave entre endpoints devuelve 409 idempotency_conflict, y el saldo API es independiente de los créditos web. Consulta precios y reservas, límites e idempotencia y reintentos seguros.