Documentación de API

Integre FreeOCR.AI en sus aplicaciones con nuestra API.

Autenticación

Todas las solicitudes de API requieren una clave de API pasada en el encabezado Authorization como token Bearer.

Authorization: Bearer focr_your_api_key_id

Cree y gestione sus claves de API en la página de Claves de API.


Límites de velocidad

Límite de velocidad predeterminado: 200 solicitudes por minuto por clave de API.

Los límites de velocidad se pueden ajustar por clave. Contacte con soporte para límites personalizados.


POST /ocr

Demo en vivo

Extraer texto de imágenes conservando el diseño.

Parámetros

multipartimage(requerido) - Archivo de imagen
queryformat(opcional) - Formato de respuesta: json (predeterminado), text, docx
queryversion(opcional) - Versión del modelo: 260428 (predeterminado)

Respuesta

jsonContent-Type: application/json
{
  "text": "# Document Title\n\nExtracted markdown content..."
}

Devuelve GitHub Flavored Markdown con conservación del diseño, incluyendo tablas HTML y fórmulas LaTeX.

textContent-Type: application/json
{
  "text": "Document Title\n\nExtracted plain text content..."
}

El Markdown se convierte a texto plano mediante conversión interna.

docxContent-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document

Descarga de archivo binario. Content-Disposition: attachment; filename="result.docx"

Ejemplo

Format:
curl -X POST "https://freeocr.ai/api/v1/platform/ocr" \
  -H "Authorization: Bearer focr_your_key" \
  -F "image=@document.png"

POST /table

Demo en vivo

Extraer tablas de imágenes en datos estructurados.

Parámetros

multipartimage(requerido) - Archivo de imagen
queryformat(opcional) - Formato de respuesta: json (predeterminado), csv, xlsx
queryversion(opcional) - Versión del modelo: 260428 (predeterminado)

Respuesta

jsonContent-Type: application/json
{
  "tables": [
    {
      "title": "Sales Report",
      "html": "<table><tr><th>Item</th><th>Qty</th></tr><tr><td>Apple</td><td>10</td></tr></table>"
    }
  ]
}

Cada tabla incluye un title y su contenido como cadena de tabla HTML.

csvContent-Type: text/csv; charset=utf-8

Descarga de archivo CSV de texto plano. Múltiples tablas se separan con delimitadores --- SheetName ---. Content-Disposition: attachment; filename="tables.csv"

xlsxContent-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Descarga de archivo XLSX binario. Cada tabla se convierte en una hoja separada con su título como nombre. Content-Disposition: attachment; filename="tables.xlsx"

Ejemplo

Format:
curl -X POST "https://freeocr.ai/api/v1/platform/table" \
  -H "Authorization: Bearer focr_your_key" \
  -F "image=@spreadsheet.png"

POST /extract

Demo en vivo

Extraer campos específicos de imágenes usando IA.

Parámetros

multipartimage(requerido) - Archivo de imagen
queryfields(requerido) - Campos a extraer (parámetro repetido o array JSON)
queryformat(opcional) - Formato de respuesta: json (predeterminado), csv, xlsx
queryversion(opcional) - Versión del modelo: 260428 (predeterminado), 260215

Respuesta

jsonContent-Type: application/json
{
  "result": [
    { "key": "name", "values": ["John Doe"] },
    { "key": "date", "values": ["2024-03-15"] },
    { "key": "amount", "values": ["$1,234.56"] }
  ]
}

Cada campo solicitado se devuelve como key con un array de values extraídas.

csvContent-Type: text/csv; charset=utf-8

Archivo CSV con las claves de campo como encabezados de columna y los valores extraídos como filas. Content-Disposition: attachment; filename="extraction.csv"

xlsxContent-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Archivo XLSX con una única hoja "Results", mismo diseño que CSV. Content-Disposition: attachment; filename="extraction.xlsx"

Ejemplo

Format:
curl -X POST "https://freeocr.ai/api/v1/platform/extract?fields=name&fields=date&fields=amount" \
  -H "Authorization: Bearer focr_your_key" \
  -F "image=@invoice.png"

Respuestas de error

401

No autorizado

{ "error": { "code": "unauthorized", "message": "Clave de API inválida" } }
402

Saldo insuficiente

{ "error": { "code": "insufficient_credits", "message": "Saldo insuficiente. Por favor, recargue." } }
429

Límite de velocidad excedido

{ "error": { "code": "rate_limit_exceeded", "message": "Límite de velocidad excedido. Inténtelo más tarde." } }
500

Error interno

{ "error": { "code": "internal_error", "message": "Error al procesar la imagen" } }