API & MCP
One account. Three ways in: REST, MCP and llms.txt.
The same 300+ API/MCP tools — integrate via REST, work via MCP in your AI client or hand over llms.txt.
One account, EU-hosted: the same Document Layer sits behind every access path.
- Own EU infrastructure Your data remains in Europe.
- ISO 27001 active Security certified.
- SOC 2 Type II active International audit standards.
- 24+ years of experience Proven. Stable. Future-proof.
Showroom
What can be built with PaperOffice
From a single API call to a complete Document Agent: the Showroom shows applications, prompts and technical recipes.
Review and approve invoices autonomously
Extraction, vendor matching, duplicate detection, approval and an audit-safe result in one flow.
Document AIReview contracts for risk
Detect clauses, deadlines and deviations automatically.
ComplianceValidate addresses
Extract, geocode and verify document data.
TransformationMake PDFs ready for agents
OCR, structure and metadata for downstream systems.
KnowledgeQuery knowledge live
Answers from the current document stock — not from copies.
Quick start
From prompt to the first API call
No documentation marathon: the coding agent reads llms.txt and then knows the capabilities, authentication and endpoints.
- Hand over llms.txt The agent reads the machine-readable description of the API.
- Connect the account One account for REST and MCP, one token in the header.
- Describe the application Describe in natural language what should be built.
Read https://api.paperoffice.ai/latest/docs/llms.txt and understand the available Document Operations.
Then build a workflow that:
1) Analyses incoming invoices
2) Checks required fields
3) Returns the result as structured JSON
4) Uses Authorization: Bearer po_ut_YOUR_API_KEY API understood · ready for the first API call
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()); <?php$ch = curl_init("https://api.paperoffice.ai/latest/job/add/workflow");curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["Authorization: Bearer po_ut_YOUR_API_KEY"], CURLOPT_POSTFIELDS => [ "file_1" => new CURLFile("invoice.pdf"), "idp_collection" => "invoice", "model" => "basic-pro-max", ],]);echo curl_exec($ch); First API call
What the first API call looks like
A POST to /latest/job/add/workflow with a file, a collection and a model — plus a bearer token in the header. Nothing else is needed.
- One header
Authorization: Bearer po_ut_YOUR_API_KEY — no OAuth flow, no refresh logic, no mandatory SDK.
- One pipeline per call
The path after /latest/job/add/ names the pipeline; workflow returns structured IDP.
- Result or job_id
By default the API holds the connection and returns the result inline; otherwise you get HTTP 202 with job_id and poll_url.
Three ways in
How PaperOffice fits the stack
Use the access path the product or agent needs. The document remains the same reliable source.
For your own products
Call Document Operations directly from a backend, workflow or SaaS.
- JSON-based API
- Asynchronous jobs
- Webhooks & events
For AI agents
Bring PaperOffice natively into Claude, ChatGPT, Cursor and other MCP clients.
- Tool discovery
- Live document access
- Controlled actions
For coding agents
The coding agent understands capabilities, authentication and examples immediately.
- No SDK required
- Machine-readable docs
- Ready to copy
Questions
Common questions about the API and MCP
How do REST, MCP and llms.txt differ?
REST is the interface for your own products, the MCP server brings the same tools into AI clients such as Claude, ChatGPT or Cursor, and llms.txt describes both in machine-readable form for coding agents. All three access paths work on the same account and the same Document Layer.
Do I need an SDK?
No. The API is HTTP and JSON, so any HTTP client will do. For coding agents the machine-readable description lives at https://api.paperoffice.ai/latest/docs/llms.txt.
How do I authenticate?
With a token in the HTTP header: Authorization: Bearer po_ut_YOUR_API_KEY. The page Authentication & keys explains the key types and what each one is good for.
Where do I find ready-made examples?
The Cookbook holds copyable prompts and code samples; the Postman collection carries the same endpoints for trying them out directly.
Next station
Where to go next
The recommended next step in the developer funnel and two fitting branches.