API REST

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/v1

Autenticació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

POST/v1/extract

Sube 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ámetroTipoObligatorioDescripción
fileFileSíImagen (JPG, PNG, WebP) o PDF (hasta 10 páginas). Máx. 20 MB.
outputStringNo"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.
detailStringNo"high" (por defecto, ideal para documentos densos) o "low" (más rápido, menos tokens de imagen).
webhook_urlStringNoURL 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

CampoTipoDescripción
idStringID persistente de la extracción — úsalo con GET /v1/extractions/{id}
statusStringcompleted o failed
titleStringTítulo del documento generado por IA
rowsString[][]Array 2D con los valores de las celdas. La primera fila suele ser la cabecera.
pagesNumberNúmero de páginas procesadas (= créditos cobrados)
usageObjectcredits_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.