Extract structured data from any document

Invoices, receipts, contracts, bank statements, resumes, forms, IDs — send any document, get clean JSON back. See real extraction results below.

PDFPNGJPGWebPMax 10 MB
Invoice Extraction

Extract vendor details, line items, and totals from any invoice format

Send any invoice — PDF, scan, or photo — and get back structured line items, vendor info, dates, tax, and totals. Works with any layout, any language, any vendor.

Input — invoice_2026.pdfBefore
INVOICE #INV-2026-0847
From: Meridian Supply Co.Date: 2026-03-15
To: Greenfield Logistics LLCDue: 2026-04-14
Industrial valve assembly x 12$1,014.00
Copper fitting kit x 6$138.00
Subtotal$1,152.00
Tax (15%)$172.80
Total Due$1,324.80
Output — Extracted JSONAfter — 1.2s
{
  "vendor_name": "Meridian Supply Co.",
  "invoice_number": "INV-2026-0847",
  "date": "2026-03-15",
  "due_date": "2026-04-14",
  "line_items": [
    { "description": "Industrial valve assembly",
      "quantity": 12, "unit_price": 84.50,
      "amount": 1014.00 },
    { "description": "Copper fitting kit",
      "quantity": 6, "unit_price": 23.00,
      "amount": 138.00 }
  ],
  "subtotal": 1152.00,
  "tax": 172.80,
  "total": 1324.80,
  "currency": "USD"
}
vendor_nameinvoice_numberdatedue_dateline_items[]subtotaltaxtotalcurrency
curl -X POST https://docuextract.dev/v1/extract \
-H "Authorization: Bearer dk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"document": "https://example.com/invoice.pdf", "type": "invoice"}'
Try invoice extraction in the playground
Receipt Processing

Turn retail and restaurant receipts into structured expense data

Extract merchant, date, items, tax, tip, and total from any receipt — even crumpled photos from a pocket. Perfect for expense tracking, bookkeeping automation, and travel reimbursement.

Input — receipt_photo.jpgBefore
BLUE BOTTLE COFFEE
123 Market St, San Francisco CA
Cortado$5.50
Avocado Toast$14.00
Sparkling Water$3.00
Subtotal$22.50
Tax (8.625%)$1.94
Tip$4.50
Total$28.94
03/15/2026 11:42 AM
Output — Extracted JSONAfter — 0.9s
{
  "merchant": "Blue Bottle Coffee",
  "address": "123 Market St, San Francisco CA",
  "date": "2026-03-15",
  "time": "11:42",
  "items": [
    { "name": "Cortado", "price": 5.50 },
    { "name": "Avocado Toast", "price": 14.00 },
    { "name": "Sparkling Water", "price": 3.00 }
  ],
  "subtotal": 22.50,
  "tax": 1.94,
  "tip": 4.50,
  "total": 28.94
}
merchantaddressdatetimeitems[]subtotaltaxtiptotalpayment_method
curl -X POST https://docuextract.dev/v1/extract \
-H "Authorization: Bearer dk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"document": "<base64_receipt_image>", "type": "receipt"}'
Try receipt extraction in the playground
Bank Statement

Parse transactions, balances, and account details automatically

Upload a bank statement PDF and get back structured transactions with dates, descriptions, amounts, and running balances. Handles any bank's layout — no per-bank configuration needed.

Input — march_statement.pdfBefore
First National Bank
Account: Greenfield Logistics LLC****4821
Period: Mar 1 – Mar 31, 2026
Opening Balance$14,280.50
03/04 Wire transfer - Vendor payment-$3,200.00
03/11 Client payment received+$5,600.00
03/18 Office supplies-$487.28
03/25 Monthly subscription-$4,300.00
Closing Balance$11,893.22
Output — Extracted JSONAfter — 1.8s
{
  "bank_name": "First National Bank",
  "account_holder": "Greenfield Logistics LLC",
  "account_number": "****4821",
  "statement_period": {
    "start": "2026-03-01",
    "end": "2026-03-31"
  },
  "opening_balance": 14280.50,
  "closing_balance": 11893.22,
  "transactions": [
    { "date": "2026-03-04",
      "description": "Wire transfer - Vendor payment",
      "amount": -3200.00,
      "balance": 11080.50 },
    { "date": "2026-03-11",
      "description": "Client payment received",
      "amount": 5600.00,
      "balance": 16680.50 }
  ]
}
bank_nameaccount_holderaccount_numberstatement_periodopening_balanceclosing_balancetransactions[]
curl -X POST https://docuextract.dev/v1/extract \
-H "Authorization: Bearer dk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"document": "https://example.com/statement.pdf", "type": "bank_statement"}'
Try bank statement extraction in the playground
Resume Parsing

Extract contact info, work history, education, and skills

Convert PDF resumes into structured candidate profiles. Works with any layout — single column, two-column, creative designs, infographic-style. Build ATS integrations, talent databases, or hiring automation in minutes.

Input — sarah_chen_resume.pdfBefore
Sarah Chen
sarah@example.com · San Francisco, CA · github.com/schen
Experience
Senior Software Engineer — Stripe (2021–Present)
Led payments infrastructure team. Reduced checkout latency by 40%.
Software Engineer — Vercel (2019–2021)
Built Edge Functions runtime. 12 open-source contributions.
Skills
TypeScript, Go, Python, PostgreSQL, Redis, AWS, Kubernetes
Education
B.S. Computer Science — UC Berkeley (2019)
Output — Extracted JSONAfter — 1.5s
{
  "name": "Sarah Chen",
  "email": "sarah@example.com",
  "location": "San Francisco, CA",
  "experience": [
    {
      "title": "Senior Software Engineer",
      "company": "Stripe",
      "period": "2021-present",
      "highlights": ["Led payments infra"]
    },
    {
      "title": "Software Engineer",
      "company": "Vercel",
      "period": "2019-2021"
    }
  ],
  "skills": ["TypeScript", "Go", "Python"],
  "education": [{
    "degree": "B.S. Computer Science",
    "school": "UC Berkeley",
    "year": 2019
  }]
}
nameemailphonelocationexperience[]skills[]education[]certifications[]
curl -X POST https://docuextract.dev/v1/extract \
-H "Authorization: Bearer dk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"document": "https://example.com/resume.pdf", "type": "resume"}'
Try resume extraction in the playground
Contract Extraction

Pull key clauses, dates, parties, and terms from legal agreements

Extract the data that matters from contracts, NDAs, leases, and service agreements — parties, effective dates, termination clauses, payment terms, and governing law. No more reading 30-page PDFs to find one clause.

Input — service_agreement.pdfBefore
SERVICE AGREEMENT
Between Oakridge Consulting Group and TechBridge Solutions Inc.
Terms
Effective Date: April 1, 2026
Termination: March 31, 2027
Governing Law: State of Delaware
Key Clauses
4.1 Payment Terms — Net 30 from invoice date
8.2 Termination — Either party may terminate with 60 days written notice
Total Contract Value$96,000.00
Output — Extracted JSONAfter — 2.1s
{
  "contract_type": "Service Agreement",
  "parties": [
    "Oakridge Consulting Group",
    "TechBridge Solutions Inc."
  ],
  "effective_date": "2026-04-01",
  "termination_date": "2027-03-31",
  "governing_law": "State of Delaware",
  "key_clauses": [
    { "clause": "Payment Terms",
      "summary": "Net 30 from invoice date" },
    { "clause": "Termination",
      "summary": "60 days written notice" }
  ],
  "total_value": 96000.00,
  "currency": "USD"
}
contract_typeparties[]effective_datetermination_dategoverning_lawkey_clauses[]total_valuecurrency
curl -X POST https://docuextract.dev/v1/extract \
-H "Authorization: Bearer dk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"document": "https://example.com/contract.pdf", "type": "contract"}'
Try contract extraction in the playground
Form Extraction

Convert filled forms into structured field-value pairs

Digitize paper forms, applications, surveys, and questionnaires. DocuExtract reads both printed and handwritten text, mapping every field to a clean key-value pair. Process thousands of forms in hours instead of weeks.

Input — patient_intake.pdfBefore
Patient Intake Form
Full Name:Maria Santos
Date of Birth:07/14/1988
Phone:+1-555-0142
Insurance Provider:Blue Cross
Policy Number:BCX-9928174
Reason for Visit:Annual physical exam
Allergies:Penicillin
Current Medications:Lisinopril 10mg
Output — Extracted JSONAfter — 1.1s
{
  "form_type": "Patient Intake Form",
  "fields": {
    "full_name": "Maria Santos",
    "date_of_birth": "1988-07-14",
    "phone": "+1-555-0142",
    "insurance_provider": "Blue Cross",
    "policy_number": "BCX-9928174",
    "reason_for_visit": "Annual physical exam",
    "allergies": ["Penicillin"],
    "current_medications": ["Lisinopril 10mg"]
  }
}
form_typefields{}full_namedate_of_birthphoneinsurance_providerpolicy_numberallergies[]
curl -X POST https://docuextract.dev/v1/extract \
-H "Authorization: Bearer dk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"document": "<base64_form_image>", "type": "form"}'
Try form extraction in the playground
ID Document

Extract name, DOB, ID number, and expiry from IDs and passports

Process passports, driver's licenses, and national ID cards. Extract the key identity fields you need for KYC flows, onboarding forms, or identity verification pipelines.

Input — passport_scan.jpgBefore
UNITED STATES OF AMERICA
PASSPORT
Surname:CHEN
Given Names:JAMES ROBERT
Date of Birth:03 NOV 1992
Nationality:UNITED STATES
Passport No:567284193
Date of Issue:15 JUN 2022
Date of Expiry:14 JUN 2032
Sex:M
Output — Extracted JSONAfter — 1.3s
{
  "document_type": "passport",
  "full_name": "James Robert Chen",
  "date_of_birth": "1992-11-03",
  "nationality": "United States",
  "document_number": "567284193",
  "issue_date": "2022-06-15",
  "expiry_date": "2032-06-14",
  "gender": "M"
}
document_typefull_namedate_of_birthnationalitydocument_numberissue_dateexpiry_dategender
curl -X POST https://docuextract.dev/v1/extract \
-H "Authorization: Bearer dk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"document": "<base64_passport_photo>", "type": "id_document"}'
Try ID extraction in the playground
Business Card

Capture contact details from business cards instantly

Snap a photo of a business card and get back structured contact info — name, title, company, email, phone, and address. Build CRM integrations, contact importers, or networking apps.

Input — business_card.jpgBefore
Priya Sharma
VP of Engineering
Nexus Dynamics
Email:priya@nexusdynamics.com
Phone:+1-415-555-0198
Web:nexusdynamics.com
450 Market Street, Suite 200, San Francisco, CA 94105
Output — Extracted JSONAfter — 0.7s
{
  "full_name": "Priya Sharma",
  "title": "VP of Engineering",
  "company": "Nexus Dynamics",
  "email": "priya@nexusdynamics.com",
  "phone": "+1-415-555-0198",
  "website": "nexusdynamics.com",
  "address": "450 Market Street, Suite 200, San Francisco, CA 94105"
}
full_nametitlecompanyemailphonewebsiteaddress
curl -X POST https://docuextract.dev/v1/extract \
-H "Authorization: Bearer dk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"document": "<base64_card_photo>"}'
Try business card extraction in the playground

8 document types, zero configuration

DocuExtract auto-detects the document type, or you can specify it for higher accuracy. Accepts PDF, PNG, JPG, and WebP up to 10 MB.

📄
Invoices
🧾
Receipts
🏦
Bank Statements
📎
Resumes
📋
Contracts
📝
Forms
🪪
ID Documents
📇
Business Cards