Dokument in JSON umwandeln
Diese Funktion liest ein gescanntes oder fotografiertes Dokument und gibt den erkannten Inhalt als strukturiertes JSON zurück – Felder, Werte und Tabellen in maschinenlesbarer Form. Sie eignet sich, um Papier- oder Bilddokumente direkt an eine eigene Anwendung oder Schnittstelle anzubinden, ohne einen Zwischenschritt.
Online ausführen
Führen Sie dies mit Ihrem Konto auf unseren Servern aus. Kostenlose Tools laufen in Ihrem Browser; dieses wird zum oben genannten Preis von Ihrem KIT-Guthaben abgebucht.
Vom Bild zur Datenstruktur
Ein Scan oder ein Foto ist für ein Programm zunächst nur eine Bilddatei, keine verwertbare Information. Die Funktion liest den Inhalt aus und ordnet ihn als JSON-Objekt an, mit Feldern für die erkannten Werte und, wo vorhanden, verschachtelten Tabellen. Statt den Inhalt manuell zu übertragen, erhalten Sie eine Datenstruktur, die sich direkt in eine Anwendung, ein Skript oder eine Datenbank einlesen lässt.
Für Entwickler und Schnittstellen gedacht
Diese Funktion richtet sich vor allem an Entwickler, die ein Dokument als Eingabe für einen automatisierten Ablauf benötigen: einen Scan, der ein Formular in einer App befüllt, oder ein Foto, dessen Werte in ein internes System übernommen werden. Das JSON-Ergebnis lässt sich per API abrufen und unmittelbar weiterverarbeiten, ohne einen Zwischenschritt in Textform oder eine manuelle Nachbearbeitung der erkannten Werte.
Struktur folgt dem Dokument, nicht einer festen Vorlage
Die zurückgegebene Struktur richtet sich nach dem, was auf dem Dokument tatsächlich zu erkennen ist – es gibt kein festes Schema, das jedes Dokument erzwingt. Bei stark unterschiedlichen Vorlagen kann sich die Feldbenennung daher von Dokument zu Dokument leicht unterscheiden. Für einen immer gleichen Dokumenttyp lohnt sich ein kurzer Blick auf mehrere Beispielergebnisse, bevor eine Anwendung darauf aufgebaut wird.
Preis pro Seite und Ausführung
Die Umwandlung kostet $0.010 pro Anfrage zzgl. $0.0575 pro Seite, in US-Dollar, ohne Abonnement oder Guthaben. Die Funktion läuft auf dieser Seite zum Testen und über die API für die laufende Anbindung an eine eigene Anwendung. Die Verarbeitung läuft asynchron: Sie senden das Dokument, eine Aufgabe startet im Hintergrund, und das JSON liegt vor, sobald die Analyse abgeschlossen ist.
Anwendungsfälle
Formular-Scan an eine App anbinden
Schneider IT-Systeme GmbH & Co. KG liest gescannte Formulare als JSON aus, um die Werte automatisch in eine interne Anwendung zu übernehmen, ohne manuelle Eingabe.
Belege für eine Auswertung strukturieren
Katrin Baumann wandelt fotografierte Belege in JSON um, um die Werte anschließend in einer eigenen Auswertungstabelle weiterzuverarbeiten.
Eingehende Scans in ein System einspeisen
Ein internes Tool von Weber Metallbau GmbH ruft die Funktion über die API auf, um eingehende Scans laufend als strukturierte Daten in ein Warenwirtschaftssystem einzuspeisen.
Häufige Fragen
Gibt es ein festes JSON-Schema?
Nein. Die Struktur richtet sich nach dem Inhalt des jeweiligen Dokuments. Für einen wiederkehrenden Dokumenttyp empfiehlt sich ein Blick auf mehrere Beispiele, bevor eine feste Anwendung darauf aufbaut.
Werden auch Tabellen erkannt?
Ja, Tabellen werden als verschachtelte Struktur innerhalb des JSON abgebildet, sofern sie im Dokument klar als solche erkennbar sind.
Kann ich die Funktion direkt aus meiner Anwendung heraus aufrufen?
Ja, über die API. Sie senden das Dokument, erhalten eine Task-ID zurück und rufen das Ergebnis ab, sobald die Verarbeitung abgeschlossen ist.
Was kostet eine Umwandlung?
$0.010 pro Anfrage und $0.0575 pro Seite, in US-Dollar, ohne Abonnement. Zahlung per PayPal, Rechnung auf Anfrage.
Wird das Dokument nach der Umwandlung gespeichert?
Nein. Die Übertragung ist verschlüsselt, das Dokument wird nur für die Dauer der Verarbeitung genutzt und danach gelöscht.
Wie groß darf das Dokument sein?
Bis zu 25 MB und bis zu 10 Seiten pro Anfrage.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/ocr/to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/ocr/to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ocr/to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ocr/to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ocr/to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"input": "…"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ocr.to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
max_pages | 10 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
413 | input_too_large | Die Eingabe überschreitet das Größenlimit dieser Aufgabe – die genaue Grenze steht auf der Seite. |
422 | task_failed | Die Aufgabe ist fehlgeschlagen und wird nicht berechnet. |