# The Best Document Parsers for RAG in 2026: LlamaParse vs Docling vs Unstructured vs Reducto

> LlamaParse, Docling, Unstructured, Reducto, Marker and Mistral OCR compared on deployment, license, OCR, tables and output, with a verdict for each.

Docling is the best default document parser for RAG in 2026: MIT-licensed, local, and built for layout, tables and OCR. Choose LlamaParse or Reducto for a managed API with private deployment, Mistral OCR for page-level OCR at volume, Marker for fast local conversion if its weight license fits, and Unstructured for managed ingestion with connectors.

For most RAG teams, the right first parser in 2026 is [Docling](/tools/docling): it is MIT-licensed, runs on your own hardware, and handles layout, reading order, tables and OCR with no vendor in the loop. Pay for a managed API when your documents or your compliance bar justify a per-page bill: [LlamaParse](/tools/llamaparse) or [Reducto](/tools/reducto) for complex layouts and private deployment, [Mistral OCR](/tools/mistral-ocr) for OCR at volume over a plain API. [Marker](/tools/marker) is the fast local alternative if its model license fits your company, and [Unstructured](/tools/unstructured) is the pick when parsing is one step in a connector-driven ingestion pipeline.

*Last reviewed: September 2026.*

Prices change often; each tool page lists current pricing. This page compares what decides eligibility before accuracy does: deployment, license, OCR and output.

## The summary table

| Parser | Deployment | License | OCR | Tables | Output | Best for |
| --- | --- | --- | --- | --- | --- | --- |
| [Docling](/tools/docling) | Self-host library; docling-serve API | MIT | Scanned PDFs and images | Table structure | Markdown, HTML, lossless JSON, DocTags | Private, local parsing |
| [Marker](/tools/marker) | Self-host, or Datalab's hosted API | Code Apache-2.0; weights restricted | Surya VLM; full-page OCR on bad pages | Yes; LLM mode merges across pages | Markdown, JSON, HTML, chunks | Fast local batch conversion |
| [LlamaParse](/tools/llamaparse) | SaaS (US, EU); BYOC and VPC on enterprise | Closed service; MIT SDK | Layout-aware OCR | Tables and charts | Markdown, text, JSON | LlamaIndex stacks, complex layouts |
| [Reducto](/tools/reducto) | SaaS; VPC, on-prem, air-gapped | Closed engine; Apache-2.0 SDKs | Yes, incl. handwriting | Tables and figures | JSON chunks, Markdown, HTML tables | Regulated, accuracy-critical work |
| [Mistral OCR](/tools/mistral-ocr) | API, batch, SageMaker, Foundry; self-host for enterprise | Closed weights; Apache-2.0 SDKs | The core product | Markdown or HTML tables | Per-page Markdown plus JSON | OCR plus layout at volume |
| [Unstructured](/tools/unstructured) | Library self-host; Pipelines SaaS; VPC on Business | Library Apache-2.0; platform commercial | High Res and VLM strategies | Table elements | JSON elements plus metadata | Ingestion ETL with connectors |

Two columns need care. "License" is what you actually run: Marker's code is Apache-2.0 but its model weights are not, and three managed parsers wrap a closed engine in open-source SDKs. "OCR" matters only for scans and images; for born-digital PDFs, layout and table recovery are the harder problems.

## Pick by constraint

### Open source and local: Docling or Marker

Choose this lane when documents can't leave your network or you don't want a per-page bill. Start with Docling for the cleanest license and governance. Try Marker when GPU throughput matters or when Docling misses structure on your pages, after you've cleared its model-weight license. Skip the lane if nobody on the team wants to own the compute, model updates and scaling, because that's the real cost of free.

### Managed API: LlamaParse, Reducto or Mistral OCR

Choose this lane when you'd rather pay per page than operate models, or when you need handwriting support (LlamaParse and Reducto both list it), compliance paperwork or a vendor on the hook. All three offer private deployment on enterprise terms, so managed doesn't have to mean shared cloud. LlamaParse fits LlamaIndex stacks and per-document tier choices, Reducto fits SOC 2, HIPAA and air-gapped requirements, and Mistral OCR fits page-level OCR with layout blocks and confidence scores at volume.

### ETL platform: Unstructured

Choose Unstructured when parsing is one stage in a pipeline that pulls from sources, partitions, enriches, chunks, embeds and writes to a destination, and you want that pipeline managed. Its pricing page lists 40+ connectors across 20+ sources and 20+ destinations, and the platform's Auto strategy routes each page to Fast, High Res or VLM partitioning at runtime. If you only need the parsing step, the library or one of the parsers above is simpler.

### Also on the shortlist: a library and three cloud services

These come up in the same evaluations but have no page on this site:

- **pymupdf4llm** outputs Markdown, JSON or plain text and detects which pages need OCR. It's AGPL-3.0 or a commercial Artifex license, which rules it out of many closed products.
- **Azure Document Intelligence** is now part of Azure Content Understanding in Foundry Tools, with v4.0 as the current GA API.
- **Google Document AI** offers Enterprise Document OCR, Layout Parser, Form Parser and a generative-AI Custom Extractor.
- **AWS Textract** extracts text, handwriting, layout, tables and forms, and adds a Queries feature.

Pick a cloud service when your data and procurement already live in that cloud.

## The parsers, one at a time

### Docling: the open default

[Docling](/tools/docling) was started by the AI for Knowledge team at IBM Research Zurich and is now hosted by the LF AI & Data Foundation under the MIT license. The Python library and CLI read PDF, Office files, HTML, EPUB, images, LaTeX, email, ODF and XBRL, plus audio and video through ASR models, and export Markdown, HTML, DocTags or lossless JSON. The latest release, v2.126.0, shipped on September 4, 2026.

The PDF pipeline is what matters for RAG: page layout, reading order, table structure, code, formulas and image classification, with OCR for scanned pages. It supports vision-language models, including GraniteDocling (the `granite-docling-258M` weights are Apache-2.0), and converts charts into tables or code. It integrates with LangChain, LlamaIndex, Crew AI and Haystack, ships an MCP server, and `docling-serve` (also MIT) runs it as an API service.

```bash
pip install docling
docling https://arxiv.org/pdf/2206.01062
```

```python
from docling.document_converter import DocumentConverter

source = "https://arxiv.org/pdf/2408.09869"
converter = DocumentConverter()
result = converter.convert(source)
print(result.document.export_to_markdown())
```

The project runs no hosted service, so you own the compute, scaling and upgrades. Teams look for Docling alternatives when they want managed scale (LlamaParse, Reducto) or when their own evaluation shows it missing structure; Marker's LLM-assisted mode is the low-effort second opinion.

**Verdict:** the default for RAG teams who can run their own parser, with the cleanest license and governance here and an active release line. You pay in engineering time instead of a per-page bill.

### Marker: fast local conversion, with a license to read

[Marker](/tools/marker), from Datalab, converts PDF, image, PPTX, DOCX, XLSX, HTML and EPUB files into Markdown, JSON, HTML or chunks on a GPU, a CPU or Apple MPS. Version 2.0.0 (July 20, 2026) introduced three modes: `balanced` uses Datalab's Surya VLM for layout and re-OCRs whole pages whose text is bad, `fast` trades accuracy for speed, and `--disable_ocr` skips OCR. The default is balanced on a GPU and fast on CPU or MPS. The release also requires Python 3.10+ and removed the structured-extraction features, a breaking change if you used them.

```bash
pip install marker-pdf
marker_single /path/to/file.pdf
marker /path/to/input/folder
```

For hard pages, `--use_llm` adds a model pass that merges tables across pages and handles inline math, using Gemini (the default), Google Vertex, Claude, OpenAI, Azure OpenAI, OpenRouter or a local Ollama model. The README warns that very complex layouts with nested tables and forms may not work, and suggests `--use_llm` with `--force_ocr` for those.

Read the license twice. The code is Apache-2.0, per the GitHub license API and PyPI, and free to use commercially. The model weights use a modified AI Pubs Open Rail-M license: free for research, personal use and small startups, but closed to companies above a revenue or funding threshold and to any company offering a competing product. Datalab's own pages state that threshold differently, so read `MODEL_LICENSE` in the repo. Datalab also sells a hosted API running Marker and its Chandra document VLM, and an on-prem license.

**Verdict:** the fast local pick for teams that clear the weight license, and a useful second opinion next to Docling. Larger companies and anyone building document products should plan on Datalab's commercial license or hosted API.

### LlamaParse: tiered managed parsing from LlamaIndex

[LlamaParse](/tools/llamaparse) is LlamaIndex's closed-source parsing service: "layout-aware OCR that turns PDFs, scans, tables, and charts into clean markdown, text, or JSON," in the docs' words. The docs and pricing page list 130+ file types, and the product page lists handwriting, checkboxes and charts among what it handles; charts come back as structured data.

Two changes matter if you last used it in 2025. LlamaParse v2 (December 2025) replaced parsing modes with four tiers, Fast, Cost Effective, Agentic and Agentic Plus, and every request must name a tier and a version, either `"latest"` or a pinned date. The Fast tier returns text but no Markdown. And LlamaIndex is renaming its platform from LlamaCloud to LlamaParse (announced February 2026), with Parse alongside Extract, Classify, Split and Index. The old `llama_cloud_services` SDK was maintained only until May 1, 2026; the current Python package is `llama-cloud`.

```python
from llama_cloud import LlamaCloud
client = LlamaCloud()
file = client.files.create(file="doc.pdf", purpose="parse")
result = client.parsing.parse(file_id=file.id, tier="agentic", version="latest", expand=["markdown"])
print(result.markdown.pages[0].markdown)
```

Pin a dated version in production so a parser upgrade can't silently change your chunks. It runs as SaaS in US and EU regions and, on enterprise plans, as self-hosted BYOC, in private VPCs or as a hybrid deployment. Billing is in credits: new users get 10,000 free credits a month (as of September 2026), per-page cost rises with the tier, and re-parsing a cached result costs zero credits.

**Verdict:** the managed pick for LlamaIndex shops and anyone who wants to trade cost against accuracy per document. Model the bill on the tier you'll really use for RAG, not on Fast.

### Reducto: the document platform for regulated work

[Reducto](/tools/reducto) calls itself "the agentic document platform for AI teams who need production-grade document processing at enterprise scale." Its APIs cover Parse, Extract, Split, Classify, Edit and Pipelines (reusable single-call workflows), alongside Studio, a no-code pipeline builder, plus an MCP server, a CLI, and Apache-2.0 SDKs for Python, Node.js and Go. The docs describe a "unified r-1 model" behind parsing.

It supports 30+ file types and handles tables, figures, layout, handwriting and multiple languages. Output is JSON chunks, Markdown or HTML tables, with bounding-box grounding so each chunk can cite its place on the page.

Deployment runs from SaaS through hybrid and full VPC to air-gapped on-prem, with EU data residency. Reducto is SOC 2 Type II audited, offers a HIPAA BAA, and has a zero-data-retention option with 24-hour deletion. Standard is pay-as-you-go with free starting usage; Growth and Enterprise are custom-priced, with VPC and on-prem on Enterprise.

**Verdict:** the choice when parsing feeds regulated or high-stakes workflows and procurement will ask about SOC 2, HIPAA and where the model runs. The trade-off is a closed engine, with private deployment on enterprise terms.

### Mistral OCR: an OCR model you call by the page

[Mistral OCR](/tools/mistral-ocr) is Mistral AI's hosted document model. The current version is OCR 4.1 (`mistral-ocr-4-1`), released July 16, 2026 and generally available since August 31, 2026; the `mistral-ocr-latest` alias points to it. You send a public URL, base64 content or an uploaded file to `/v1/ocr` (or queue jobs via `/v1/batch`) and get JSON with per-page Markdown plus images, tables, hyperlinks, headers, footers and bounding boxes.

The 2026 releases added the structure RAG needs. OCR 4 (June 2026) introduced `include_blocks`: paragraph-level bounding boxes with a structural label such as title, table, equation or signature, in reading order, plus confidence scores. OCR 4.1 added block-level granularity to those scores, and `table_format` (from OCR 3, December 2025) returns tables as Markdown or HTML. Document AI sits on top for structured extraction, billed per annotated page.

It's available through Mistral's API, Amazon SageMaker and Microsoft Foundry. The weights are not open; self-hosting is a single-container deployment for enterprise customers only. Model IDs retire on a schedule, and `mistral-ocr-2505` was retired on May 31, 2026.

**Verdict:** the simplest managed option when you need OCR plus layout, at volume, through a plain API. Pin `mistral-ocr-4-1` in production. For open weights or self-serve on-prem, use Docling or Marker instead.

### Unstructured: ingestion pipelines, not only parsing

[Unstructured](/tools/unstructured) now comes in two clearly separate parts. The open-source library (`unstructured`, Apache-2.0, 0.27.5 as of August 2026) partitions more than 25 file types into typed JSON elements with metadata, locally:

```bash
pip install "unstructured[all-docs]"
```

```python
from unstructured.partition.auto import partition

elements = partition(filename="example-docs/eml/fake-email.eml")
print("\n\n".join([str(el) for el in elements]))
```

As of September 2026 the docs call the commercial platform Unstructured Pipelines: "a no-code user interface, pay-as-you-go platform for transforming your unstructured data into data that is ready for retrieval-augmented generation (RAG)." Beside it sit the Unstructured API, a Python SDK, and Unstructured Business, which adds dedicated instances, in-VPC deployment on Azure, AWS or GCP, and bare metal. The library's README steers production users toward Pipelines. The platform starts with 10,000 free pages, then bills per page.

**Verdict:** pick the platform when managed connectors and workflows are the point, and the library for simple local partitioning, knowing the vendor points production features at Pipelines. If you only want the cleanest Markdown from hard PDFs, compare it against the dedicated parsers above.

## What changed in 2026

- **LlamaParse** moved to v2 tiers with required versions (December 2025), LlamaIndex began renaming LlamaCloud to LlamaParse (February 2026), and the `llama_cloud_services` SDK lost maintenance after May 1, 2026.
- **Marker** 2.0.0 (July 2026) introduced the balanced and fast modes, required Python 3.10+ and removed structured extraction. Its code is Apache-2.0; some older write-ups still list GPL-3.0.
- **Mistral OCR** shipped OCR 4 (June 2026) and OCR 4.1 (July 2026, GA on August 31, 2026), and retired OCR 2 on May 31, 2026.
- **Unstructured** calls its platform Unstructured Pipelines as of September 2026, separate from the open-source library.
- **Docling**'s README highlights new inputs, including video, audio, email, ODF, XBRL, EPUB and Apple Pages, plus chart understanding.
- **Reducto** lists Classify and Pipelines alongside Parse, Extract, Split and Edit as of September 2026, and acquired Opennote, an AI notebook for students, in May 2026.
- **Azure Document Intelligence** moved under Azure Content Understanding in Foundry Tools; its v2.1 API retires on September 15, 2027 and v3.0 on March 30, 2029.

## How to evaluate parsers on your own documents

Vendor benchmarks run on someone else's PDFs. A short bake-off on yours settles most decisions:

1. **Collect your ugliest pages:** scans, multi-column layouts, tables that span pages, charts and forms. Easy pages flatter every parser.
2. **Run two local and two managed candidates on the same set.** Docling and Marker need only the commands above; LlamaParse's monthly credits, Unstructured's first 10,000 pages and Reducto's starting usage cover a managed trial.
3. **Score structure, not looks:** table cells, reading order across columns, heading levels (they drive chunking), stripped headers and footers, and bounding boxes if you need citations.
4. **Score retrieval.** Chunk and embed every output the same way and run your real queries. The [chunking strategy optimizer](/skills/data/chunking-strategy-optimizer) skill sweeps chunk configurations against a fixed eval set, which keeps the comparison honest.
5. **Cost it at your volume and tier** using each tool page, counting re-parses and retries.
6. **Clear license and deployment before you integrate.** Marker's weights, pymupdf4llm's AGPL and each vendor's VPC terms can each end an evaluation on their own.

## How to choose

- **You can run your own compute and want no license surprises:** Docling.
- **You want GPU speed and your company clears the weight license:** Marker.
- **You're on LlamaIndex or want per-document cost control:** LlamaParse.
- **Regulated data, HIPAA or air-gapped deployment:** Reducto.
- **OCR plus layout at volume through a simple API:** Mistral OCR.
- **Managed ingestion with connectors into your vector store:** Unstructured.

Then build the rest of the pipeline. [How RAG works](/guides/concepts/how-rag-works) shows where parsing sits, [multimodal RAG over PDFs](/guides/vision/multimodal-rag-images-pdfs) covers when to embed page images instead of text, [VLMs for OCR](/guides/vision/vlm-ocr-documents) explains their failure modes, and [the best RAG frameworks](/guides/comparisons/best-rag-frameworks-2026) covers orchestration. For Claude Code, [the best Claude skills for RAG](/guides/skills/best-claude-skills-for-rag) rounds up installables such as the [multimodal document extractor](/skills/data/multimodal-document-extractor) skill, the [scaffold-rag-pipeline](/commands/scaffold/scaffold-rag-pipeline) command and the [rag-pipeline-engineer](/agents/data-ai/rag-pipeline-engineer) agent. When retrieval still misses, work through the [RAG debugging checklist](/guides/troubleshooting/rag-debugging-checklist).

## Sources and further reading

- [Docling documentation](https://docling-project.github.io/docling/) — Docling Project
- [Docling repository](https://github.com/docling-project/docling) — Docling Project
- [Marker repository](https://github.com/datalab-to/marker) — Datalab
- [LlamaParse documentation](https://developers.llamaindex.ai/llamaparse/parse/) — LlamaIndex
- [LlamaParse tiers guide](https://developers.llamaindex.ai/llamaparse/parse/guides/tiers/) — LlamaIndex
- [LlamaIndex newsletter, February 24, 2026](https://www.llamaindex.ai/blog/llamaindex-newsletter-2026-02-24) — LlamaIndex
- [Reducto documentation overview](https://docs.reducto.ai/overview) — Reducto
- [Mistral OCR 4.1 model card](https://docs.mistral.ai/models/ocr-4-1) — Mistral AI
- [Mistral OCR documentation](https://docs.mistral.ai/studio-api/document-processing/basic_ocr) — Mistral AI
- [Mistral changelog](https://docs.mistral.ai/resources/changelogs) — Mistral AI
- [Unstructured Pipelines overview](https://docs.unstructured.io/platform/overview) — Unstructured
- [Unstructured open-source library](https://github.com/Unstructured-IO/unstructured) — Unstructured
- [Azure Document Intelligence overview](https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/overview?view=doc-intel-4.0.0) — Microsoft

---

_Source: https://agentscamp.com/guides/comparisons/best-document-parsers-for-rag-2026 — Guide on AgentsCamp._
