API-Dokumentation
REST API
Automatisiere die Dokumentenverarbeitung — z. B. aus n8n, Make, Zapier oder eigenen Skripten.
Alle Endpunkte nutzen API-Key-Authentifizierung über den HTTP-Header X-API-Key.
Basis-URL
http://app4.phil27.de/sitemap.xml
API-Keys können von einem Admin unter Einstellungen → API-Keys erstellt werden.
Authentifizierung
Übergib den API-Key in einem der folgenden HTTP-Header:
| Methode | Beispiel | Empfohlen |
|---|---|---|
X-API-Key Header |
X-API-Key: tpw_abc123… |
✓ |
Authorization Bearer |
Authorization: Bearer tpw_abc123… |
|
| Query-Parameter | ?…&api_key=tpw_abc123… |
Download |
POST Dokument verarbeiten
http://app4.phil27.de/sitemap.xml?page=api-process
Request
Content-Type: multipart/form-data
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
file | File | ✓ | Die zu verarbeitende Datei |
operation | String | ✓ | Verarbeitungsmodus (siehe Tabelle unten) |
language | String | OCR-Sprache, Standard: deu+eng |
Response (Erfolg)
{
"success": true,
"filename": "Rechnung_ocr_1718123456.pdf",
"download_url": "?page=api-download&file=Rechnung_ocr_1718123456.pdf&api_key=tpw_…",
"processing_time": 8.34,
"operation": "ocr"
}
Response (Fehler)
{
"success": false,
"error": "Fehlermeldung"
}
Beispiel — cURL
curl -X POST \ -H "X-API-Key: tpw_IHR_KEY_HIER" \ -F "file=@/pfad/zum/dokument.pdf" \ -F "operation=ocr" \ -F "language=deu+eng" \ "http://app4.phil27.de/sitemap.xml?page=api-process"
Beispiel — PHP
$ch = curl_init('http://app4.phil27.de/sitemap.xml?page=api-process');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-Key: tpw_IHR_KEY_HIER'],
CURLOPT_POSTFIELDS => [
'file' => new CURLFile('/pfad/dokument.pdf', 'application/pdf', 'dokument.pdf'),
'operation' => 'ocr',
'language' => 'deu+eng',
],
CURLOPT_TIMEOUT => 300,
]);
$json = json_decode(curl_exec($ch), true);
$dlUrl = $json['download_url'] ?? null;
Beispiel — Python
import requests
resp = requests.post(
"http://app4.phil27.de/sitemap.xml?page=api-process",
headers={"X-API-Key": "tpw_IHR_KEY_HIER"},
files={"file": open("dokument.pdf", "rb")},
data={"operation": "ocr", "language": "deu+eng"},
timeout=300,
)
data = resp.json()
print(data["download_url"])
GET Ergebnisdatei herunterladen
http://app4.phil27.de/sitemap.xml?page=api-download&file={filename}&api_key={key}
Gibt die fertige Datei direkt als Binary-Stream zurück. Der API-Key kann hier
als Query-Parameter übergeben werden, damit der download_url aus der
Process-Response direkt verwendbar ist.
| Parameter | Quelle | Beschreibung |
|---|---|---|
file | Query | Dateiname aus der Process-Response |
api_key | Query oder Header | Dein API-Key |
Beispiel — cURL
curl -H "X-API-Key: tpw_IHR_KEY_HIER" \ "http://app4.phil27.de/sitemap.xml?page=api-download&file=Rechnung_ocr_1718123456.pdf" \ -o ergebnis.pdf
Verfügbare Operationen
| operation | Funktion | Akzeptierte Dateiformate | Ausgabe |
|---|---|---|---|
ocr |
PDF → PDF (OCR) | ||
to-docx |
PDF → DOCX | DOCX | |
to-xlsx |
PDF → XLSX | XLSX | |
to-pdfa |
PDF → PDF/A | ||
docx-ocr |
DOCX → PDF (OCR) | DOCX / DOC | DOCX |
xlsx-ocr |
XLSX → PDF (OCR) | XLSX / XLS | XLSX |
image-ocr |
Bild → PDF (OCR) | JPG, PNG, TIFF, BMP … |
OCR-Sprachen (language)
Sprachen können mit + kombiniert werden (z. B. deu+eng).
deu+eng
deu
eng
fra+deu
fra
ita
spa
… weitere je nach installierten Tesseract-Language-Packs
n8n-Integration
Mit zwei HTTP-Request-Nodes lässt sich die komplette Verarbeitungskette in n8n abbilden:
- Methode:
POST - URL:
http://app4.phil27.de/sitemap.xml?page=api-process - Authentication: Generic Credential Type → Custom Header Auth
- Header Name:
X-API-Key, Value: Dein Key - Body Content Type:
Form-Data (Multipart) - Parameter:
file→ Binär-Datei aus vorangehendem Node - Parameter:
operation→ z. B.ocr - Parameter:
language→ z. B.deu+eng - Timeout: mind. 300 s
Antwort enthält download_url, z. B.:
?page=api-download&file=Rechnung_ocr_1718123456.pdf&api_key=tpw_…
- Methode:
GET - URL:
http://app4.phil27.de/sitemap.xml{{ $json.download_url }} - Response Format:
File
Da download_url den api_key bereits enthält,
ist kein zusätzlicher Header nötig.
HTTP-Statuscodes
| Code | Bedeutung |
|---|---|
200 | Erfolgreich |
400 | Ungültige Anfrage (fehlende Parameter) |
401 | API-Key fehlt oder ungültig |
404 | Datei nicht gefunden |
500 | Interner Serverfehler |
503 | Dienst nicht verfügbar (DB-Verbindung fehlt) |