// developers

From document to structured JSON. One POST request.

Send any receipt, invoice, or PDF. Get back named fields — vendor, amount, date, currency, line items — clean JSON, ready for your database. No OCR pipeline. No template setup. No model training.

20 docs/month free · full API access · no credit card

response.json
{
  "success": true,
  "document_type": "receipt",
  "merchant": "Whole Foods Market",
  "date": "2026-05-08",
  "total": "67.42",
  "subtotal": "61.48",
  "tax": "5.94",
  "tax_rate": "9.67%",
  "currency": "USD",
  "payment_method": "Visa ····4921",
  "receipt_id": "WF-20260508-0047",
  "line_items": [
    { "description": "Organic Bananas", "qty": 1, "amount": "1.49" },
    { "description": "Greek Yogurt 32oz", "qty": 2, "amount": "11.98" },
    { "description": "Cold Brew Coffee", "qty": 1, "amount": "5.99" }
  ]
}

PDF · JPG · PNG · CSV

Every file format, one endpoint

Multi-currency

MAD · EUR · GBP · USD · AED · CHF · JPY · AUD · SEK and more

AI + rule-based

Hybrid extraction with automatic fallback on low-confidence scans

Webhooks included

Free plan · no extra setup · fires on every completed extraction

Quickstart

Up and running in minutes

Three steps from zero to structured JSON

01

Create a free account

Generate your API key from the dashboard instantly. Full API access on the free plan — no credit card, no approval process.

Create account
02

Send a multipart POST request

Any PDF, JPG, PNG, or CSV up to 10MB. Your API key goes in the Authorization header. That's the entire setup.

See request format
03

Get named fields back instantly

The response contains every financial field your application needs — already named, already typed, already clean.

{
  "merchant": "Whole Foods Market",
  "total": "67.42",
  "tax": "5.94",
  "date": "2026-05-08",
  "currency": "USD",
  "line_items": [ { "description": "...", "amount": "..." } ]
}

Full schema at /docs — 20+ named fields. Full schema at /docs.

View full response schema
Code examples

One request. Structured JSON back.

Works with any HTTP client.

curl -X POST https://docuparseapi.com/api/v1/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@invoice.pdf"
{
  "success": true,
  "document_type": "receipt",
  "merchant": "Whole Foods Market",
  "date": "2026-05-08",
  "total": "67.42",
  "subtotal": "61.48",
  "tax": "5.94",
  "tax_rate": "9.67%",
  "currency": "USD",
  "payment_method": "Visa ····4921",
  "receipt_id": "WF-20260508-0047",
  "line_items": [
    { "description": "Organic Bananas", "qty": 1, "amount": "1.49" },
    { "description": "Greek Yogurt 32oz", "qty": 2, "amount": "11.98" },
    { "description": "Cold Brew Coffee", "qty": 1, "amount": "5.99" }
  ]
}

Ready to test it with a real document?

Under 5 minutes from signup to first extraction.

Get my free API key

20 docs/month free · full API access · no credit card

What teams build with DocuParse API

Internal Finance Dashboards

Auto-populate vendor spend tables from invoice uploads. No manual data entry.

See how

Expense Tracking Apps

Turn receipt photos into categorised transaction records in real time.

See how

Bookkeeping Automation

Sync invoice totals, vendors, and due dates directly to your accounting workflow.

See how

Accounts Payable Tools

Ingest vendor invoices without per-vendor templates or training data.

See how

Start extracting. It's free.

20 documents free every month. Full API access from the first call — every field, every endpoint, webhooks included. No card. No commitment. No setup fee.

Starter is $14.99/month for 3,000 documents when you need more volume.

Webhook payload — fires on every completed extraction

{
  "event": "document.completed",
  "document_id": "e104e0a3-a575-...",
  "status": "completed",
  "document_type": "receipt",
  "extracted_data": { ... },
  "created_at": "2026-05-12T15:40:25Z"
}