API REST

ScanToExcel API

Integra l'estrazione di documenti con l'AI direttamente nella tua app. Invia un'immagine o un PDF e ricevi dati strutturati da foglio di calcolo in JSON, .xlsx o CSV.

URL di base

https://scantoexcel.ai/api/v1

Autenticazione

Tutte le richieste API richiedono una chiave API inviata tramite l'header Authorization.

Authorization: Bearer sk_live_your_api_key

Genera gratis la tua chiave API dalla dashboard. La chiave viene mostrata una sola volta al momento della creazione e salvata solo come hash — copiala subito. Puoi rigenerarla o revocarla dalla dashboard in qualsiasi momento. I crediti determinano quante pagine puoi estrarre.

Guida rapida

Estrai i dati da un'immagine o da un PDF con una sola chiamata 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"], ...]

Riferimento API

POST/v1/extract

Carica un'immagine o un PDF e ricevi dati strutturati da foglio di calcolo. L'AI analizza il layout visivo e assegna ogni porzione di testo alla riga e alla colonna corrette. I PDF multipagina vengono restituiti come un unico array rows, dall'alto verso il basso. Si paga 1 credito per pagina; le estrazioni non riuscite vengono rimborsate automaticamente.

Richiesta (multipart/form-data)

ParametroTipoObbligatorioDescrizione
fileFileSìImmagine (JPG, PNG, WebP) o PDF (fino a 10 pagine). Max 20 MB.
outputStringNo"json" (predefinito), "xlsx" o "csv". JSON restituisce dati strutturati; xlsx/csv restituiscono il file come body binario con gli header X-Extraction-Id, X-Pages, X-Credits-Used e X-Credits-Remaining.
detailStringNo"high" (predefinito, ideale per documenti densi) o "low" (più veloce, meno token immagine).
webhook_urlStringNoURL HTTPS che riceve una POST con il risultato completo al termine dell'estrazione. Vedi Webhook più sotto.

Risposta (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
  }
}

Campi della risposta

CampoTipoDescrizione
idStringID persistente dell'estrazione — usalo con GET /v1/extractions/{id}
statusStringcompleted o failed
titleStringTitolo del documento generato dall'AI
rowsString[][]Array 2D con i valori delle celle. La prima riga contiene di solito le intestazioni.
pagesNumberNumero di pagine elaborate (= crediti addebitati)
usageObjectcredits_used e credits_remaining (null nei piani illimitati)

Limiti di utilizzo

60 richieste/minuto per chiave API

1.000 chiamate API/mese con il piano API (vedi prezzi)

20 MB dimensione massima del file

10 pagine max per PDF (1 credito per pagina)

Ti servono limiti più alti? Contattaci per i piani enterprise.

Webhook

Passa con la richiesta un campo del form webhook_url con un URL HTTPS: ti invieremo lì il risultato completo via POST non appena l'estrazione è terminata (timeout di consegna di 8 s, nessun nuovo tentativo).

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

Inizia a sviluppare con ScanToExcel

Ottieni la tua chiave API e inizia a estrarre dati in pochi minuti.