DEVELOPERS
A REST API for document extraction.
Post a document, get back structured JSON — authenticated with a scoped key, wired into your stack with signed webhooks.
AUTHENTICATION
Authenticate and extract in one call.
curl https://api.docr.dev/v1/extractions \ -H "Authorization: Bearer docr_sk_live_…" \ -F "file=@invoice.pdf" \ -F "type=invoice" \ -F "model=claude-opus-4-8"
RESPONSE
Typed, predictable output.
Every extraction returns the same envelope — an id, the document type, a status, and a data object whose fields match the type you requested. Example Invoice response:{ "id": "ext_8f2a…", "type": "invoice", "status": "completed", "model": "claude-opus-4-8", "data": { "invoice_number": "INV-2042", "currency": "USD", "total": "1284.00" }}
MODEL SELECTION
Pick your model per request.
Highest-quality extraction for dense or messy documents.-F "model=claude-opus-4-8"
WEBHOOKS
Get notified the moment a job finishes.
Subscribe to extraction.completed and extraction.failed. Every delivery carries X-docr-Signature: t=…,v1=… — an HMAC-SHA256 of the timestamp and raw body, keyed with your webhook secret — and retries on failure. Verify before you trust:const signed = t + "." + rawBody;const expected = hmacSHA256(secret, signed);assert(timingSafeEqual(expected, v1));
ACCESS CONTROL
Lock the API to your infrastructure.
IPV4 · CIDR
IP whitelist
Restrict requests to known IPv4 addresses or CIDR ranges. Anything else is rejected with a 403.
DOCR_SK_…
Scoped keys
Issue and revoke scoped docr_sk_… keys. Keep secret keys server-side and rotate them anytime.
LIMITS & FORMATS
Know the boundaries.
The same formats and per-upload limits apply across the API and dashboard.
| Supported | ||
|---|---|---|
| Formats & limits | File formats | PDF · JPG · JPEG · PNG · BMP · WebP · DOCX |
| Max file size | ≤10MB per upload | |
| Max pages | ≤15 pages per upload |
Read the full API reference.
Endpoints, parameters, error codes, and webhook event payloads.
Ship your first extraction today.
Start on the free plan — 50 pages/mo, no credit card required.