Dokumente
Ein Dokument ist eine einzelne verarbeitete Seite – ein hochgeladenes Bild oder eine aus einem hochgeladenen PDF gerenderte Seite. Jedes Dokument gehört zu einem Batch (identifiziert durch batch_name), der die eigentliche Verarbeitungseinheit darstellt. Beim Hochladen eines mehrseitigen PDFs wird ein Dokument pro Seite im selben Batch erstellt – siehe Dokument hochladen unten.
Dokument hochladen
Lädt eine einzelne Datei (Bild oder PDF) in einen Batch hoch. Wenn batch_name weggelassen wird, wird einer automatisch generiert und in der Antwort zurückgegeben. Das Hochladen startet keine Extraktion – rufen Sie Batch-Verarbeitung starten auf, sobald Sie alles hochgeladen haben, was zusammen verarbeitet werden soll. Das remaining_batch_capacity-Feld der Antwort gibt an, wie viele weitere Dokumente dieser Batch aufnehmen kann, bevor die maximale Batch-Größe Ihres Plans erreicht ist (siehe max_batch_size im Konto) – nützlich, um clientseitig zu entscheiden, ob Sie diesem Batch weitere Dokumente hinzufügen oder einen neuen beginnen sollen, ohne eine separate Abfrage durchführen zu müssen.
Parameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
file | body (multipart) | file | Erforderlich, falls url nicht angegeben wird. Ein Bild (JPEG/PNG/etc.) oder ein PDF. PDFs sind auf 30 Seiten pro Upload begrenzt und werden in ein Dokument pro Seite aufgeteilt. |
url | body (multipart) | string, optional | Alternative zu file – der Server lädt die Datei von dieser URL herunter, anstatt dass Sie sie anhängen müssen. Schließt sich gegenseitig mit file aus; übergeben Sie genau eines. Muss eine öffentliche http://- oder https://-URL sein (keine localhost/Privatnetzwerk-Adressen); der Download ist auf 30 MB mit einem Lese-Timeout von 15 Sekunden begrenzt. |
batch_name | body (multipart) | string, optional | Batch, dem dieses Dokument hinzugefügt werden soll. Auslassen, um automatisch einen neuen Batch-Namen zu generieren (wird in der Antwort zurückgegeben). Verwenden Sie denselben Wert bei mehreren Uploads, um einen Batch aufzubauen, bevor Sie ihn verarbeiten. |
template_id | body (multipart) | integer, optional | Eine Template-ID, die zu Ihrem Konto gehört, um sie diesem Dokument vorab zuzuordnen. Nicht erforderlich – Sie können auch ein Template (oder Ad-hoc-Felder) übergeben, wenn Sie process aufrufen. |
password | body (multipart) | string, optional | Nur für PDF. Wird zuerst versucht, wenn die Datei passwortgeschützt ist. Wenn es weggelassen wird oder die Datei nicht entsperrt, wird auf bereits unter den Email-Inbox-Einstellungen Ihres Kontos gespeicherte Passwörter zurückgegriffen – dieses Feld erfordert keine eingerichtete Email Inbox, es ist nur eine alternative Angabe pro Aufruf. |
Idempotency-Key | header, optional | string | Sicher wiederholbar. Siehe Idempotenz. |
PDF-Uploads geben ein Array zurück, keine einzelne ID. Beim Hochladen eines PDFs wird jede Seite als eigenes Dokument gerendert und das document_id-Feld der Antwort wird zu einem JSON-Array (ein String pro Seite, in Seitenreihenfolge), plus ein page_count-Feld. Ein einzelner Bild-Upload gibt stattdessen einen skalaren String zurück. Client-Code, der annimmt, dass document_id immer ein String ist, wird bei einem PDF-Upload fehlschlagen – prüfen Sie, ob die gesendete Datei ein PDF ist, und verzweigen Sie basierend auf der Antwortform, oder senden Sie immer Bilder und verlassen Sie sich nie auf den skalaren Fall. Siehe die beiden Antwortbeispiele rechts.
Mögliche Fehler
missing_api_key/invalid_api_key/plan_required— siehe Fehlerbehandlung.missing_parameter— es wurde wederfilenochurlgesendet.invalid_parameter(param: "file") — ungültiges oder beschädigtes Bild/PDF, ein passwortgeschütztes PDF, das nicht entsperrt werden konnte (weder daspassword-Feld noch ein gespeichertes Email-Inbox-Passwort funktionierte), oder ein PDF, das die 30-Seiten-Grenze überschreitet.invalid_parameter(param: "url") — sowohlfileals auchurlwurden gesendet, die URL löst keine öffentliche Adresse auf, der Download ist fehlgeschlagen oder abgelaufen, oder die heruntergeladene Datei überschreitet 30 MB.invalid_parameter(param: "batch_name") — der Batch hat bereits die maximale Batch-Größe Ihres Tarifs erreicht.invalid_parameter(param: "template_id") odertemplate_not_found.rate_limit_exceeded— es befinden sich bereits zu viele unverarbeitete (queued) Dokumente auf dem Konto; verarbeiten oder löschen Sie zuerst einige.
Dokument abrufen
Ruft den aktuellen Status eines einzelnen Dokuments sowie nach erfolgreicher Extraktion dessen umgeformte line_items ab. Dies ist das Einzeldokument-Äquivalent zu Batch-Ergebnisse abrufen — gleiche Umformungsregeln, jedoch ohne die Option ?include=bbox (diese gibt es nur auf dem Batch-Ergebnis-Endpunkt).
Parameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
document_id | Pfad | Zeichenkette | Die Dokument-ID, die von POST /documents zurückgegeben wurde (oder ein Eintrag dieses Arrays für eine PDF-Seite). |
status ist immer einer der Werte queued, processing, succeeded, failed, canceled — siehe die Anleitung zum Async-Modell für die Zustandsmaschine. completed_at wird gesetzt, sobald das Dokument einen Endzustand (succeeded, failed oder canceled) erreicht, und bleibt davor null.
Mögliche Fehler
missing_api_key/invalid_api_key/plan_required— siehe Fehlerbehandlung.document_not_found— kein Dokument mit dieser ID auf Ihrem Konto.
Dokumentenbild abrufen
Gibt das Seitenbild hinter einem Dokument zurück — standardmäßig die gesamte Seite oder einen normalisierten Ausschnitt davon mit ?crop=. Dies ist die Grundlage für image_url bei reinen Positionsfeldern (siehe Batch-Ergebnisse abrufen), kann aber auch direkt mit eigenen Koordinaten aufgerufen werden.
Parameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
document_id | Pfad | Zeichenkette | Die Dokumenten-ID. |
crop | Abfrage, optional | Zeichenkette | "x1,y1,x2,y2" — vier Gleitkommazahlen zwischen 0 und 1, dieselbe normalisierte Koordinatenkonvention wie jedes bbox-Objekt in der API. Weglassen, um das vollständige, unbeschnittene Seitenbild zu erhalten. |
Die Antwort sind die rohen Bildbytes (Content-Type: image/jpeg), kein JSON — es gibt kein JSON-Antwortbeispiel auf der rechten Seite für diesen Endpunkt, nur die Anfrage.
Mögliche Fehler
missing_api_key/invalid_api_key/plan_required— siehe Fehlerbehandlung.document_not_found— kein Dokument mit dieser ID, oder die ursprüngliche Bilddatei ist nicht mehr verfügbar (z. B. das automatische Löschfenster Ihres Kontos ist überschritten).invalid_parameter(param: "crop") — fehlerhaftercrop-Wert, Koordinaten außerhalb von 0–1 oder ein Ausschnittbereich, der nach dem Beschneiden auf die Bildgrenzen leer ist.
Bbox-Annotation auslösen
Startet explizit den optionalen, kostenpflichtigen Zweitdurchlauf, der lokalisiert, wo jeder extrahierte Feldwert physisch auf der Seite sitzt. Dies ist eine separate abrechenbare Aktion von der Extraktion selbst – siehe die Bounding Boxes-Anleitung, bevor Sie dies einbinden, insbesondere den Hinweis zur auto_annotate_bbox-Einstellung Ihres Kontos, die möglicherweise denselben Job automatisch auslöst (und abrechnet), ohne dass Sie diesen Endpunkt jemals aufrufen.
Parameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
document_id | Pfad | string | Muss bereits ein succeeded-Dokument mit extrahierten Daten sein – Sie können kein Dokument annotieren, dessen Extraktion noch nicht abgeschlossen ist. |
Idempotency-Key | Header, optional | string | Empfohlen – diese Aktion verbraucht Guthaben. Siehe Idempotenz. |
Gibt 202 zurück, wenn ein neuer Bbox-Job gerade in die Warteschlange gestellt wurde, oder 200, wenn ein Bbox-Job für dieses Dokument bereits läuft (already_running: true) – d.h. Sie haben diesen Endpunkt bereits einmal für dieses Dokument aufgerufen und dieser frühere Bbox-Job ist noch nicht abgeschlossen. Dies ist unabhängig davon, ob die Extraktion des Dokuments selbst abgeschlossen ist – Bbox kann nur für ein Dokument ausgelöst werden, das bereits succeeded ist (siehe „Mögliche Fehler" unten). Wenn Sie diesen Endpunkt überhaupt aufrufen können, ist die Extraktion also abgeschlossen. already_running bezieht sich ausschließlich auf einen zweiten Bbox-Job für dasselbe Dokument, nicht auf den Extraktionsjob. In beiden Fällen (202 oder 200) wird auf dem 200-Pfad nichts Neues gestartet oder berechnet – rufen Sie Bbox-Annotation abrufen mit der zurückgegebenen group_batch_id für das Ergebnis auf.
Mögliche Fehler
missing_api_key/invalid_api_key/plan_required— siehe Fehlerbehandlung.document_not_found— kein Dokument mit dieser ID auf Ihrem Konto.insufficient_credits— nicht genügend Credits für diesen Annotationsdurchlauf.invalid_parameter— das Dokument befindet sich noch in keinem gültigen Zustand dafür (wird noch verarbeitet) oder enthält keine extrahierten Daten, um Boxen zu lokalisieren.
Bbox-Annotation abrufen
Ruft den Status des letzten für ein Dokument ausgelösten Bbox-Annotationsauftrags ab und holt dessen Ergebnisse. Wenn für dieses Dokument noch nie ein Auftrag ausgelöst wurde, ist exists false und status/group_batch_id sind null — dies ist eine normale, häufige Antwort (die meisten Dokumente haben nie eine Bbox-Annotation), kein Fehler.
Parameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
document_id | Pfad | string | Die Dokument-ID. |
rows bildet einen Zeilenindex (als String, z. B. "0") auf eine Map von Feldname → normalisiertem bbox-Objekt ab (oder null, wenn die Position dieses Feldes auf der Seite nicht gefunden wurde). status verwendet dasselbe geschlossene 5-Werte-Enum wie überall sonst in der API.
Mögliche Fehler
missing_api_key/invalid_api_key/plan_required— siehe Fehlerbehandlung.document_not_found— kein Dokument mit dieser ID auf Ihrem Konto.