poai_ Server zu Server API-Key
- Rechte des Kontos, das ihn anlegt (Admin: ganzes Konto)
- Nie in Browser-Code ausliefern
- Kein Origin-Header nötig
- Für MCP gesperrt
- Auf IP-Adressen begrenzbar
Authentifizierung und Keys
Jeder Produkt-Endpunkt der PaperOffice-API erwartet den Header Authorization: Bearer. Kein OAuth-Flow, kein Refresh.
Zwei Token-Typen, klare Rechte, dokumentierte Rate-Limits.
curl -X POST "https://api.paperoffice.ai/latest/job/add/workflow" \ -H "Authorization: Bearer po_ut_YOUR_API_KEY" \ -F "file_1=@invoice.pdf" \ -F "idp_collection=invoice" \ -F "model=basic-pro-max" import requestsresponse = requests.post( "https://api.paperoffice.ai/latest/job/add/workflow", headers={"Authorization": "Bearer po_ut_YOUR_API_KEY"}, files={"file_1": open("invoice.pdf", "rb")}, data={"idp_collection": "invoice", "model": "basic-pro-max"},)print(response.json()) const form = new FormData();form.append("file_1", new Blob([await readFile("invoice.pdf")]), "invoice.pdf");form.append("idp_collection", "invoice");form.append("model", "basic-pro-max");const response = await fetch("https://api.paperoffice.ai/latest/job/add/workflow", { method: "POST", headers: { Authorization: "Bearer po_ut_YOUR_API_KEY" }, body: form,});console.log(await response.json()); Erster Aufruf
Der Pfad nach /latest/job/add/ ist der Name der Operation: meist in der Form handler___command (etwa paperoffice_aiocr___generate), für strukturiertes IDP die eigene Pipeline workflow.
Authorization: Bearer po_ut_… — mehr braucht ein Produkt-Endpunkt nicht. poai_ und po_ut_ senden keinen Origin-Header.
handler___command mit drei Unterstrichen; workflow ist die Ausnahme mit eigenem Slug. Punktschreibweise beantwortet die API mit HTTP 400 JOB_CONFIG_INVALID.
client_wait ist standardmäßig true: Die API hält die Verbindung und liefert das Ergebnis inline. Reicht das Zeitfenster nicht, kommt HTTP 202 mit job_id und poll_url für GET /latest/job/get/{job_id}.
Für idp_collection=invoice ist basic-pro-max das empfohlene Modell. Das tatsächlich genutzte Modell steht in der Antwort im Feld model und kann vom angefragten abweichen.
Token-Typen
Beide gehören auf den Server. Angelegt, rotiert und widerrufen werden sie in der App unter Account → API.
poai_ Server zu Server po_ut_ Nutzerbezogen Aufrufe direkt aus dem Browser laufen nicht über diese beiden Token, sondern über den Publishable Key po_pk_ — herkunftsgebunden, budget- und ratenbegrenzt. Publishable Keys ansehen
Berechtigungen
Ein User Token hat genau die Rechte seines Benutzers in diesen Bereichen. Einzelne Bereiche lassen sich beim Anlegen nicht vergeben; zum Eingrenzen dient ein Gruppen-Token (po_gt_) mit den Rechten einer Benutzergruppe.
documents Upload, Download, Verarbeitung
workspaces Ordner und Struktur verwalten
ai_jobs OCR, IDP, Extraktion
billing Nutzung und Kontostand lesen
users Team-Mitglieder verwalten
webhooks Ereignisse empfangen
knowledge_base Wissensdatenbank und FAQ
agents IDP Agents konfigurieren
workflows Automatisierungen erstellen
compliance Audit, DSGVO, Archivierung
Rate-Limits
Gezählt wird je Token; ohne Bearer je IP-Adresse. Die folgenden Werte sind die dokumentierten Mindestwerte, die in jedem Tarif gelten.
Die Header RateLimit-* und X-RateLimit-* jeder Antwort sagen, wie viel im laufenden Fenster noch offen ist.
Die API antwortet mit RATE_LIMIT_EXCEEDED. Wiederholen Sie den Aufruf nach der Zeit aus dem Retry-After-Header.
Bezahlte Tarife liegen über diesen Mindestwerten. Welcher Tarif welchen Umfang hat, steht auf der Preisseite.
Sicherheit
Sechs Mechanismen, die im Betrieb greifen — jeder mit einem prüfbaren Statuscode oder einem Ort in der App.
Keys werden in der App unter Account → API angelegt, aufgelistet, rotiert und widerrufen. Ein widerrufener Token antwortet mit HTTP 401 TOKEN_NOT_FOUND.
Abgelaufene Token antworten mit HTTP 401 BEARERTOKEN_EXPIRED, fehlerhafte mit HTTP 401 INVALID_TOKEN. Publishable Keys gelten 180 Tage ab Erstellung.
Im Free-Tarif gelten Rate-Limits je Token. In bezahlten Tarifen zählt das Konto; solange Credits vorhanden sind, greifen dort keine Rate-Limits.
Publishable Keys verlangen bei jeder Anfrage einen Origin aus der Allowlist; sonst antwortet die API mit 403 ORIGIN_HEADER_REQUIRED oder DOMAIN_NOT_ALLOWED.
Jede abgerechnete Antwort trägt einen _billing-Block; die Auswertung je Aufruf liefert GET /latest/billing/usage-detail.
Konto-Login, Key-Verwaltung, OAuth, Partner-Admin, Zahlungsmutation und Passwort-Crack sind für Browser-Keys gesperrt. Produkt-APIs inklusive Billing-Lesen und Webhooks sind erlaubt. Workspace löschen, Papierkorb leeren und Legal-Hold-Freigabe gehen nur in der App (403 UI_ONLY_ENDPOINT).
Weiterführend
Die Seiten, die den Betrieb um Authentifizierung herum abdecken.
Loslegen
Den Key legen Sie in der App unter Account → API an. Der erste Aufruf steht Schritt für Schritt im Ersten API-Call.
Betrieb und Vertrauen
Verträge, Sicherheit, Support und Limits, alles an einem Ort verlinkt.
Nächste Station
Der empfohlene nächste Schritt im Developer-Funnel und zwei passende Abzweige.
AI-DMS
Dokumente. Intelligenz. Echte Wirkung.
PaperOffice AI ist das AI-DMS. Vier Funktionsbereiche auf einem DMS-Fundament, erreichbar über drei Zugänge.
Funktionen, Module und Vorteile im Überblick.
Dokumente erfassen, organisieren, suchen und gemeinsam bearbeiten.
Nahtlos in Ihre Systeme und KI-Workflows einbinden.
Ohne Installation, sofort startklar.
Alle Tools durchsuchen