Document Extraction APIs Arena
Document Extraction APIs — procurement report
ProductArena · rankings as of 2026-09-16 · evidence as of 2026-09-16 · 6 products · 53 judged requirements · 318 judged cells
Methodology: Every product is judged against a shared taxonomy of user stories using cited evidence — hands-on probes > repository code > independent community sources > vendor claims — never opinion. Full writeup: https://ultrametric.ai/productarena/methodology
Leaderboard
| # | Product | PA Score | Coverage score | Applicable cells | Confidence |
|---|---|---|---|---|---|
| 1 | Reducto | 39.2 | 40.9 | 50/53 | C |
| 2 | Extend | 33.1 | 38.9 | 52/53 | C |
| 3 | LlamaParse | 32.5 | 33.4 | 52/53 | C |
| 4 | Datalab | 30.4 | 31.6 | 53/53 | C |
| 5 | Unstructured | 26.1 | 28.8 | 53/53 | C |
| 6 | Mistral Document AI | 20.4 | 20.4 | 45/53 | C |
PA Score = agent-readiness blend (see methodology). Coverage score = weighted share of judged requirements met. Confidence = how much of the score rests on tested vs claimed evidence (A–D).
Uncertainty note
The current #1/#2 gap in this arena is not close enough to qualify for the multi-judge uncertainty pass (or the pass has not covered it yet) — no extra caveat applies beyond the per-product confidence grades above.
Buyer checklist (RFP)
The arena's 53 judged user stories as requirements, grouped by theme. Priorities mirror the story weights our scoring uses (3 = must-have, 2 = should-have, 1 = nice-to-have). Interactive version with per-requirement verdicts for the top products: /arena/document-extraction/checklist
Agenticness — how well agents can access and operate the productAgenticness
How well agents can access and operate the product
- ai-native userPlug MCP servers into this product so it can use their toolsmust-have
- ai-native userConnect an agent via an official MCP servermust-have
- ai-native userDrive the product through a documented public APImust-have
- ai-native userDelegate tasks to a built-in AI assistant inside the productmust-have
- ai-native userPoint an agent at llms.txt or agent-oriented docsshould-have
- ai-native userRun the product headlessly / in CI for automationshould-have
- ai-native userUse an official CLIshould-have
- ai-native userIssue scoped/least-privilege API credentials for an agentshould-have
- ai-native userBuild against official SDKsshould-have
- ai-native userSubscribe to events via webhooksshould-have
- ai-native userGet AI-generated insights and suggestions from my data inside the productshould-have
- ai-native userSet up automations that run autonomously in the backgroundshould-have
- ai-native userOperate the product with natural-language commandsshould-have
- ai-native userExplore an interactive API reference with runnable examplesshould-have
- ai-native userDownload a machine-readable API spec (OpenAPI or equivalent)should-have
- ai-native userRely on versioned APIs with a documented deprecation policyshould-have
- ai-native userTest against a sandbox environment without touching production datanice-to-have
Automation depth — how much of the product can run unattendedAutomation depth
How much of the product can run unattended
- ai-native userDefine rules that trigger actions automatically on eventsmust-have
- ai-native userPerform bulk operations across many items at onceshould-have
- ai-native userSchedule recurring jobs or workflowsshould-have
- ai-native userVersion, review, and roll back my automationsnice-to-have
Deployment compliance — stories about deployment compliance in this arenaDeployment compliance
Stories about deployment compliance in this arena
- data engineerUploaded documents get zero-retention handling with SOC 2 and HIPAA options, so I can process contracts and medical recordsmust-have
- data engineerRun the extraction stack in my own VPC or fully self-hosted when documents can't leave my infrastructureshould-have
Format coverage — stories about format coverage in this arenaFormat coverage
Stories about format coverage in this arena
- developerOne API handles my whole document mix — PDF, DOCX, PPTX, XLSX, HTML, images, email — without per-format plumbingshould-have
- data engineerThousand-page documents and multi-gigabyte files process reliably without timeouts or silent truncationshould-have
Ocr multilingual — stories about ocr multilingual in this arenaOcr multilingual
Stories about ocr multilingual in this arena
- developerScanned and photographed documents OCR accurately — skewed pages, stamps, low quality scans includedmust-have
- developerNon-English documents — including CJK and right-to-left scripts — parse with the same fidelity as Englishshould-have
- developerHandwritten fields and annotations are recognized and extracted, flagged with confidence when uncertainnice-to-have
Openness — open source, data portability, and self-hosting storiesOpenness
Open source, data portability, and self-hosting stories
- ai-native userExport all of my data in open formats and leavemust-have
- ai-native userSelf-host the core productmust-have
- ai-native userDo everything through the API that I can do in the UIshould-have
- ai-native userRead the product's source under an open licenseshould-have
Parse accuracy — stories about parse accuracy in this arenaParse accuracy
Stories about parse accuracy in this arena
- developerThe API parses complex real-world PDFs — multi-column layouts, headers, footers, footnotes — into clean, correctly ordered contentmust-have
- ml engineerFigures and charts are extracted or described (VLM summaries, image crops) with positions traceable back to the source pageshould-have
- ml engineerParsed output preserves document hierarchy — headings, sections, reading order — so downstream LLMs see structure, not soupshould-have
- ml engineerThe vendor publishes reproducible accuracy benchmarks and I can run my own evals before committingnice-to-have
Privacy posture — data-handling and privacy storiesPrivacy posture
Data-handling and privacy stories
- ai-native userPrevent my data from being used to train AI modelsmust-have
- ai-native userChoose where my data is stored (region/residency)should-have
- ai-native userControl data retention and deletionshould-have
- ai-native userOpt out of telemetry and usage trackingshould-have
Rag chunking — stories about rag chunking in this arenaRag chunking
Stories about rag chunking in this arena
- ai-native userOutput comes pre-chunked for RAG — semantic boundaries, metadata, embedding-ready segments — not a wall of textmust-have
- ai-native userI get clean markdown/JSON designed for LLM consumption, with noise like repeated headers and page furniture strippedshould-have
Scale async — stories about scale async in this arenaScale async
Stories about scale async in this arena
- developerLong parses run as async jobs with status polling and completion webhooks, so my pipeline never blocksmust-have
- developerA fast synchronous mode returns results in seconds for interactive apps, with latency documented per modeshould-have
- data engineerI push high-volume batches — millions of pages — with documented rate limits and predictable throughputshould-have
Sdk dx — stories about sdk dx in this arenaSdk dx
Stories about sdk dx in this arena
- developerOfficial typed SDKs for Python and TypeScript cover the full API — parse, extract, jobs — with sensible defaultsmust-have
- developerI drag a document into a web playground and see parse/extract results before writing any codenice-to-have
Structured extraction — stories about structured extraction in this arenaStructured extraction
Stories about structured extraction in this arena
- developerI supply a JSON schema and get back validated structured fields extracted from the documentmust-have
- ai-native userEvery extracted field carries provenance — page number, bounding box, source snippet — so agents can cite and humans can verifyshould-have
- data engineerExtractions carry calibrated confidence scores with a human-in-the-loop review path for low-confidence fieldsshould-have
- data engineerMulti-document packets are classified and split automatically — one upload, per-document resultsshould-have
Table extraction — stories about table extraction in this arenaTable extraction
Stories about table extraction in this arena
- data engineerComplex tables — merged cells, nested headers, multi-page spans — come out as faithful HTML/markdown structuremust-have
- data engineerI turn extracted tables into typed rows/JSON I can load into a database without manual cleanupshould-have
Appendix: recorded probes
Hands-on probe recordings — transcripts/videos a human can replay, the strongest evidence tier. Watch them at https://ultrametric.ai/productarena/proofs
- Datalab
curl -s -X POST https://www.datalab.to/api/v1/convertterminal · recorded 2026-09-10 · exit 0 - Datalab
uvx --from datalab-python-sdk datalab --helpterminal · recorded 2026-09-10 · exit 0 - Datalab
curl -s https://documentation.datalab.to/llms.txt | head -8terminal · recorded 2026-09-10 · exit 0 - Datalab
curl -sL https://documentation.datalab.to/docs/welcome/quickstart.md | head -8terminal · recorded 2026-09-10 · exit 0 - Extend
curl -s https://api.extend.ai/extractorsterminal · recorded 2026-09-10 · exit 0 - Extend
npx -y @extend-ai/cli --versionterminal · recorded 2026-09-10 · exit 0 - Extend
curl -s -X POST https://docs.extend.ai/_mcp/server -H 'Content-Type: application/json' -d '<jsonrpc initialize>'terminal · recorded 2026-09-10 · exit 0 - Extend
curl -s https://docs.extend.ai/llms.txt | head -8terminal · recorded 2026-09-10 · exit 0 - Extend
curl -si -X POST https://mcp.extend.ai/mcp -H 'Content-Type: application/json' -d '<jsonrpc initialize>'terminal · recorded 2026-09-10 · exit 0 - LlamaParse
curl -s -X POST https://api.cloud.llamaindex.ai/api/v1/parsing/uploadterminal · recorded 2026-09-10 · exit 0 - LlamaParse
curl -s -X POST https://developers.llamaindex.ai/mcp -H 'Content-Type: application/json' -d '<jsonrpc initialize>'terminal · recorded 2026-09-10 · exit 0 - LlamaParse
curl -s https://developers.llamaindex.ai/llms.txt | head -8terminal · recorded 2026-09-10 · exit 0 - LlamaParse
curl -sL https://developers.llamaindex.ai/llamaparse/parse/getting_started/index.md | head -8terminal · recorded 2026-09-10 · exit 0 - LlamaParse
curl -s https://api.cloud.llamaindex.ai/api/openapi.json | head -c 300terminal · recorded 2026-09-10 · exit 0 - Mistral Document AI
curl -s -X POST https://api.mistral.ai/v1/ocr -H 'Content-Type: application/json' -d '{}'terminal · recorded 2026-09-10 · exit 0 - Mistral Document AI
curl -s https://docs.mistral.ai/llms.txt | head -8terminal · recorded 2026-09-10 · exit 0 - Reducto
curl -s -X POST https://docs.reducto.ai/mcp -H 'Content-Type: application/json' -d '<jsonrpc initialize>'terminal · recorded 2026-09-10 · exit 0 - Reducto
curl -s https://docs.reducto.ai/llms.txt | head -8terminal · recorded 2026-09-10 · exit 0 - Reducto
curl -sL https://docs.reducto.ai/quickstart.md | head -8terminal · recorded 2026-09-10 · exit 0 - Reducto
curl -si -X POST https://mcp.reducto.ai/mcp -H 'Content-Type: application/json' -d '<jsonrpc initialize>'terminal · recorded 2026-09-10 · exit 0 - Reducto
curl -s https://platform.reducto.ai/openapi.json | head -c 400terminal · recorded 2026-09-10 · exit 0 - Unstructured
curl -sL https://docs.unstructured.io/agent-guide.md | grep -B2 'no longer actively recommends'terminal · recorded 2026-09-10 · exit 0 - Unstructured
curl -s -X POST https://platform.unstructuredapp.io/api/v1/jobs/terminal · recorded 2026-09-10 · exit 0 - Unstructured
curl -s https://docs.unstructured.io/llms.txt | head -8terminal · recorded 2026-09-10 · exit 0
Cite as: ProductArena by Ultrametric Inc, Document Extraction APIs arena, rankings as of 2026-09-16 — https://ultrametric.ai/productarena/arena/document-extraction
License: © 2026 Ultrametric Inc. Brief quotation of individual verdicts, scores, or evidence excerpts is permitted with attribution to "ProductArena by Ultrametric Inc (ultrametric.ai/productarena)", as is use of the data to evaluate, contest, or contribute corrections. Bulk copying, redistribution, or use to build competing datasets requires prior written permission (see DATA-LICENSE in the repository).
No liability: rankings, verdicts, and scores are research outputs derived from the cited evidence at a point in time, provided "as is", without warranties. Ultrametric Inc accepts no responsibility for procurement, purchasing, or other decisions made in reliance on them — verify against the cited evidence before acting (https://ultrametric.ai/productarena/terms).