po_sk_ Server-tot-server Geheime sleutel
- Volle toegang binnen het account
- Nooit in browsercode leveren
- Geen Origin-header nodig
- Geblokkeerd voor MCP
Authenticatie en sleutels
Elk product-eindpunt van de PaperOffice-API verwacht de header Authorization: Bearer. Geen OAuth-flow, geen refresh.
Twee token-typen, tien machtigingsgebieden, gedocumenteerde rate-limits.
curl -X POST "https://api.paperoffice.ai/latest/job/add/workflow" \ -H "Authorization: Bearer po_ut_YOUR_API_KEY" \ -F "[email protected]" \ -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()); Eerste aanroep
Het pad naar /latest/job/add/ is de naam van de wachtrijtaak: meestal in de vorm handler___command (bijv. paperoffice_aiocr___generate), voor gestructureerde IDP de eigen pipeline workflow.
Authorization: Bearer po_ut_… — meer heeft een product-eindpunt niet nodig. po_sk_ en po_ut_ sturen geen Origin-header.
handler___command met drie onderstrepingstekens; workflow is de uitzondering met een eigen slug. Puntnotatie beantwoordt API met HTTP 400 JOB_CONFIG_INVALID.
client_wait is standaard true: De API houdt de verbinding actief en levert het resultaat inline. Als het tijdskader niet toereikend is, wordt HTTP 202 geretourneerd met job_id en poll_url voor GET /latest/job/get/{job_id}.
Voor idp_collection=invoice is basic-pro-max het aanbevolen model: OCR-first beperkt gedrukte verzamelingen met posities sowieso tot basic-pro-max; een verzonden model=premium wordt geretourneerd als model: basic-pro-max.
Token-typen
Beide behoren tot de server. Ze worden aangemaakt, geroteerd en ingetrokken in de app onder Account → API.
po_sk_ Server-tot-server po_ut_ Gebruikersgerelateerd Aanroepen direct vanuit de browser lopen niet via deze twee tokens, maar via de Publishable Key po_pk_ — herkomstgebonden, budget- en ratebeperkt. Publishable Keys bekijken
Machtigingen
Een gebruikerstoken bevat precies de gebieden die u bij het aanmaken toekent. Ontbreekt het gebied, dan antwoordt API met HTTP 403.
documenten Uploaden, Downloaden, Verwerken
werkruimtes Mappen en structuur beheren
ai_jobs OCR, IDP, extractie
facturering Gebruik en saldo lezen
gebruikers Teamleden beheren
webhooks Gebeurtenissen ontvangen
kennisbank Kennisbank en FAQ
agenten IDP-agents configureren
werkstromen Automatiseringen maken
compliance Audit, AVG, archivering
Rate-limits
Er wordt per token gerekend; zonder Bearer per IP-adres. De volgende waarden zijn de gedocumenteerde minimumwaarden die in elk tarief gelden.
De headers RateLimit-* en X-RateLimit-* van elk antwoord geven aan hoeveel er in het lopende venster nog beschikbaar is.
API antwoordt met RATE_LIMIT_EXCEEDED. Herhaal de aanroep na de tijd uit de Retry-After-header.
Betaalde tarieven liggen boven deze minimumwaarden. Welk tarief welke omvang heeft, staat op de prijspagina.
Beveiliging
Zes mechanismen die in bedrijf werken — elk met een controleerbare statuscode of een locatie in de app.
Keys worden in de app aangemaakt, weergegeven, geroteerd en ingetrokken onder Account → API. Een ingetrokken token antwoordt met HTTP 401 TOKEN_NOT_FOUND.
Verlopen of foutieve tokens worden teruggegeven als HTTP 401 INVALID_TOKEN. Publishable Keys vervallen uiterlijk na 365 dagen.
Rate-limits tellen per token, niet per account. Een gecompromitteerde sleutel belast hiermee niet de gehele organisatie.
Publishable keys vereisen bij elk verzoek een origin uit de allowlist; anders wordt geantwoord met API met status 403 ORIGIN_HEADER_REQUIRED of DOMAIN_NOT_ALLOWED.
Elk gefactureerd antwoord bevat een _billing-blok; de evaluatie per aanroep levert GET /latest/billing/usage-detail op.
Account-login, sleutelbeheer, OAuth, partner-administratie, betalingsmutaties en wachtwoordkraken zijn geblokkeerd voor browser-sleutels. Product-APIs inclusief facturatie-lezen en webhooks zijn toegestaan. Workspace verwijderen, prullenbak legen en Legal-Hold-vrijgave gaan alleen in de app (403 UI_ONLY_ENDPOINT).
Zie hoe een aanroep met Bearer-token in de praktijk werkt — in de video.
Verder lezen
De pagina's die het beheer rondom authenticatie afdekken.
Aan de slag
U maakt de sleutel in de app aan onder Account → API. De eerste aanroep wordt stap voor stap beschreven in de Eerste API-aanroep.
Bedrijfsvoering en vertrouwen
Contracten, veiligheid, ondersteuning en limieten, allemaal op één plek gelinkt.
Volgende halte
De aanbevolen volgende stap in de developer-funnel en twee passende vertakkingen.