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.

A dark code panel showing a Bearer-authenticated request and JSON response.

AUTHENTICATION

Authenticate and extract in one call.

Every request is authenticated with a scoped key as `Authorization: Bearer docr_sk_…`. Post a document and dOCR returns structured JSON.

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"
}
}

A typed Invoice JSON response.

MODEL SELECTION

Pick your model per request.

Set `model` on each request to trade quality for speed without changing anything else in your integration.
A signed webhook header and HMAC verification snippet.

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.

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.