Authentifizierung
Die German-OCR API verwendet API-Key + API-Secret zur Authentifizierung. Bei der Registrierung erhalten Sie beide Werte im Developer Portal.
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
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
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
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
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
/v1/analyzeLädt ein Dokument hoch und startet die OCR-Verarbeitung. Gibt sofort eine Job-ID zurück.
Request Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
file* | File | Dokument als Bild (PNG, JPG, WebP, TIFF) oder PDF |
prompt | String | Custom Prompt für spezifische Extraktion, z.B. "Extrahiere alle Rechnungspositionen als JSON" |
model | String | german-ocr-ultra, german-ocr-pro, german-ocr, privacy-shield |
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
/v1/jobs/{job_id}Fragt den aktuellen Status eines Jobs ab. Wiederholen Sie diese Abfrage bis status gleich completed oder failed ist.
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
| Status | Beschreibung |
|---|---|
pending | Job in Warteschlange |
processing | Wird gerade verarbeitet |
completed | Erfolgreich abgeschlossen - Ergebnis verfügbar |
failed | Fehlgeschlagen - 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)
{
"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})
{
"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)
| Feld | Typ | Beschreibung |
|---|---|---|
job_id | String | Eindeutige Job-ID (UUID) |
status | String | pending | processing | completed | failed |
result | String | Extrahierter Text (Markdown-formatiert) |
processing_time_ms | Number | Verarbeitungszeit in Millisekunden |
price_display | String | Berechneter Preis (z.B. "0,10 €") |
privacy | Object | DSGVO-Informationen |
error | String | Fehlermeldung (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
| Code | Name | Beschreibung |
|---|---|---|
| 400 | Bad Request | Ungültige Parameter oder fehlende Datei |
| 401 | Unauthorized | Ungültiger oder fehlender API-Key |
| 402 | Payment Required | Guthaben aufgebraucht |
| 413 | Payload Too Large | Datei größer als 10 MB |
| 415 | Unsupported Media | Nicht unterstütztes Dateiformat |
| 429 | Too Many Requests | Rate Limit überschritten |
| 500 | Server Error | Interner Serverfehler |
Rate Limits
Um eine faire Nutzung zu gewährleisten, gelten folgende Rate Limits:
Developer
Requests pro Minute
Business & Enterprise
Requests pro Minute
Rate Limit Headers
SDKs & Beispiele
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)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/examplesDocument Search API
Semantische Dokumentensuche mit KI-gestützten Embeddings. Indexieren Sie Ihre Dokumente und finden Sie diese später durch natürlichsprachige Abfragen.
Powered by German-OCR-Search
Nutzt multimodale Vision-Language-Embeddings für präzise semantische Suche in deutschen Dokumenten.
Endpoints
/v1/search/indexDokument indexieren für spätere Suche
Parameter (multipart/form-data):
file- Dokument (PNG, JPEG, PDF)tags- Optional: Komma-separierte Tagsmetadata- Optional: JSON-Metadaten
curl -X POST "https://api.german-ocr.de/v1/search/index" \ -H "Authorization: Bearer gocr_xxx:your_secret" \ -F "file=@rechnung.pdf" \ -F "tags=rechnung,2024"
/v1/search/querySemantische Suche in indexierten Dokumenten
Body (application/json):
query- Suchanfrage in natürlicher Sprachelimit- Optional: Max. Ergebnisse (Standard: 10)threshold- Optional: Min. Ähnlichkeit (0-1)
curl -X POST "https://api.german-ocr.de/v1/search/query" \
-H "Authorization: Bearer gocr_xxx:your_secret" \
-H "Content-Type: application/json" \
-d '{"query": "Hetzner Rechnung Januar", "limit": 5}'/v1/search/documentsAlle indexierten Dokumente auflisten
curl "https://api.german-ocr.de/v1/search/documents" \ -H "Authorization: Bearer gocr_xxx:your_secret"
/v1/search/documents/{id}Details eines indexierten Dokuments abrufen
/v1/search/documents/{id}/downloadOriginal-Datei herunterladen
/v1/search/documents/{id}Dokument aus dem Index löschen
Search Response
{
"success": true,
"results": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"filename": "hetzner_rechnung_2024.pdf",
"similarity": 0.89,
"indexed_at": "2024-12-15T10:30:00Z",
"tags": ["rechnung", "hosting"],
"metadata": {}
}
],
"query_time_ms": 45
}Bereit zum Integrieren?
Erstellen Sie einen Account und erhalten Sie sofort Ihren API-Key.
API-Key anfordern