REST API

ScanToExcel API

Integrieren Sie KI-gestützte Dokumentenerfassung direkt in Ihre App. Senden Sie ein Bild oder PDF und erhalten Sie strukturierte Tabellendaten als JSON, .xlsx oder CSV zurück.

Basis-URL

https://scantoexcel.ai/api/v1

Authentifizierung

Alle API-Anfragen benötigen einen API-Schlüssel, der im Authorization-Header mitgesendet wird.

Authorization: Bearer sk_live_your_api_key

Erstellen Sie Ihren API-Schlüssel kostenlos im Dashboard. Der Schlüssel wird bei der Erstellung nur einmal angezeigt und ausschließlich als Hash gespeichert — kopieren Sie ihn sofort. Im Dashboard können Sie ihn jederzeit neu generieren oder widerrufen. Ihre Credits bestimmen, wie viele Seiten Sie extrahieren können.

Schnellstart

Daten aus einem Dokumentbild oder PDF mit einem einzigen API-Aufruf extrahieren.

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"], ...]

API-Referenz

POST/v1/extract

Laden Sie ein Dokumentbild oder PDF hoch und erhalten Sie strukturierte Tabellendaten. Die KI analysiert das visuelle Layout und ordnet jeden Textbaustein der richtigen Zeile und Spalte zu. Mehrseitige PDFs werden als ein einziges rows-Array von oben nach unten zurückgegeben. Abgerechnet wird 1 Credit pro Seite; fehlgeschlagene Extraktionen werden automatisch erstattet.

Anfrage (multipart/form-data)

ParameterTypPflichtBeschreibung
fileFileJaBild (JPG, PNG, WebP) oder PDF (bis zu 10 Seiten). Max. 20 MB.
outputStringNein"json" (Standard), "xlsx" oder "csv". JSON liefert strukturierte Daten; xlsx/csv liefern die Datei als Binär-Body mit den Headern X-Extraction-Id, X-Pages, X-Credits-Used und X-Credits-Remaining.
detailStringNein"high" (Standard, ideal für dichte Dokumente) oder "low" (schneller, weniger Bild-Tokens).
webhook_urlStringNeinHTTPS-URL, die per POST das vollständige Ergebnis erhält, sobald die Extraktion abgeschlossen ist. Siehe Webhooks weiter unten.

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

Antwortfelder

FeldTypBeschreibung
idStringDauerhafte Extraktions-ID — verwenden Sie sie mit GET /v1/extractions/{id}
statusStringcompleted oder failed
titleStringKI-generierter Titel des Dokuments
rowsString[][]2D-Array mit Zellwerten. Die erste Zeile enthält meist die Überschriften.
pagesNumberAnzahl verarbeiteter Seiten (= berechnete Credits)
usageObjectcredits_used und credits_remaining (null bei unbegrenzten Tarifen)

Rate Limits

60 Anfragen/Minute pro API-Schlüssel

1.000 API-Aufrufe/Monat im API-Tarif (siehe Preise)

20 MB maximale Dateigröße

10 Seiten max. pro PDF (1 Credit pro Seite)

Sie brauchen höhere Limits? Kontaktieren Sie uns für Enterprise-Tarife.

Webhooks

Übergeben Sie mit Ihrer Anfrage ein HTTPS-Formularfeld webhook_url, und wir senden das vollständige Ergebnis per POST dorthin, sobald die Extraktion abgeschlossen ist (8 s Zustell-Timeout, keine Wiederholungen).

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

Jetzt mit ScanToExcel entwickeln

Holen Sie sich Ihren API-Schlüssel und extrahieren Sie in wenigen Minuten die ersten Daten.