ScanToExcel API
Integra la extracción de documentos con IA directamente en tu app. Envía una imagen o un PDF y recibe datos de hoja de cálculo estructurados en JSON, .xlsx o CSV.
URL base
https://scantoexcel.ai/api/v1Autenticación
Todas las peticiones a la API requieren una clave API enviada en el encabezado Authorization.
Authorization: Bearer sk_live_your_api_key
Genera tu clave API gratis desde el panel. La clave se muestra una sola vez al crearla y solo se guarda como hash — cópiala enseguida. Puedes regenerarla o revocarla desde el panel en cualquier momento. Los créditos determinan cuántas páginas puedes extraer.
Inicio rápido
Extrae datos de una imagen o un PDF con una sola llamada a la 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"], ...]Referencia de la API
/v1/extractSube una imagen o un PDF y recibe datos de hoja de cálculo estructurados. La IA analiza el diseño visual y asigna cada fragmento de texto a la fila y columna correctas. Los PDF de varias páginas se devuelven como un único array rows, de arriba abajo. Se cobra 1 crédito por página; las extracciones fallidas se reembolsan automáticamente.
Petición (multipart/form-data)
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
file | File | Sí | Imagen (JPG, PNG, WebP) o PDF (hasta 10 páginas). Máx. 20 MB. |
output | String | No | "json" (por defecto), "xlsx" o "csv". JSON devuelve datos estructurados; xlsx/csv devuelven el archivo como cuerpo binario con los encabezados X-Extraction-Id, X-Pages, X-Credits-Used y X-Credits-Remaining. |
detail | String | No | "high" (por defecto, ideal para documentos densos) o "low" (más rápido, menos tokens de imagen). |
webhook_url | String | No | URL HTTPS que recibe un POST con el resultado completo cuando termina la extracción. Consulta Webhooks más abajo. |
Respuesta (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 de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
id | String | ID persistente de la extracción — úsalo con GET /v1/extractions/{id} |
status | String | completed o failed |
title | String | Título del documento generado por IA |
rows | String[][] | Array 2D con los valores de las celdas. La primera fila suele ser la cabecera. |
pages | Number | Número de páginas procesadas (= créditos cobrados) |
usage | Object | credits_used y credits_remaining (null en planes ilimitados) |
Límites de uso
60 peticiones/minuto por clave API
1.000 llamadas API/mes en el plan API (ver precios)
20 MB de tamaño máximo por archivo
10 páginas máx. por PDF (1 crédito por página)
¿Necesitas límites más altos? Contáctanos para planes empresariales.
Webhooks
Envía un campo de formulario webhook_url con una URL HTTPS en tu petición y te haremos un POST con el resultado completo en cuanto termine la extracción (timeout de entrega de 8 s, sin reintentos).
{
"event": "extraction.completed",
"id": "aB3dE9fGhIjK1LmN",
"status": "completed",
"title": "Invoice #1042",
"rows": [["Item", "Qty", "Price"], ...],
"pages": 1,
"usage": { "credits_used": 1, "credits_remaining": 999 }
}Empieza a construir con ScanToExcel
Obtén tu clave API y empieza a extraer datos en minutos.