A document parsing API takes a PDF, a scan, or an Office file and returns text a model can read, usually Markdown or JSON, often with tables, figures, and page positions kept. The providers differ in how they handle scans and handwriting, whether they fill a schema for you, and whether you can run them yourself. Details below were checked against each provider's official pages in October 2026.
What is the best document parsing API for AI agents?
For mixed business documents where the agent needs fields it can cite, start with Reducto or LlamaParse. Use Mistral OCR for low-cost Markdown at volume, Datalab for hosted models you can also license to run yourself, Docling for a free, fully open source parser, Unstructured for many file types into one element format, and Azure AI Document Intelligence or Google Document AI when your data already lives in that cloud.
| API | Consider it when you need… | What to evaluate |
|---|---|---|
| Reducto | Parsing and schema extraction with bounding-box citations | Whether Deep Extract is worth four times the Parse price on your files |
| LlamaParse | One API with tiers from cheap text to agentic parsing | Which tier your documents really need; the top tier costs 45 times the cheapest |
| Mistral OCR | Markdown from large volumes of pages at a low rate | Table and layout quality on your hardest pages, and annotation cost |
| Datalab | A hosted API whose models you can also run locally | Whether your company fits the free commercial-use thresholds |
| Docling | An MIT-licensed parser with no per-page fee | Accuracy on scans, and the hardware you run it on |
| Unstructured | Many file types turned into one JSON element format | Table quality, and which partitioning strategy each file type needs |
| Azure AI Document Intelligence | Layout, handwriting, and containers inside Azure | The gap between Read and Layout pricing for your page mix |
| Google Document AI | Layout parsing and chunking inside Google Cloud | Online page limits, and which Gemini-based parser versions are still in preview |
How do document parsing APIs compare on pricing and features?
The main differences are the billing unit (pages, credits, or a monthly allowance), whether handwriting and figures are handled, and whether the service fills a JSON schema itself. Prices are list rates per 1,000 pages from the linked official pages; volume discounts are left out.
| API | Price per 1,000 pages | Free tier | Inputs and output | Tables, figures, handwriting | Extraction by schema | Self-host or open source |
|---|---|---|---|---|---|---|
| Reducto | Parse $10; Extract $20; Deep Extract $40 (pricing) | $150 of free usage on the Standard plan | 30+ file types; chunks, Markdown, JSON, bounding boxes (docs) | Tables and figures yes; handwriting not stated on the pages we checked | Yes, with citations | VPC and on-prem on Enterprise |
| LlamaParse | $1.25 Fast, $3.75 Cost-effective, $12.50 Agentic, $56.25 Agentic Plus (credit rates) | 10,000 credits on the Free plan (pricing) | 130+ file types; Markdown, text, JSON (docs) | Tables and figures on higher tiers; handwriting not stated | Yes, through Extract tiers billed per page | Hybrid deployment on Enterprise |
| Mistral OCR | $4; $5 with annotations (OCR 4.1); $2 through the Batch API (OCR 4 post) | Not stated on the pages we checked | PDF, DOCX, PPTX, images; Markdown per page, tables as Markdown or HTML (docs) | Tables and images yes; handwriting covered in the OCR 3 post | Yes, through annotations | Single container, enterprise customers only |
| Datalab | Convert $4 fast or balanced, $10 accurate; extraction $6–$20 (pricing) | $20 a month of usage with a work email, $10 personal | PDF, images, Office, HTML, EPUB; Markdown, HTML, JSON, chunks (Marker) | Tables and math yes; handwriting through Chandra | Yes, with bounding-box citations | Open weights; free commercial use below revenue and funding thresholds |
| Docling | No per-page fee; you run it | Free, MIT license (docs) | PDF, Office, HTML, images, audio, email, LaTeX; Markdown, HTML, DocTags, lossless JSON | Table structure, formulas, code, OCR for scans; handwriting not stated | Not a core feature; the docs list an information extraction example | Yes, fully open source |
| Unstructured | $15 ($0.015 a page) pay-as-you-go (pricing) | 10,000 pages, no card required | 45+ file types through the API; JSON document elements (docs) | Tables through hi_res and VLM strategies; handwriting not stated | Yes, the structured data extractor | Apache 2.0 library; dedicated, VPC, or bare metal on Business |
| Azure AI Document Intelligence | Read $1.50; Layout and prebuilt $10; custom extraction $30 (Azure retail prices, East US) | 500 pages a month on F0; only the first two pages of each PDF (pricing) | PDF, images, DOCX, XLSX, PPTX, HTML; JSON with optional Markdown (layout docs) | Tables, figures, selection marks, handwritten lines | Yes, through custom extraction models | Containers priced like the cloud service |
| Google Document AI | OCR $1.50; Layout Parser $10; Form Parser and Custom Extractor $30 (pricing) | OCR table lists the first 1,000 pages at $0; $300 in Google Cloud credits for new customers | Layout Parser: PDF, DOCX, PPTX, XLSX, HTML; layout tree and chunks (docs) | Tables, figures; handwriting in Enterprise Document OCR | Yes, through Custom Extractor | Not stated on the pages we checked |
We left out AWS Textract. Its text detection costs $1.50 per 1,000 pages, but it accepts only JPEG, PNG, PDF, and TIFF, detects six languages, and reads handwriting in English only.
What does an AI agent need from a document parser?
An agent needs the document's content in reading order, tables it can trust, and a way to point back to the page each fact came from. Consider this request:
Read the 40 vendor contracts in this folder. For each one, record the renewal date, notice period, and annual price, and flag any that renew automatically in the next 90 days.
That single request touches five capabilities:
- OCR: some contracts are signed scans, so there is no text layer to read.
- Format coverage: a few arrive as Word files or spreadsheets rather than PDFs.
- Tables: price schedules sit in tables that span pages. A dropped row changes the answer.
- Structured extraction: renewal date, notice period, and price as JSON fields make the 90-day check a comparison, not a reading task.
- Citations: a page number or bounding box for each field lets a person check a flagged contract in seconds.
Parsing files is different from reading web pages. A web scraping API fetches a URL and cleans up HTML; a document parser works from the file itself, including pages that are only images.
Reducto
A strong default when the agent needs schema fields it can cite back to the page.
Reducto parses more than 30 file types, including scans, spreadsheets, and presentations, and returns chunks, Markdown, or JSON with bounding boxes. Extract fills a JSON schema you define and links each value to its source region. Its tools are available in MCP clients such as Claude Code, Codex, and Cursor.
Pricing is per page: $10 per 1,000 for Parse, $20 for Extract, and $40 for Deep Extract, its agentic mode. Batch processing takes 20% off Parse and Extract. The Standard plan starts with $150 of free usage. VPC and on-prem deployment are on Enterprise only.
LlamaParse
Worth evaluating when you want to choose the accuracy tier per job or per page.
LlamaParse reads more than 130 file types and returns Markdown, text, or JSON. Its four tiers run from Fast, which returns text only, to Agentic Plus for the hardest documents; Auto Mode can route each page to a tier. A separate Extract product fills schemas. LlamaIndex lists a LlamaParse MCP server with install options for Cursor, Claude Code, and Codex.
Billing is in credits at $1.25 per 1,000. A page costs 1 credit on Fast, 3 on Cost-effective, 10 on Agentic, and 45 on Agentic Plus. Extraction adds its own credits; the default Agentic extract totals 25 credits a page. The Free plan includes 10,000 credits, and Starter is $50 a month for 40,000.
Mistral OCR
A candidate when you parse many pages and want Markdown at a low flat rate.
Mistral OCR accepts PDFs, Word and PowerPoint files, and images. It returns Markdown for each page, plus images, headers, footers, confidence scores, and tables as Markdown or HTML. Annotations fill a JSON schema for the whole document or describe each extracted figure.
The current model, OCR 4.1, costs $4 per 1,000 pages and $5 per 1,000 annotated pages. The OCR 4 announcement lists $2 per 1,000 pages through the Batch API, 170 languages, and a single-container self-hosted option for enterprise customers. We did not find a free tier on the pages we checked.
Datalab
An option when you want a hosted API and the choice to run the same models yourself.
Datalab makes Marker, which converts PDF, images, Office files, HTML, and EPUB to Markdown, JSON, HTML, or chunks, and Chandra, an OCR model its README describes as strong on handwriting, forms, tables, and math. The hosted API runs both and adds field extraction with bounding-box citations.
Pricing per 1,000 pages is $4 for fast or balanced conversion and $10 for accurate; extraction is $6 to $20. The Free plan includes $20 of usage a month with a work email, and Team is $400 a month. The code is Apache 2.0. The model weights are free for commercial use only below $5M in revenue and funding for Marker, and $2M for Chandra; above that you need a license.
Docling
The open-source choice when documents cannot leave your machines.
Docling was started by IBM Research Zurich and is hosted by the LF AI & Data Foundation under the MIT license. It reads PDF, Office, HTML, images, audio, email, and LaTeX, and exports Markdown, HTML, DocTags, or lossless JSON. It recovers table structure, formulas, and code, runs OCR on scans, and can use vision-language models such as GraniteDocling.
There is no per-page fee; you pay for the machine it runs on. Docling MCP exposes conversion to agents. Docling does not center on schema extraction, so plan for your model to turn its output into fields.
Unstructured
A fit when the agent ingests many kinds of files and you want one output shape.
Unstructured turns more than 45 file types into a common JSON format of document elements. You choose a strategy per job: fast for text-based files, hi_res for layout, ocr_only, or vlm, or let auto decide. The structured data extractor fills a JSON schema you supply.
Pricing is $0.015 a page after the first 10,000 free pages. The open-source library is Apache 2.0, but Unstructured describes it as a prototyping tool with weaker table extraction than the API.
Azure AI Document Intelligence
A practical choice when your documents and agents already run in Azure.
The layout model reads PDFs, images, Word, Excel, PowerPoint, and HTML. It returns tables, figures, selection marks, and section headings, marks which lines are handwritten, and can output Markdown with tables as HTML. It handles up to 2,000 pages and 500 MB per document on the paid tier.
In East US, Azure's retail prices list Read at $1.50 per 1,000 pages, Layout and prebuilt models at $10, and custom extraction at $30. The free tier covers 500 pages a month, and containers cost the same as the cloud service.
Google Document AI
A practical choice when your documents and agents already run in Google Cloud.
The Layout Parser reads PDF, Word, PowerPoint, Excel, and HTML, builds a tree of headings, paragraphs, tables, and figures, and splits it into chunks with their headings attached. Newer versions use Gemini models and are in preview. Online requests are limited to 15 pages per PDF; batch allows 500. Enterprise Document OCR detects handwriting.
Pricing per 1,000 pages is $1.50 for OCR, $10 for Layout Parser including chunking, and $30 for Form Parser and Custom Extractor. The OCR price table lists the first 1,000 pages at no charge.
What do the benchmarks say about document parsing?
We have not run our own benchmark. The public ones mostly score models and open-source pipelines, not the commercial APIs above, and several are run by vendors. Read them as a short list of what to test, not a ranking.
olmOCR-Bench (Allen Institute for AI)
olmOCR-Bench has more than 7,000 test cases across 1,400 documents, covering arXiv papers, old scans, tables, headers and footers, multi-column layouts, and tiny text. The repository's results table does not date each row, and the versions listed are older than some current products.
| System, as listed | Overall score |
|---|---|
| Chandra OCR 0.1.0 | 83.1 |
| olmOCR v0.4.0 | 82.4 |
| Marker 1.10.1 | 76.1 |
| Mistral OCR API | 72.0 |
OmniDocBench (OpenDataLab)
OmniDocBench, a CVPR 2025 benchmark from OpenDataLab, scores end-to-end parsing across 10 document types. Its v1.6 leaderboard, last updated September 11, 2026, lists Mistral OCR at 85.66 and Marker at 78.44, below open models such as PaddleOCR-VL-1.6 at 96.34 and Gemini 3 Pro at 92.91. The entry does not name a Mistral OCR version. Reducto, LlamaParse, Azure, and Google Document AI have no scores there.
Vendor-reported results
Mistral's OCR 4 announcement (June 23, 2026) reports 85.20 on olmOCR-Bench and 93.07 on OmniDocBench, with competitor scores reproduced by Mistral. Datalab's Chandra 2 README (March 2026) reports 85.8 on olmOCR-Bench, and its Marker README lists Marker balanced at 76.0 and Docling at 50.3 in its own runs. Each vendor ran the comparison its product leads.
Tables: RD-TableBench
Reducto published RD-TableBench in November 2024 with 1,000 hand-labeled tables. On April 7, 2026, Pulse, a competing vendor, re-ran it with Reducto's ground truth and scoring code, and put its own model first at 0.9684.
| Provider | Reported median similarity |
|---|---|
| Reducto Agentic (2026) | 0.9308 |
| Reducto (2026) | 0.8957 |
| Azure Document Intelligence | 0.8500 |
| AWS Textract | 0.8434 |
| Google Document AI | 0.6840 |
| Unstructured | 0.6270 |
Pulse also reports errors in about 4% of the ground-truth files. None of these benchmarks checks schema extraction on documents like yours, so test that yourself.
How do you test a document parser on your own files?
Collect 20 to 30 files your agent will really read, send the same set to two or three providers, and compare the output against the originals. Keep the model and instructions fixed so only the parser changes.
| Document type | What a useful result looks like |
|---|---|
| Digital PDF report | Headings, lists, and reading order intact across columns |
| Phone photo or low-quality scan | Readable text, not gaps or invented words |
| Table that spans two pages | One table, every row present, merged cells kept |
| Form with handwriting and checkboxes | Each field value and checkbox state read correctly |
| Chart or diagram | A description or the underlying values, not an empty image tag |
| Word or Excel file | Same content as the file, without converting to PDF |
| Contract with key fields | Correct JSON fields, nulls where the value is missing, and a page reference for each |
Record accuracy per field, latency, cost per page at the tier you used, and the tokens your model spent reading the output. Then open a few failures. A missed OCR line, a split table, and a schema field filled from the wrong clause need different fixes.
Where does Dexto fit?
Dexto is the agent that uses the parser. A parsing API turns a file into text and fields; you still need something to decide which files to read, keep the results, act on them, and deliver the output. That surrounding system is the harness, and it is what Dexto provides.
- Tools: connections include more than 50 built-in integrations and any custom MCP server, so a parser's MCP server sits next to Slack, Notion, or GitHub in the same agent. Our MCP server shortlist covers others worth connecting.
- A computer: Dexto has a persistent cloud computer where it stores files and runs code. The agent can keep the parsed output from each run and compare it with the next one.
- Process: a skill holds your extraction rules, such as which fields to pull and what to do when a value is missing. An agent configured for the job applies them every time.
For the contracts example, that means: connect a parser, describe the fields and the 90-day rule in a skill, and have the agent write the list of flagged contracts to a file or post it to Slack.
Try it in Dexto
Pick one parser from the table, connect its MCP server if it has one, and give Dexto a real folder of documents. Open Dexto or read the quickstart.