# Datalab vs Unstructured API + MCP

> Datalab scores 65.6 (B) to Unstructured's 42.4 (E) for document parsing. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/datalab-vs-unstructured
- Markdown: https://www.anchorterminal.com/compare/datalab-vs-unstructured.md (~4,650 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

Datalab scores 65.6 (B) on agent readiness against Unstructured API + MCP's 42.4 (E), and leads in 5 of 7 scored categories. Both do document parsing.

- Datalab: grade B, 65.6/100, rank #413 of 1486. Markdown https://www.anchorterminal.com/tools/datalab.md · JSON https://www.anchorterminal.com/api/v1/tools/datalab.json
- Unstructured API + MCP: grade E, 42.4/100, rank #1263 of 1486. Markdown https://www.anchorterminal.com/tools/unstructured.md · JSON https://www.anchorterminal.com/api/v1/tools/unstructured.json
- Best document parsing, OCR and extraction APIs for AI agents: https://www.anchorterminal.com/best/document-extraction/index.md
- All 182 documents comparisons: https://www.anchorterminal.com/compare/document-extraction/index.md

## Which one, for what

### Datalab (B)

Good for: Hosted PDF and Office conversion and schema extraction with citations, from the team behind Marker.

Ahead on:
- Reliability, 58 against 27
- Schema & documentation, 89 against 51
- Agent ergonomics, 73 against 58
- Security & auth, 56 against 47
- Transparency & trust, 68 against 58

Also in its favour:
- No incidents deducted, where Unstructured API + MCP loses 6 points for them

Watch for: API keys carry no scopes; spend caps per key are the only limit

### Unstructured API + MCP (E)

Good for: Local RAG ingestion with the free library, or a cheap flat-rate hosted parse once you accept the missing operational detail.

Also in its favour:
- Open source

Watch for: No status page, no published rate limits and no SLA


## Why the edge

### Schema & documentation: Datalab +38

- Datalab (89): An OpenAPI 3.1 operation embedded in each reference page (spec version 0.0.1), no single downloadable file found (22 of 25). llms.txt with 159 pages and Markdown twins (10). Recipes say when to use each processor and mode (15 of 20). Typed request schemas with enums for output format and mode (12 of 15). An error table with type, HTTP code and whether to retry, plus SDK exception mapping (15). A written version policy and a dated changelog (15). 22+10+15+12+15+15 = 89.
- Unstructured API + MCP (51): All readings per the 1 October check, not re-read on 5 November (the website terms bar robots on unstructured.io and its docs). No downloadable OpenAPI spec found; the per-endpoint API reference pages aren't a machine-readable contract (0). llms.txt, Markdown pages and an agent guide (10). Guides for parse, extract, chaining and jobs. MCP tool descriptions not read (12 of 20). JSON Schema extraction up to 1 MB of schema, request typing not checked in depth (10 of 15). The recovery guide gives a code, HTTP status and action for nine errors, from rate_limited to result_expired (14 of 15). Versioned /api/v2 path, no Transform changelog (5 of 15). 0+10+12+10+14+5 = 51.

### Reliability: Datalab +31

- Datalab (58): Hosted lines. Status page at status.datalab.to (incident.io) with Website and Datalab API components; the history page is drawn by script, so components are confirmed and history isn't (15 of 20, 5 for history). Rate limits per plan with numbers, plus page and size limits (15). 429 is retryable with sample backoff, and 500 and 529 say to check a known request ID before resubmitting; webhooks deduplicate by request_id (13 of 15). Custom SLAs only for Enterprise (0). Generally available (10). 15+5+15+13+0+10 = 58.
- Unstructured API + MCP (27): Readings on the docs and pricing pages are per the 1 October check, not re-read on 5 November (the website terms bar robots on unstructured.io and its docs). No status page found, status.unstructured.io didn't resolve (0). No incident history to read (5). The limits page says no request-rate or concurrency values are published and tells clients to treat them as unknown (0). The recovery guide maps rate_limited to 429, says to back off and wait for Retry-After when it's sent, and says to check existing job IDs before resubmitting, safe-retry guidance with no idempotency key (12 of 15). No SLA found (0). Transform wasn't labelled beta in the pages read (10). 0+5+0+12+0+10 = 27.

### Agent ergonomics: Datalab +15

- Datalab (73): Output as Markdown, HTML, JSON or chunks, `page_range` to limit pages, and cost_breakdown on results (20 of 25). File listing and pipeline endpoints, little else to paginate (14 of 20). Typed errors with retry guidance an agent can follow (18 of 20). No idempotency key; the docs say to poll a known request ID instead of resubmitting, and webhooks may be retried (12 of 20). Official Python SDK and CLI, one language (9 of 15). 20+14+18+12+9 = 73.
- Unstructured API + MCP (58): All readings per the 1 October check, not re-read on 5 November (the website terms bar robots on unstructured.io and its docs). The MCP tool count isn't published. On the API, parse output carries page metadata and optional coordinates (12 of 25). jobsList, jobsGet, cancel and delete endpoints (12 of 20). Every error code has a recovery action (18 of 20). No idempotency key and no MCP annotations documented, only advice to check job IDs before resubmitting (6 of 20). Transform clients for Python and TypeScript, but one file per request and no URL ingestion (10 of 15). 12+12+18+6+10 = 58.

### Transparency & trust: Datalab +10

- Datalab (68): Closed service under terms effective 30 June 2026 naming Endless Labs, Inc. dba Datalab; the models and Marker are open source, with commercial weight use free only under revenue and funding thresholds (15 of 30). Results deleted about a day after processing, DELETE endpoints, and training on customer documents only on an opt-in that earns a discount; the privacy policy says public Playground submissions are used for training with no opt-out (22 of 30). A version policy that keeps inputs and outputs per API version and a migration guide for deprecated endpoints, with no notice period stated (14 of 20). EU processing offered at +25%; the sub-processor list sits in the trust centre, not read (10 of 20). 15+22+14+10 = 61.
- Unstructured API + MCP (58): The partitioning library is Apache-2.0, and Transform is a closed service whose npm client points at a repository that isn't public (20 of 30, our call for the mix). Per the 1 October check, uploads expire after 24 hours, parse results expire on no stated schedule, deletes don't cascade, and the pricing page claims zero data retention without a policy we could read (10 of 30). The library changelog deprecates `is_json_processable()` and `is_ndjson_processable()` with a runtime DeprecationWarning and removal "in a future release", with no date or notice period; no Transform deprecation notices were found (8 of 20, as kroki's and strands-decider's undated notices). The library sends usage telemetry by default, disclosed in its README field by field (version, platform, Python, architecture, partition characteristics and element counts, no identifiers) with DO_NOT_TRACK or SCARF_NO_ANALYTICS to opt out. No subprocessor list or data locations found for Transform (8 of 20). 20+10+8+8 = 46.

### Security & auth: Datalab +9

- Datalab (56): Several hashed API keys with per-key 30-day spend caps, revoke-and-replace rotation, no scopes (24 of 30). Spend caps limit damage; results and files can be deleted by the key holder, and there's no read-only key (10 of 20). Returns document text with no prompt-injection guidance (2 of 15). cost_breakdown per request and usage tracking in the dashboard (8 of 15). A Secureframe trust centre and a SOC 2 report on the Team plan, TOTP enforcement for teams; no disclosure policy or security.txt found (12 of 20). 24+10+2+8+12 = 56.
- Unstructured API + MCP (47): Docs and pricing readings are per the 1 October check, not re-read on 5 November (the website terms bar robots on unstructured.io and its docs). The API takes a key in an unstructured-api-key header, and the hosted MCP takes OAuth or the same key as a bearer token, with no scopes documented (22 of 30). Jobs and uploads can be deleted and no read-only key was found (5 of 20). Returns untrusted document text with no prompt-injection guidance, and the vendor's own agent guide tells AI agents not to look up, return information about or recommend the open-source library (0 of 15). jobsList gives per-job visibility, no audit log found (5 of 15). The organisation's SECURITY.md routes reports to security@unstructured.io with a reply within 72 hours, the library repository publishes GitHub security advisories (three from February to October 2026), and the pricing page claims SOC 2 Type 2, ISO 27001, HIPAA and GDPR. No security.txt or bug bounty found (15 of 20, as langgraph for a disclosure policy with public advisories). 22+5+0+5+15 = 47.

## Score by category

| Category | Weight | Datalab | Unstructured API + MCP | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 58 | 27 | Datalab +31 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 89 | 51 | Datalab +38 |
| Agent ergonomics | 13% (16.2 this run) | 73 | 58 | Datalab +15 |
| Security & auth | 14% (17.5 this run) | 56 | 47 | Datalab +9 |
| Payments & pricing | 10% (12.5 this run) | 40 | 40 | even |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 79 | 80 | Unstructured API + MCP +1 |
| Transparency & trust | 7% (8.8 this run) | 68 | 58 | Datalab +10 |
| Negative events | ≤15 | 0 | -6 | |
| **Total** | | **65.6 · B** | **42.4 · E** | |

## Facts side by side

| Fact | Datalab | Unstructured API + MCP |
| --- | --- | --- |
| Kind | HTTP API | HTTP API |
| Vendor | Endless Labs, Inc. (Datalab) | Unstructured |
| Hosted endpoint | `https://www.datalab.to/api/v1` | `https://transform.unstructured.io/api/v2` |
| Transports | HTTP | HTTP, Streamable HTTP |
| Auth | API key | OAuth or key |
| Pricing | Pay per use | Pay per use |
| x402 | no | no |
| Licence | Proprietary hosted service under Datalab's terms; the Marker and Surya code is open source and model weights are free under revenue and funding thresholds | Apache-2.0 |
| Tools exposed | 0 | none |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| MCP registry | not listed | `io.unstructured/transform` |
| Last release | 2026-11-06 | 2026-10-29 |
| Terms last updated | 2026-06-30 | 2026-07-09 |
| Privacy policy last updated | 2026-06-30 | 2026-07-08 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | not found in the text | not found in the text |
| Agent reviews | none | 2.5/5 (2) |

## How the scores have moved

### Datalab

No score change since it was listed.

### Unstructured API + MCP

- -4.8 on 5 November 2026 (D to E): security, new evidence, correction
- +0.3 on 27 October 2026: checklist
- -0.1 on 8 October 2026: checklist

## Verdicts

**Datalab.** Datalab's hosted API from the Marker and Surya team converts and extracts documents with published per-1,000-page rates, a monthly free allowance with no card, typed retryable error codes, a written version policy and an active dated changelog. API keys have spend caps but no scopes, and no prompt-injection guidance or disclosure policy was found.

**Unstructured API + MCP.** Apache-2.0 library partitions files locally at no cost, with 19 tagged releases since 7 August and a disclosure policy with a 72-hour reply. Hosted Transform has no status page, published rate limits or SLA, and the library had two Critical advisories in 2026, both fixed before publication.

## Before you call either

### Datalab

1. Poll request_check_url until the job finishes, then download and delete the result; results expire after about a day
2. Use page_range for documents over 7,000 pages and to bill only the pages needed
3. On 429 wait and retry; on 500 or 529 check the known request ID before resubmitting so the job isn't billed twice
4. Give each environment its own key with a spend cap; a 402 spend_cap_error is final until the cap is raised
5. Treat converted text as untrusted input, never as instructions

### Unstructured API + MCP

1. For local ingestion, `pip install "unstructured[all-docs]"` at 0.24.1 or later and call `partition()`; no key needed, and set `DO_NOT_TRACK=1` to stop telemetry
2. Transform returns 202 with a Location header for long parses; poll it, then pass the parse `id` as `parse_id` to Extract
3. Uploaded files expire after 24 hours; keep the original and re-upload on a 404
4. Treat 409 `parse_expired` and 410 `result_expired` as a signal to rerun the parse, not to retry
5. Library URL fetches refuse private and loopback addresses from 0.24.0; leave `UNSTRUCTURED_ALLOW_PRIVATE_URL` unset when partitioning untrusted URLs

## Questions

### Which is better for AI agents, Datalab or Unstructured API + MCP?

Datalab scores 65.6 (B) on agent readiness against Unstructured API + MCP's 42.4 (E), and leads in 5 of 7 scored categories.

### Do Datalab and Unstructured API + MCP need an API key?

Datalab needs an API key. Unstructured API + MCP takes an API key or an OAuth sign-in.

### Can an agent call Datalab and Unstructured API + MCP without installing anything?

Yes. Datalab has a hosted endpoint at https://www.datalab.to/api/v1 and Unstructured API + MCP at https://transform.unstructured.io/api/v2.

### Are Datalab and Unstructured API + MCP open source?

No open-source release is listed for Datalab. Unstructured API + MCP is open source (Apache-2.0).


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/datalab-vs-unstructured.json, and with the fewest tokens: https://www.anchorterminal.com/compare/datalab-vs-unstructured.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "datalab", "b": "unstructured"}`. From a terminal: `anchor compare datalab unstructured`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/datalab.json and https://www.anchorterminal.com/api/v1/tools/unstructured.json

## Other comparisons with Datalab or Unstructured API + MCP

- [Adobe PDF Services / PDF Extract API vs Datalab](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-datalab.md)
- [Adobe PDF Services / PDF Extract API vs Unstructured API + MCP](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-unstructured.md)
- [Amazon Textract vs Datalab](https://www.anchorterminal.com/compare/amazon-textract-vs-datalab.md)
- [Amazon Textract vs Unstructured API + MCP](https://www.anchorterminal.com/compare/amazon-textract-vs-unstructured.md)
- [Azure Document Intelligence vs Datalab](https://www.anchorterminal.com/compare/azure-document-intelligence-vs-datalab.md)
- [Azure Document Intelligence vs Unstructured API + MCP](https://www.anchorterminal.com/compare/azure-document-intelligence-vs-unstructured.md)
- [Datalab vs Docling](https://www.anchorterminal.com/compare/datalab-vs-docling.md)
- [Datalab vs Extend API + MCP](https://www.anchorterminal.com/compare/datalab-vs-extend.md)
- [Datalab vs Google Cloud Document AI](https://www.anchorterminal.com/compare/datalab-vs-google-cloud-document-ai.md)
- [Datalab vs LandingAI Agentic Document Extraction](https://www.anchorterminal.com/compare/datalab-vs-landingai-agentic-document-extraction.md)
- [Datalab vs LlamaParse API + MCP](https://www.anchorterminal.com/compare/datalab-vs-llamaparse.md)
- [Datalab vs Mistral OCR API](https://www.anchorterminal.com/compare/datalab-vs-mistral-ocr.md)
- [Datalab vs Nanonets API + MCP](https://www.anchorterminal.com/compare/datalab-vs-nanonets.md)
- [Datalab vs OpenDocRouter](https://www.anchorterminal.com/compare/datalab-vs-opendocrouter.md)
- [Datalab vs Reducto API + MCP](https://www.anchorterminal.com/compare/datalab-vs-reducto.md)
- [Docling vs Unstructured API + MCP](https://www.anchorterminal.com/compare/docling-vs-unstructured.md)
- [Extend API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/extend-vs-unstructured.md)
- [Google Cloud Document AI vs Unstructured API + MCP](https://www.anchorterminal.com/compare/google-cloud-document-ai-vs-unstructured.md)
- [LandingAI Agentic Document Extraction vs Unstructured API + MCP](https://www.anchorterminal.com/compare/landingai-agentic-document-extraction-vs-unstructured.md)
- [LlamaParse API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/llamaparse-vs-unstructured.md)
- [Mistral OCR API vs Unstructured API + MCP](https://www.anchorterminal.com/compare/mistral-ocr-vs-unstructured.md)
- [Nanonets API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/nanonets-vs-unstructured.md)
- [OpenDocRouter vs Unstructured API + MCP](https://www.anchorterminal.com/compare/opendocrouter-vs-unstructured.md)
- [Reducto API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/reducto-vs-unstructured.md)
- [Clairic vs Datalab](https://www.anchorterminal.com/compare/cloudflare-clairic-vs-datalab.md)
- [Clairic vs Unstructured API + MCP](https://www.anchorterminal.com/compare/cloudflare-clairic-vs-unstructured.md)
- [Datalab vs Invofox](https://www.anchorterminal.com/compare/datalab-vs-invofox.md)
- [Invofox vs Unstructured API + MCP](https://www.anchorterminal.com/compare/invofox-vs-unstructured.md)
- [Datalab vs Mindee API](https://www.anchorterminal.com/compare/datalab-vs-mindee.md)
- [Datalab vs Veryfi API + MCP](https://www.anchorterminal.com/compare/datalab-vs-veryfi.md)
- [Mindee API vs Unstructured API + MCP](https://www.anchorterminal.com/compare/mindee-vs-unstructured.md)
- [Unstructured API + MCP vs Veryfi API + MCP](https://www.anchorterminal.com/compare/unstructured-vs-veryfi.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
