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/v1Autenticaçã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
/v1/extractEnvie 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âmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
file | File | Sim | Imagem (JPG, PNG, WebP) ou PDF (até 10 páginas). Máx. 20 MB. |
output | String | Nã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. |
detail | String | Não | "high" (padrão, ideal para documentos densos) ou "low" (mais rápido, menos tokens de imagem). |
webhook_url | String | Não | URL 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
| Campo | Tipo | Descrição |
|---|---|---|
id | String | ID persistente da extração — use com GET /v1/extractions/{id} |
status | String | completed ou failed |
title | String | Título do documento gerado por IA |
rows | String[][] | Array 2D com os valores das células. A primeira linha normalmente é o cabeçalho. |
pages | Number | Número de páginas processadas (= créditos cobrados) |
usage | Object | credits_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.