Übersicht

hotdoc ist eine API zur Dokumentenverarbeitung. Sie schicken Dateien und Textanweisungen (Prompts) und bekommen den erkannten Text sowie die Antworten des Modells für jede Datei zurück.

Im Hintergrund erledigt hotdoc drei Dinge: Es entpackt Archive und normalisiert Ihre Dateien, führt sie durch OCR und schickt den erkannten Text zusammen mit Ihren Prompts an ein Sprachmodell. Sie richten keine Infrastruktur ein, konfigurieren keine OCR-Pipeline und zahlen keinen Aufschlag auf Tokens — das Modell läuft mit Ihrem Provider-Schlüssel (BYOK).

Die Verarbeitung ist asynchron. Sie erstellen einen Job, erhalten seine ID und fragen den Status ab, bis der Job fertig ist. Ein einzelner Job kann mehrere Dateien enthalten, auch Dateien, die in Archiven verschachtelt sind.

hotdoc passt gut, wenn:

  • Sie eine Mischung aus Dokumenten (PDFs, Scans, Office-Dateien, Archive) per API in Text umwandeln und Daten daraus extrahieren wollen;
  • Sie keine eigene Erkennungsinfrastruktur betreiben wollen;
  • Sie nicht über einen Zwischenhändler für Tokens draufzahlen wollen — Sie zahlen den Modell-Provider direkt.

Was hotdoc nicht tut: Es konvertiert nicht ein Dateiformat in ein anderes als Selbstzweck (es ist kein Konverter) und garantiert keine schema-valide Ausgabe (siehe „Prompts und Datenextraktion”).

Wie die API in 1 Minute funktioniert

Eine Basis-URL (https://api.hotdoc.io), ein Auth-Header, asynchrone Verarbeitung: Sie erstellen einen Job, erhalten seine id und fragen den Status ab, bis der Job fertig ist.

Die Methoden teilen sich in drei Gruppen auf (vollständige Liste mit Pfaden in „API-Referenz”):

GruppeMethodenWofür
Verarbeitung (Jobs)5Job erstellen, Status, Ergebnis, Jobs auflisten, Datei hochladen
Konto und Schlüssel6Profil, Konto umbenennen, Mitglieder, API-Schlüssel erstellen/auflisten/widerrufen
Abrechnung4Kontingentstatus, Tarife, Checkout und Abo-Portal

Der zentrale Ablauf besteht aus drei Schritten:

POST /v1/jobs            → create a job (status JOB_STATUS_NEW)
GET  /v1/jobs/{id}       → poll the status (NEW → FILE_PROCESSING → OCR → LLM → terminal)
GET  /v1/jobs/{id}/result → fetch the result: recognized text (ocr[]) and model answers (llm[])

Es gibt keinen separaten Logs-Endpunkt: Daten und Fehler je Stufe (OCR/LLM) liegen in /result; die Job-Liste ist GET /v1/jobs; das verbleibende Kontingent ist GET /v1/billing.

Kernkonzepte

Job. Die Verarbeitungseinheit. Er enthält eine oder mehrere Quelldateien, durchläuft die Verarbeitungsstufen und hat einen Status. Limits gelten für die Gesamtgröße eines Jobs (siehe „Limits”). Im kostenlosen Tarif wird die Nutzung in Jobs gezählt.

Source. Eine zu verarbeitende Datei. Sie geben sie entweder als öffentliche URL in sourceUrls an oder laden sie zuvor hoch (siehe „Dateien hochladen”). Ist eine Source ein Archiv, wird es rekursiv entpackt (Standardtiefe ≤ 3), und jede verschachtelte Datei wird separat verarbeitet.

Verarbeitungsstufen. Jede Datei durchläuft: Entpacken/Konvertierung → OCR (Texterkennung) → LLM (Senden des Textes mit Ihren Prompts an das Modell).

Prompt. Eine Textanweisung für das Modell. Sie übergeben ein prompts-Array; das Modell wendet es auf den erkannten Text jeder Datei an und gibt eine Textantwort zurück.

BYOK / neural. Die Modellkonfiguration, mit deren Schlüssel die LLM-Stufe läuft. Sie wird beim Erstellen eines Jobs im Feld neural übergeben. Der Provider-Schlüssel wird niemals im Klartext gespeichert — nur verschlüsselt — und wird zusammen mit dem Job gelöscht (siehe „Sicherheit und Daten”).

BYOK / ocr. Die Konfiguration für den OCR-Provider, mit dem die Erkennungsstufe (OCR) läuft. Sie wird beim Erstellen eines Jobs im Feld ocr übergeben und ist immer erforderlich, neben neural. Den Provider wählen Sie über ocr.provider (z. B. NEURAL_CLIENT_TYPE_MISTRAL), das Modell über ocr.model (z. B. mistral-ocr-latest), und Ihren Schlüssel geben Sie in ocr.providerKey an. Es ist ein separater Schlüssel von neural.apiKey: neural.apiKey ist der Provider-Schlüssel des Sprachmodells (LLM-Stufe), während ocr.providerKey der OCR-Provider-Schlüssel für die Texterkennung (OCR-Stufe) ist. Der Konverter entscheidet selbst, ob eine bestimmte Datei OCR benötigt; bei reinen Textdateien bleibt der Schlüssel womöglich ungenutzt, aber Sie müssen ihn in jedem Fall mitsenden. Der Schlüssel wird nur verschlüsselt gespeichert, niemals in Antworten zurückgegeben und zusammen mit dem Job gelöscht.