Skip to content
New — screenshot any URL, then extract its data

Turn any document or website into structured data

dOCR captures PDFs, images, and live web pages — and returns the exact fields you define as JSON. Skip the browser cluster and the OCR-plus-parsing pipeline; call one API.

$ curl -X POST docr.dev/api/v1/screenshots -d '{"url":"stripe.com"}'

invoice.pdf PDF
stripe.com
output.json from invoice.pdf

{

"title": "INV-2042",

"amount": "1,280.00",

"date": "2026-07-15"

}

structured JSON, ready to use

Trusted by teams processing millions of documents

  • driftbase
  • Hexlayer
  • QUANTIS
  • modulr
  • Corecast
  • statline

Capabilities

Everything you need to capture and extract

dOCR owns the messy parts — rendering pages and parsing documents — so you get clean screenshots and typed, validated JSON instead of a browser cluster and a wall of OCR text.

One API for documents and the web

Invoices, receipts, forms, IDs — and any live URL. Point a document at POST /api/v1/extract, a page at /api/v1/screenshots, or do both: capture a URL, then extract its data in one call.

invoices receipts forms IDs statements contracts

Structured JSON, not OCR text

dOCR returns the typed fields you defined — each one located, validated, and scored — so you write zero parsing code.

invoiceNumber "INV-2042" 99%
total 1280.00 98%
dueDate 2026-07-15 96%

Screenshot any URL

Render any page to PNG, JPEG, WebP, or PDF — full-page, any device viewport, retina. dOCR blocks ads and cookie banners for you. No headless browser to babysit.

stripe.com captured · png example.com captured · pdf news.ycombinator.com rendering…

Fast on every page

Most documents come back in a couple of seconds — multi-page PDFs included — so dOCR fits inside a request, not a nightly batch job.

target · 2s extraction time · last 24h

Document types you control

Define the fields you want once as a documentType, and every extraction returns that exact shape — same keys, same types, every time.

Dashboard or API

Upload in the dashboard to try things out and browse Extraction History, then automate the same extraction from your backend — one POST, no infrastructure to run.

Developer experience

One request — a screenshot or structured data

No SDK to learn, no browser cluster, no model to host. Call a single endpoint from any language and dOCR returns a rendered page or the fields you defined as JSON.

  • Extract documents or screenshot any URL — one key, one endpoint family
  • Capture a page, then pull structured data from it in a single call
  • Typed JSON with a confidence score on every field — no parsing code
any language
const form = new FormData();
form.set('file', await openAsBlob('invoice.pdf')); // PDF, image, or DOCX
form.set('documentType', 'invoice');

const res = await fetch('https://docr.dev/api/v1/extract', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.DOCR_API_KEY}` },
  body: form,
});

const { data } = await res.json();
// → { invoiceNumber: 'INV-2042', total: '1280.00', dueDate: '2026-07-15' }

Transparency

See exactly how each field was found

Every extraction is traced from upload through OCR, field extraction, and schema validation — with structured logs alongside. When a field looks off, you know which stage produced it and how confident dOCR was.

extraction 01J9JD4QK7 POST /api/v1/extract 200 1.4s invoice

Trace waterfall

POST /api/v1/extract
upload.validate
ocr.pages
extract.fields
validate.schema
serialize
logs — streaming
  • 12:04:31.118 INFO request.start documentType=invoice
  • 12:04:31.140 INFO upload.ok pages=2 bytes=184kb
  • 12:04:31.620 INFO ocr.ok pages=2
  • 12:04:31.980 WARN extract.lowconf field=dueDate score=0.71
  • 12:04:32.360 INFO extract.ok fields=7
  • 12:04:32.520 INFO request.end status=200 dur=1.40s

Every extraction is logged to your dashboard — confidence scores, page counts, and timings, no setup required.

Customers

Teams that switched, stayed

“We deleted an entire OCR-and-regex pipeline. dOCR returns the exact fields we defined as clean JSON — invoice processing that took our team days now runs in seconds.”

Maya Lindqvist Platform Lead, Driftbase

“Custom document types were the moment it clicked. We described the fields once, and accuracy on our messy scanned receipts jumped immediately.”

Diego Fuentes Staff Engineer, Hexlayer

“We prototyped in the dashboard in an afternoon, then moved the same extraction to the API in a few lines. No model to train, no infrastructure to run.”

Anika Mehta CTO, Corecast

Capture and extract, from one API key

Screenshot a URL or pull structured data from any document — same key, same endpoint family. Start free — no credit card, no pipeline to build. Pay as you scale.