Jetzt starten: 30 Seiten jeden Monat kostenlos
Dokumentation

API-Referenz

Alles, was Sie für die Integration der German-OCR API benötigen. REST-basiert, JSON-Ausgabe, ein Endpoint.

Authentifizierung

Die German-OCR API verwendet API-Key + API-Secret zur Authentifizierung. Bei der Registrierung erhalten Sie beide Werte im Developer Portal.

# Format: Bearer API_KEY:API_SECRET
Authorization: Bearer gocr_abc123:your_64_char_secret_here

Ihre Zugangsdaten

API Key

gocr_xxxxxxxx(immer sichtbar im Portal)

API Secret

64-stelliger Hex-String(nur einmal bei Erstellung sichtbar!)

Sicherheitshinweis

Das API Secret wird nur einmal angezeigt! Speichern Sie es sofort sicher ab. Verwenden Sie Umgebungsvariablen, niemals im Frontend-Code.

Modelle

German-OCR bietet vier Modelle für unterschiedliche Anforderungen. Alle Modelle sind DSGVO-konform und verarbeiten Ihre Daten in der EU.

German-OCR Turbo

Blitzschnell & DSGVO-konform

Features

  • Lokale Verarbeitung in Deutschland
  • DSGVO-konform
  • Keine Cloud-Kosten
  • ~3 Sekunden

Ideal für

Interne Dokumente, Personalakten, Verträge

API Parameter:model="german-ocr"

German-OCR Pro

Professionell & zuverlässig

Features

  • EU-Rechenzentrum Frankfurt
  • DSGVO-konform
  • Schnelle Cloud
  • ~4 Sekunden

Ideal für

Rechnungen, Lieferscheine, Formulare

API Parameter:model="german-ocr-pro"

German-OCR Ultra

Maximale Präzision

Features

  • EU-Rechenzentrum Frankfurt
  • DSGVO-konform
  • Strukturerkennung
  • ~5 Sekunden

Ideal für

Komplexe Layouts, Tabellen, Formulare mit Feldern

API Parameter:model="german-ocr-ultra"

German-OCR Privacy Shield

PII-Erkennung & Anonymisierung

Features

  • Automatische PII-Erkennung
  • DSGVO-konform
  • Name/IBAN/Adresse
  • ~6 Sekunden

Ideal für

Datenschutz, Anonymisierung, DSGVO-Compliance

API Parameter:model="privacy-shield"

100% DSGVO-konform

Alle Modelle verarbeiten Ihre Dokumente ausschließlich in der EU. German-OCR Turbo verarbeitet vollständig lokal, Privacy Shield anonymisiert PII automatisch.

OCR Endpoint

Asynchrone Verarbeitung

Die OCR-API arbeitet asynchron: Sie erhalten eine Job-ID und können den Status abfragen.

Schritt 1: Job erstellen

POST/v1/analyze

Lädt ein Dokument hoch und startet die OCR-Verarbeitung. Gibt sofort eine Job-ID zurück.

Request Parameter

ParameterTypBeschreibung
file*FileDokument als Bild (PNG, JPG, WebP, TIFF) oder PDF
promptStringCustom Prompt für spezifische Extraktion, z.B. "Extrahiere alle Rechnungspositionen als JSON"
modelStringgerman-ocr-ultra, german-ocr-pro, german-ocr, privacy-shield
curl - Job erstellen
curl -X POST "https://api.german-ocr.de/v1/analyze" \
  -H "Authorization: Bearer gocr_abc123:your_64_char_secret_here" \
  -F "file=@rechnung.pdf" \
  -F "model=german-ocr-ultra"

Schritt 2: Job-Status abfragen

GET/v1/jobs/{job_id}

Fragt den aktuellen Status eines Jobs ab. Wiederholen Sie diese Abfrage bis status gleich completed oder failed ist.

curl - Status abfragen
curl "https://api.german-ocr.de/v1/jobs/52a52572-c97b-4894-97f9-653a13947a8c" \
  -H "Authorization: Bearer gocr_abc123:your_64_char_secret_here"

Job-Status Werte

StatusBeschreibung
pendingJob in Warteschlange
processingWird gerade verarbeitet
completedErfolgreich abgeschlossen - Ergebnis verfügbar
failedFehlgeschlagen - Fehlermeldung in error

Response Format

Die API arbeitet mit Jobs. Zuerst erhalten Sie eine Job-ID, dann können Sie das Ergebnis abrufen.

1. Job-Erstellung (POST /v1/analyze)

Response (200 OK)
{
  "job_id": "52a52572-c97b-4894-97f9-653a13947a8c",
  "status": "pending",
  "message": "Job in Warteschlange",
  "model": "German-OCR Ultra"
}

2. Job-Ergebnis (GET /v1/jobs/{job_id})

Response - Completed (200 OK)
{
  "job_id": "52a52572-c97b-4894-97f9-653a13947a8c",
  "status": "completed",
  "model": "German-OCR Ultra",
  "processing_time_ms": 14582,
  "privacy": {
    "processing_location": "EU (Frankfurt)",
    "gdpr_compliant": true
  },
  "result": "# RECHNUNG\n\nRechnungsnummer: RE-2024-00142\nDatum: 15.12.2024\n\n| Position | Beschreibung | Menge | Preis |\n|----------|--------------|-------|-------|\n| 1 | Beratung IT | 8 Std | 960,00 € |\n\n**Gesamt: 2.021,81 €**",
  "created_at": "2024-12-15T10:30:00Z"
}

Response-Felder (Job-Ergebnis)

FeldTypBeschreibung
job_idStringEindeutige Job-ID (UUID)
statusStringpending | processing | completed | failed
resultStringExtrahierter Text (Markdown-formatiert)
processing_time_msNumberVerarbeitungszeit in Millisekunden
price_displayStringBerechneter Preis (z.B. "0,10 €")
privacyObjectDSGVO-Informationen
errorStringFehlermeldung (nur bei status=failed)

Fehlerbehandlung

Bei Fehlern liefert die API einen entsprechenden HTTP-Status und eine strukturierte Fehlermeldung.

Fehler-Response

{
  "success": false,
  "error": {
    "code": "INVALID_FILE_TYPE",
    "message": "Nicht unterstütztes Dateiformat. Erlaubt: PNG, JPG, WebP, PDF",
    "status": 415
  }
}

HTTP Status Codes

CodeNameBeschreibung
400Bad RequestUngültige Parameter oder fehlende Datei
401UnauthorizedUngültiger oder fehlender API-Key
402Payment RequiredGuthaben aufgebraucht
413Payload Too LargeDatei größer als 10 MB
415Unsupported MediaNicht unterstütztes Dateiformat
429Too Many RequestsRate Limit überschritten
500Server ErrorInterner Serverfehler

Rate Limits

Um eine faire Nutzung zu gewährleisten, gelten folgende Rate Limits:

Developer

60

Requests pro Minute

Business & Enterprise

500

Requests pro Minute

Rate Limit Headers

X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 1703332800

SDKs & Beispiele

Py

Python

pip install german-ocr

from german_ocr import OCRClient

client = OCRClient(
    api_key="gocr_abc123",
    api_secret="your_64_char_secret_here"
)
result = client.analyze(
    "rechnung.pdf",
    prompt="Extrahiere alle Rechnungsdaten",
    model="german-ocr-ultra"
)
print(result.text)
TS

TypeScript/Node.js

npm install @german-ocr/sdk

import { OCRClient } from '@german-ocr/sdk';

const client = new OCRClient({
    apiKey: 'gocr_abc123',
    apiSecret: 'your_64_char_secret_here'
});
const result = await client.analyze('rechnung.pdf', {
    prompt: 'Extrahiere alle Rechnungsdaten',
    model: 'german-ocr-ultra'
});
console.log(result.text);

Mehr Beispiele auf GitHub

Vollständige Beispiele für Python, Node.js, PHP, Go und weitere Sprachen.

github.com/german-ocr/examples

Bereit zum Integrieren?

Erstellen Sie einen Account und erhalten Sie sofort Ihren API-Key.

API-Key anfordern