Schnellstart für Entwickler

Eine Anfrage. Ein sauberes Dokument.

Senden Sie ein JPEG oder PNG an ScanKit und erhalten Sie einen perspektivisch entzerrten Scan für den nächsten Schritt in Ihrem Produkt. Entdecken Sie Anfrage, Antwort und Code unten.

Kostenlos testen: 50 Credits bei der Anmeldung, ohne Karte. Credit-Pakete ab 19 € für 1.000 Scans, einmalig und ohne Ablaufdatum. Preise ansehen

SCAN-ANFRAGEBereit
POST /scan/crop
EingabeJPEG, PNG
AusgabeSauberes JPG oder PDF
VerarbeitungErkennen + korrigieren
API AUSPROBIEREN

Testen Sie ScanKit mit Ihrem Dokument.

Laden Sie ein JPEG oder PNG hoch, wählen Sie die gewünschte Ausgabe und sehen Sie direkt, welchen sauberen Scan ScanKit zurückgibt.

Eingabebild

Ergebnis

Beispielcode

Fertige Code-Snippets

Integrieren Sie Scan-Funktionen mit einem einfachen API-Aufruf in Ihre Anwendung. Die ScanKit-API unterstützt verschiedene Parameter für präzise Kontrolle über das Ergebnis.

JPEG-Bild
curl -X POST https://api.scankit.io/scan/crop \
-H "Authorization: Bearer YOUR_API_KEY" \

-H "Content-Type: multipart/form-data" \

-F "file=@/path/to/your/image.jpg" \

-F "output_width=1536" \

-F "filter=white" \

--output result.jpg
PDF mit OCR-Text
curl -X POST https://api.scankit.io/scan/crop \
-H "Authorization: Bearer YOUR_API_KEY" \

-H "Content-Type: multipart/form-data" \

-F "file=@/path/to/your/image.jpg" \

-F "output_width=1536" \

-F "return_pdf=true" \

-F "ocr_lang=eng" \

--output result.pdf
Mehrseitiges PDF (französisch)
curl -X POST https://api.scankit.io/scan/crop \
-H "Authorization: Bearer YOUR_API_KEY" \

-H "Content-Type: multipart/form-data" \

-F "files=@/path/to/page1.jpg" \

-F "files=@/path/to/page2.jpg" \

-F "output_width=1536" \

-F "filter=white" \

-F "return_pdf=true" \

-F "ocr_lang=fra" \

--output result.pdf
Referenz

API-Referenz

Servers

Dokumentenscan

Laden Sie ein Bild hoch, das zugeschnitten und optional gefiltert wird. Das Ergebnis wird als binäre JPEG-Datei zurückgegeben.

Parameters

No parameters

Request body

file *
string($binary)

Die zu verarbeitende Bilddatei.

output_width
integer($int32)

Legt die gewünschte Breite (in Pixeln) des Ausgabebilds nach dem Zuschnitt fest.

  • Die Ausgabehöhe wird automatisch berechnet, um das Seitenverhältnis des zugeschnittenen Dokuments beizubehalten.
  • Das Seitenverhältnis ergibt sich aus der Form des Dokuments nach dem Zuschnitt; es hängt vom erkannten Inhalt ab und kann nicht im Voraus bestimmt werden.
  • Der Standardwert ist 1536 Pixel; für optimale Qualität und Performance wird üblicherweise ein Bereich zwischen 1024 und 2048 Pixeln empfohlen.
filter
string

Legt den Filter fest, der nach dem Zuschnitt auf das Bild angewendet wird:

  • "white" (Standard): Korrigiert unregelmäßige Beleuchtung und erzeugt für Dokumente aus weißem Papier einen weißen Hintergrund.
  • "flat": Korrigiert unregelmäßige Beleuchtung, verändert aber Kontrast und Farben nicht.
  • "original": Es wird kein Filter angewendet; das Bild bleibt unverändert.
segment_count
integer($int32)

Legt die Anzahl der Segmente fest, mit denen gekrümmte oder gefaltete Bilder verarbeitet werden.

  • Höhere Werte verarbeiten stark gekrümmte oder gefaltete Dokumente besser, können aber die Verarbeitungszeit erhöhen.
  • Niedrigere Werte sind schneller, kommen mit starken Krümmungen aber unter Umständen schlechter zurecht.
  • Der Standardwert ist 9 Segmente, ein guter Kompromiss zwischen Qualität und Performance.
return_pdf
boolean

Bestimmt das Ausgabeformat des verarbeiteten Dokuments:

  • false (Standard): Gibt das verarbeitete Bild als JPEG-Datei zurück.
  • true: Erzeugt statt eines JPEG-Bilds ein durchsuchbares PDF mit OCR-Textschicht.
ocr_lang
string

Sprache der OCR-Texterkennung, wenn return_pdf true ist:

  • "eng" (Standard): Englische Texterkennung
  • "deu": Deutsche Texterkennung Dieser Parameter wird nur verwendet, wenn return_pdf auf true gesetzt ist.
return_meta
boolean

Optionaler Metadaten-Modus (v2-Pipeline). Bei true ist die Antwort JSON statt eines rohen JPEGs und enthält das Feld document_detected:

  • true: Es wurde ein Dokument erkannt und perspektivisch korrigiert; das zurückgegebene Bild ist der korrigierte Scan.
  • false: Es konnte kein brauchbares Dokument modelliert werden; die Antwort ist HTTP 200 mit dem unveränderten Eingabebild, sodass Clients einen manuellen Zuschnitt anbieten können. Außerdem verfügbar über die JSON-Pfade return_json=1 / return_warp_geometry=true sowie als Header X-ScanKit-Detected, wenn ein rohes Bild zurückgegeben wird.

Responses

CodeDescription
200

Erfolgreich verarbeitetes und zugeschnittenes Bild, zurückgegeben als Binärdatei.

Media type
Controls Accept header.
(binary image data)

Headers:

NameDescriptionType
X-ScanKit-Detected

Vorhanden, wenn die v2-Lambda einen Erkennungsstatus gemeldet hat (z. B. bei return_meta=true). true = ein Dokument wurde erkannt und perspektivisch korrigiert; false = es konnte kein brauchbares Dokument modelliert werden und das unveränderte Eingabebild wird zurückgegeben (Clients können einen manuellen Zuschnitt anbieten). Fehlt bei Antworten, die älter als dieses Feld sind.

string
400

Ungültige Parameter oder nicht verarbeitbare Eingabedatei (es werden keine Credits berechnet)

Media type
Examples
{
  "errors": [
    {
      "code": "invalid_file_type",
      "title": "The uploaded file format is not supported. Please use JPEG or PNG."
    }
  ]
}
401

Fehler: Authentifizierung fehlgeschlagen (es werden keine Credits berechnet). "Missing API Key", wenn gar kein Key gesendet wurde, "Invalid API Key", wenn der gesendete Key unbekannt oder inaktiv ist.

Media type
Examples
{
  "errors": [
    {
      "title": "Missing API Key"
    }
  ]
}
402

Fehler: Nicht genügend Credits (es werden keine Credits berechnet)

Media type
{
  "errors": [
    {
      "title": "Insufficient credits"
    }
  ]
}
429

Ratenlimit überschritten: mehr als 1000 Anfragen in einer gleitenden Stunde für diesen API-Key (es werden keine Credits berechnet). Warten Sie die im Retry-After-Header angegebene Anzahl Sekunden ab, bevor Sie es erneut versuchen.

Media type
{
  "errors": [
    {
      "title": "Rate limit exceeded",
      "detail": "Limit is 1000 requests per hour per API key. Retry after 42 seconds."
    }
  ]
}

Headers:

NameDescriptionType
Retry-After

Sekunden, die gewartet werden müssen, bevor die nächste Anfrage erlaubt ist.

integer
Example: 42
500

Interner Serverfehler. Kontaktieren Sie den Support, falls das Problem weiterhin besteht.

Fragen vor der Integration? Schreiben Sie uns

Datenschutzfragen und unsere Antworten