ParseDoc API
✦ Agent-native parsing

Any document, into structured data.

Agent-native document parsing. Turn a PDF, scan or invoice into structured JSON or Markdown, billed per page. Built for AI agents and RAG pipelines, specialized on French and EU invoices.

Read the docsSee pricing

What it does

documentPOST /v1/parsestructured JSON
01Parse

Send a PDF, scan or image and get clean structured JSON or Markdown back: text, tables and metadata, ready for a RAG pipeline. Two rendering modes, fast for born-digital PDFs and accurate for complex tables and scans.

{
  "pages": 3,
  "output": "markdown",
  "tables": 2
}
02Invoice extraction

A dedicated endpoint returns a normalized French and EU invoice: SIREN, SIRET, intra-community VAT, invoice number, dates, line items and totals. This is the vertical ParseDoc is built around.

siren903 904 795
vat_intraFR12 903904795
total_ttc1 248,00 €
03AI enrichment

Expand acronyms and complete a parsed document with an AI pass. Usage-based, billed in credits from the same prepaid balance, with the exact price returned in usage.cost_usd.

"TVA"
enrich
"Taxe sur la valeur ajoutée"

Pricing

Graduated per-page parsing, a flat premium on invoice extraction, and usage-based AI enrichment. One source of truth, no hidden fees.

First 100 pages / month
Free
No card required, resets monthly
100 to 10K
$0.005/ per page
10K to 100K
$0.003/ per page
100K +
$0.002/ per page
Invoice extraction · all tiers$0.01 / per page
AI enrichment · usage-basedCredits · usage.cost_usd

Full pricing details

For developers

Everything is a plain HTTP call. Authenticate with a Bearer API key, or pay per call with x402 and skip the account entirely.

Parse a document

curl -X POST https://parsedoc.io/v1/parse \ -H "Authorization: Bearer <api_key>" \ -F "file=@invoice.pdf" \ -F "mode=accurate"

Extract an invoice (async)

# Invoice extraction is async by design: it returns 202 with a poll_url. curl -i -X POST https://parsedoc.io/v1/extract/invoice \ -H "Authorization: Bearer <api_key>" \ -F "file=@invoice.pdf" # Then poll the job until it reaches a terminal status. curl https://parsedoc.io/v1/jobs/<job_id> \ -H "Authorization: Bearer <api_key>"

Pay with x402 (no account)

# No account: the first call returns a 402 challenge. # Pay with USDC or EURC on Base, then retry the same request with an X-PAYMENT header. curl -i -X POST https://parsedoc.io/x402/parse \ -F "file=@invoice.pdf"

Enrich with AI

# AI enrichment: acronym expansion and text completion, billed in credits. curl -X POST https://parsedoc.io/v1/enrich \ -H "Authorization: Bearer <api_key>" \ -H "Content-Type: application/json" \ -d '{"text": "The API and the SDK are ready.", "mode": "both", "domain": "software"}'

Payment rails

Mollie: sign up with an email, get an API key, then buy prepaid credit packs in EUR (starter, standard or pro). Send the key as a Bearer token.

x402: no account. Call an /x402 endpoint, get a 402 challenge, pay on Base, then retry the same request.

Machine discovery

Privacy

Zero data retention by default. Uploaded files are deleted after processing (one hour TTL at most), no document content is stored in the database or the logs, and processing runs in the EU (RGPD compliant).