API REST

ScanToExcel API

Integre a extração de documentos com IA diretamente no seu app. Envie uma imagem ou PDF e receba dados de planilha estruturados em JSON, .xlsx ou CSV.

URL base

https://scantoexcel.ai/api/v1

Autenticação

Todas as requisições à API exigem uma chave de API enviada no header Authorization.

Authorization: Bearer sk_live_your_api_key

Gere sua chave de API gratuitamente no painel. A chave é exibida uma única vez, na criação, e armazenada apenas como hash — copie-a na hora. Você pode gerar uma nova ou revogá-la no painel a qualquer momento. Os créditos definem quantas páginas você pode extrair.

Início rápido

Extraia dados de uma imagem ou PDF com uma única chamada à API.

cURL

# JSON response
curl -X POST https://scantoexcel.ai/api/v1/extract \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -F "file=@receipt.jpg" \
  -F "output=json"

# Excel file straight to disk
curl -X POST https://scantoexcel.ai/api/v1/extract \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -F "file=@invoice.pdf" \
  -F "output=xlsx" -o result.xlsx

Python

import requests

response = requests.post(
    "https://scantoexcel.ai/api/v1/extract",
    headers={"Authorization": "Bearer sk_live_your_api_key"},
    files={"file": open("receipt.jpg", "rb")},
    data={"output": "json"}
)

data = response.json()
print(data["title"])   # "Receipt"
print(data["rows"])    # [["Item", "Qty", "Price"], ...]

JavaScript / Node.js

const form = new FormData();
form.append("file", fs.createReadStream("receipt.jpg"));
form.append("output", "json");

const res = await fetch("https://scantoexcel.ai/api/v1/extract", {
  method: "POST",
  headers: { Authorization: "Bearer sk_live_your_api_key" },
  body: form,
});

const data = await res.json();
console.log(data.title); // "Receipt"
console.log(data.rows);  // [["Item", "Qty", "Price"], ...]

Referência da API

POST/v1/extract

Envie uma imagem ou PDF e receba dados de planilha estruturados. A IA analisa o layout visual e coloca cada trecho de texto na linha e coluna certas. PDFs com várias páginas são retornados em um único array rows, de cima para baixo. A cobrança é de 1 crédito por página; extrações com falha são reembolsadas automaticamente.

Requisição (multipart/form-data)

ParâmetroTipoObrigatórioDescrição
fileFileSimImagem (JPG, PNG, WebP) ou PDF (até 10 páginas). Máx. 20 MB.
outputStringNão"json" (padrão), "xlsx" ou "csv". JSON retorna dados estruturados; xlsx/csv retornam o arquivo como corpo binário com os headers X-Extraction-Id, X-Pages, X-Credits-Used e X-Credits-Remaining.
detailStringNão"high" (padrão, ideal para documentos densos) ou "low" (mais rápido, menos tokens de imagem).
webhook_urlStringNãoURL HTTPS que recebe um POST com o resultado completo quando a extração termina. Veja Webhooks abaixo.

Resposta (JSON)

{
  "id": "aB3dE9fGhIjK1LmN",
  "status": "completed",
  "title": "Receipt - Coffee Shop",
  "rows": [
    ["Item", "Qty", "Price"],
    ["Latte", "2", "9.50"],
    ["Croissant", "1", "4.25"],
    ["", "Total", "13.75"]
  ],
  "pages": 1,
  "usage": {
    "credits_used": 1,
    "credits_remaining": 999
  }
}

Campos da resposta

CampoTipoDescrição
idStringID persistente da extração — use com GET /v1/extractions/{id}
statusStringcompleted ou failed
titleStringTítulo do documento gerado por IA
rowsString[][]Array 2D com os valores das células. A primeira linha normalmente é o cabeçalho.
pagesNumberNúmero de páginas processadas (= créditos cobrados)
usageObjectcredits_used e credits_remaining (null nos planos ilimitados)

Limites de uso

60 requisições/minuto por chave de API

1.000 chamadas de API/mês no plano API (veja os preços)

20 MB de tamanho máximo de arquivo

10 páginas no máx. por PDF (1 crédito por página)

Precisa de limites maiores? Fale com a gente para planos empresariais.

Webhooks

Envie um campo de formulário webhook_url com uma URL HTTPS na sua requisição e faremos um POST com o resultado completo assim que a extração terminar (timeout de entrega de 8 s, sem novas tentativas).

{
  "event": "extraction.completed",
  "id": "aB3dE9fGhIjK1LmN",
  "status": "completed",
  "title": "Invoice #1042",
  "rows": [["Item", "Qty", "Price"], ...],
  "pages": 1,
  "usage": { "credits_used": 1, "credits_remaining": 999 }
}

Comece a desenvolver com o ScanToExcel

Obtenha sua chave de API e comece a extrair dados em minutos.