Startseite/Dokumentation/Ihr erster Scan in fünf Minuten
Schnellstart

Ihr erster Scan in fünf Minuten

Ein Endpunkt genügt: Sie senden ein Dokumentenfoto und erhalten das aufbereitete, perspektivisch korrigierte Bild zurück. Diese Seite führt Sie mit cURL, Python und Node durch, danach folgt das Browser-SDK.

Zuerst ohne Konto

Wenn Sie nur das Ergebnis sehen wollen, öffnen Sie die Demo, wählen ein Beispielfoto und scannen es. Ohne Registrierung, ohne Schlüssel, und Sie können das Ergebnis direkt mit dem Originalfoto vergleichen.

Im Browser ausprobieren
Die Demo nutzt dieselbe Verarbeitung wie die API, nur mit einem Beispielfoto statt Ihrem Upload.
Demo öffnen

Schritt 1: API-Schlüssel holen

  • Konto anlegen. Die Registrierung enthält 50 kostenlose Credits und benötigt keine Kreditkarte.
  • Im Dashboard zu API-Schlüssel wechseln.
  • Einen Schlüssel anlegen und kopieren. Der Schlüssel wird einmal angezeigt, behandeln Sie ihn wie ein Passwort.
Schlüssel gehört auf den Server
Ein Schlüssel in einer öffentlichen Webseite kann von jedem kopiert werden. Für die Erfassung im Browser nutzen Sie das SDK in Ihrer eigenen Anwendung und lassen den Schlüssel auf dem Server, oder Sie nutzen einen Hosted-Scanner, der ohne Schlüssel arbeitet.

Schritt 2: erster API-Aufruf

Senden Sie ein Bild als Multipart-Formulardaten an den Crop-Endpunkt. Mit binary=true, dem Standard, ist der Antwortkörper das aufbereitete Bild selbst, und -o schreibt es in eine Datei.

bash
curl -X POST "https://www.scankit.io/crop" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@document.jpg" \
  -F "output_width=1536" \
  -F "filter=white" \
  -o scan.jpg

Derselbe Aufruf in Python:

python
import requests

with open("document.jpg", "rb") as fh:
    response = requests.post(
        "https://www.scankit.io/crop",
        headers={"X-API-Key": "YOUR_API_KEY"},
        files={"file": ("document.jpg", fh, "image/jpeg")},
        data={"output_width": 1536, "filter": "white"},
        timeout=60,
    )

response.raise_for_status()
with open("scan.jpg", "wb") as out:
    out.write(response.content)

Und in Node, ohne SDK:

javascript
import fs from 'node:fs';

const body = new FormData();
body.append('file', new Blob([fs.readFileSync('document.jpg')]), 'document.jpg');
body.append('output_width', '1536');
body.append('filter', 'white');

const response = await fetch('https://www.scankit.io/crop', {
  method: 'POST',
  headers: { 'X-API-Key': 'YOUR_API_KEY' },
  body,
});

const scan = Buffer.from(await response.arrayBuffer());
fs.writeFileSync('scan.jpg', scan);

Sie erhalten ein sauberes, gerades, eng beschnittenes Bild des Dokuments, bereit für OCR, KI-Extraktion oder Ihr Archiv. Jeder Aufruf kostet einen Credit, ein neues Konto startet mit fünfzig.

Schritt 3: die Parameter, die Sie wirklich brauchen

ParameterStandardWirkung
file oder fileserforderlichEin Bild als file, mehrere Seiten als files.
output_width1536Breite des zurückgegebenen Bildes in Pixeln.
filterwhitewhite bereinigt den Hintergrund, flat erhält die Textur, original verändert nichts.
version2Verarbeitungspipeline. 2 ist die aktuelle.
strip_black_bordertrueEntfernt schwarze Ränder um die erkannte Seite.
binarytruetrue liefert die Bilddaten, false verpackt das Ergebnis in JSON.
return_pdffalseLiefert ein PDF statt eines Bildes.
ocr_langengSprachhinweis für die Texterkennung.
output_width, segment_countZahlenNicht numerische Werte werden mit 400 beantwortet statt mit einem Serverfehler.

Mehrere Seiten senden Sie in einer Anfrage über den Parameter files, oder Sie rufen den Endpunkt je Seite auf. Beides wird unterstützt, der Mehrseitenpfad hält die Seiten in einer Antwort.

Schritt 4: Erfassung im Browser

Wenn Ihre eigenen Nutzer das Foto machen sollen, laden Sie das SDK von unserem CDN und lassen es die Erfassung übernehmen. Das SDK kommt von scankit.io, es gibt also nichts zu bauen und nichts zu veröffentlichen.

html
<link rel="stylesheet" href="https://www.scankit.io/sdk/scankit-sdk.css" />
<div id="scan-area"></div>

<script src="https://www.scankit.io/sdk/scankit-sdk.min.js"></script>
<script>
  const scanner = new ScanKit({
    target: '#scan-area',
    apiKey: 'YOUR_API_KEY',
    onScanComplete: (result) => {
      // result.image is the finished scan as a Blob
      uploadToYourBackend(result.image);
    },
  });

  scanner.init();
</script>
Noch kein npm-Paket
Das SDK wird ausschließlich als CDN-Bundle verteilt. Es gibt derzeit kein veröffentlichtes npm-Paket, nehmen Sie scankit-sdk also noch nicht in Ihre package.json auf.

Der Scanner ruft Ihren onScanComplete-Handler mit dem fertigen Scan auf. Ein Hosted-Scanner ist die Alternative, wenn im Frontend gar kein Schlüssel liegen darf: Sie legen den Scanner im Dashboard an und verschicken den Link an die Person, die scannen soll.

Credits, Limits und Fehler

  • Ein Credit pro Scan-Aufruf (crop, rectify, doc_axis_warp). Fünfzig kostenlose Credits bei der Registrierung.
  • Tausend Scan-Anfragen pro Stunde und Schlüssel. Die Anfrage darüber wird mit 429 und einem Retry-After-Header abgelehnt.
  • Die Authentifizierung läuft über den Header X-API-Key, über ein Authorization-Bearer-Token oder über den Query-Parameter api_key. Empfohlen ist der Header.

Typische Fehlerantworten, in der Reihenfolge, in der Sie ihnen begegnen:

StatusBedeutungWas zu tun ist
401Missing API KeyHeader X-API-Key senden. Prüfen Sie auf ein Leerzeichen am Ende des Schlüssels.
402Insufficient creditsCredits im Dashboard aufladen. Eine abgelehnte Anfrage verbraucht keine Credits.
400Ungültiger Parameteroutput_width und segment_count müssen ganze Zahlen sein.
429Rate LimitDie in Retry-After genannten Sekunden abwarten, dann erneut senden. Eine abgelehnte Anfrage verbraucht keine Credits.
json
{
  "errors": [
    { "title": "Missing API Key" }
  ]
}

Wie es weitergeht

Interaktive API-Referenz
Alle Endpunkte, alle Parameter und ein Playground, der einen echten Scan im Browser ausführt.
Zur Referenz
Credits und Preise
Wie Credits funktionieren, was ein Paket kostet und wie der kostenlose Start passt.
Preise ansehen
Fertige Beispiele
Rechnungseingang, Lieferschein-Freigabe und Kunden-Dokumenteingang, direkt zum Nachbauen.
Beispiele ansehen