Documentação da API

Integre o FreeOCR.AI nas suas aplicações com a nossa API.

Autenticação

Todas as requisições de API requerem uma chave de API passada no cabeçalho Authorization como token Bearer.

Authorization: Bearer focr_your_api_key_id

Crie e gerencie suas chaves de API na página de Chaves de API.


Limites de taxa

Limite de taxa padrão: 200 requisições por minuto por chave de API.

Os limites de taxa podem ser ajustados por chave. Entre em contato com o suporte para limites personalizados.


POST /ocr

Demo ao vivo

Extrair texto de imagens preservando o layout.

Parâmetros

multipartimage(obrigatório) - Arquivo de imagem
queryformat(opcional) - Formato de resposta: json (padrão), text, docx
queryversion(opcional) - Versão do modelo: 260428 (padrão)

Resposta

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

Retorna GitHub Flavored Markdown com preservação de layout, incluindo tabelas HTML e fórmulas LaTeX.

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

O Markdown é convertido para texto simples por conversão interna.

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

Download de arquivo binário. Content-Disposition: attachment; filename="result.docx"

Exemplo

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

POST /table

Demo ao vivo

Extrair tabelas de imagens em dados estruturados.

Parâmetros

multipartimage(obrigatório) - Arquivo de imagem
queryformat(opcional) - Formato de resposta: json (padrão), csv, xlsx
queryversion(opcional) - Versão do modelo: 260428 (padrão)

Resposta

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 tabela inclui um title e seu conteúdo como string de tabela HTML.

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

Download de arquivo CSV em texto simples. Múltiplas tabelas são separadas por delimitadores --- SheetName ---. Content-Disposition: attachment; filename="tables.csv"

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

Download de arquivo XLSX binário. Cada tabela se torna uma planilha separada com o nome do seu título. Content-Disposition: attachment; filename="tables.xlsx"

Exemplo

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

POST /extract

Demo ao vivo

Extrair campos específicos de imagens usando IA.

Parâmetros

multipartimage(obrigatório) - Arquivo de imagem
queryfields(obrigatório) - Campos a extrair (parâmetro repetido ou array JSON)
queryformat(opcional) - Formato de resposta: json (padrão), csv, xlsx
queryversion(opcional) - Versão do modelo: 260428 (padrão), 260215

Resposta

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 é retornado como key com um array de values extraídos.

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

Arquivo CSV com as chaves dos campos como cabeçalhos de coluna e os valores extraídos como linhas. Content-Disposition: attachment; filename="extraction.csv"

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

Arquivo XLSX com uma única planilha "Results", mesmo layout do CSV. Content-Disposition: attachment; filename="extraction.xlsx"

Exemplo

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"

Respostas de erro

401

Não autorizado

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

Saldo insuficiente

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

Limite de taxa excedido

{ "error": { "code": "rate_limit_exceeded", "message": "Limite de taxa excedido. Tente novamente mais tarde." } }
500

Erro interno

{ "error": { "code": "internal_error", "message": "Falha ao processar imagem" } }