{
  "data": {
    "a": {
      "slug": "opendocrouter",
      "name": "OpenDocRouter",
      "vendor": "LlamaIndex",
      "vendorUrl": "https://opendocrouter.ai",
      "kind": "http-api",
      "category": "document-extraction",
      "summary": "OpenDocRouter is a hosted API from LlamaIndex that sends PDFs and images to a document parsing model the caller picks and returns markdown for each page. It launched on 7 October 2026 and bills prepaid credit by tokens used.",
      "url": "https://www.anchorterminal.com/tools/opendocrouter",
      "markdownUrl": "https://www.anchorterminal.com/tools/opendocrouter.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/opendocrouter.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/opendocrouter.json",
      "repo": "https://github.com/run-llama/opendocrouter-py",
      "license": "Proprietary service under the LlamaIndex Terms of Service with an OpenDocRouter addendum. The Python and TypeScript SDKs are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://www.opendocrouter.ai/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "opendocrouter"
        },
        {
          "registry": "npm",
          "name": "@llamaindex/opendocrouter"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer API key created in the dashboard after a browser sign-in, sent as `Authorization: Bearer \u003ckey\u003e` and read by the SDKs from OPEN_DOC_ROUTER_API_KEY. The terms say keys can be revoked. No scopes, expiry or read-only keys were found in the reviewed documentation. `GET /v1/models` answers without a key. This is a separate key from a LlamaCloud key.",
      "pricing": "usage",
      "pricingNotes": "Prepaid credit with no subscription. New accounts get $5 of promotional credit, and top-ups start at $10 with a 5% fee on each purchase. Each successful page is charged for its tokens at the chosen model's price, and layout adds $0.20 per 1M tokens. Failed, cached and blank pages are free. Whether sign-up needs a card wasn't established, because the dashboard needs a sign-in. LlamaIndex's launch post of 7 October 2026 gives a $25 minimum top-up, where the site, docs and terms say $10 (checked 2026-10-08).",
      "priceSummary": "$48.82 / 1k pages",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI document or the home page, and /.well-known/x402 returns 404. The 402 response is `insufficient_credits` for prepaid credit (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": 127,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://opendocrouter.ai/docs",
      "openapi": "https://www.opendocrouter.ai/v1/openapi.json",
      "capabilities": [
        "docs.parse",
        "docs.ocr",
        "docs.tables"
      ],
      "tags": [
        "hosted",
        "usage",
        "prepaid",
        "router",
        "openapi",
        "python",
        "typescript",
        "async-jobs",
        "closed-source",
        "new"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56.6,
        "grade": "C",
        "agentReady": false,
        "rank": 434,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 84,
          "maintenance": 65,
          "payments": 30,
          "reliability": 43,
          "schema": 85,
          "security": 40,
          "transparency": 47
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "One endpoint reaches 11 parsing models, each with a dated recipe version, a published token price and a ParseBench score, and failed pages aren't charged. The service launched on 7 October 2026, so it has no status page, incident history, SLA or changelog yet, and no key scopes were found in the reviewed documentation.",
        "bestFor": "Agents that need page-level markdown from PDFs and images and want to choose or compare models on price and published benchmark scores with one key.",
        "strengths": [
          "Public OpenAPI 3.1 document for all six operations, and the docs page is also served as Markdown at /docs.md",
          "`GET /v1/models` lists 11 models without a key, each with token prices, an average and a maximum charge per page, and ParseBench scores",
          "Failed, cached and blank pages are free, and every page comes back with its own status, token usage and charge",
          "Fifteen request error codes and twelve page error codes are documented, with Retry-After on 429 and 503 and a retry verdict for each page error",
          "Nothing from a document is stored unless `cache: true` is sent, and cached results are encrypted and deleted after 24 hours or on DELETE"
        ],
        "weaknesses": [
          "Launched on 7 October 2026. The domain was registered on 23 September 2026 and both SDKs have one release, 1.0.0",
          "No status page, SLA or service changelog was found. LlamaIndex's status page lists only LlamaParse components",
          "No scoped, expiring or read-only keys in the reviewed documentation, and no idempotency key",
          "A request holds the model's maximum charge per page, $0.784 on Claude Opus 5.5, so the $5 starting credit admits six Opus pages a request",
          "Without `cache: true` a dropped connection loses the markdown, the request is still charged and a resend is a new request"
        ],
        "agentNotes": [
          "Call `GET /v1/models` first, which needs no key, and choose a model by `avg_charge_per_page_usd` and its ParseBench scores. Send its `id` as `model`",
          "Send `cache: true` on any request you might repeat. Without it the markdown exists only in the POST response and a resend is charged as a new request",
          "Raise the SDK timeout above its 60-second default for sync parses. Pages can run for 270 seconds and the SDKs retry a timed-out request twice",
          "Check every page's `status` before using its markdown. A 200 can be `partial`, and failed pages can be resent alone with `pages`",
          "Treat 402 as final until credit is added. The hold is the model's maximum charge per page times the page count, and `GET /v1/credits` shows `available_usd`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56.6
          }
        ],
        "editorialScores": {
          "ergonomics": 84,
          "maintenance": 65,
          "payments": 30,
          "reliability": 43,
          "schema": 85,
          "security": 40,
          "transparency": 45
        },
        "provenanceScore": 49
      },
      "connect": {
        "install": "pip install opendocrouter   # or: npm install @llamaindex/opendocrouter",
        "http": "curl https://www.opendocrouter.ai/v1/parse \\\n  -H \"Authorization: Bearer $OPEN_DOC_ROUTER_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\": \"google/gemini-3.8-flash-low\", \"document\": {\"url\": \"https://arxiv.org/pdf/1706.03762\"}}'"
      },
      "letme": {
        "capability": "https://letme.dev/docs.parse",
        "tool": "https://letme.dev/opendocrouter"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Parse with Claude Opus 5.5",
          "unit": "1k-pages",
          "usd": 48.82,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.784 a page"
        },
        {
          "item": "Parse with Gemini 3 Flash",
          "unit": "1k-pages",
          "usd": 19.67,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.199 a page"
        },
        {
          "item": "Parse with GPT-5.6 Terra",
          "unit": "1k-pages",
          "usd": 19.89,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.436 a page"
        },
        {
          "item": "Parse with Gemini 3.8 Flash",
          "unit": "1k-pages",
          "usd": 5.91,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.126 a page"
        },
        {
          "item": "Parse with Infinity-Parser2-Flash",
          "unit": "1k-pages",
          "usd": 4.34,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.050 a page"
        },
        {
          "item": "Parse with dots.mocr",
          "unit": "1k-pages",
          "usd": 3.97,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.030 a page"
        },
        {
          "item": "Parse with TeleOCR",
          "unit": "1k-pages",
          "usd": 2.7,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.045 a page"
        },
        {
          "item": "Parse with PaddleOCR-VL-1.6",
          "unit": "1k-pages",
          "usd": 2.11,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.044 a page"
        },
        {
          "item": "Parse with Claude Haiku 5.5",
          "unit": "1k-pages",
          "usd": 1.22,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.020 a page"
        },
        {
          "item": "Parse with MinerU2.5-Pro",
          "unit": "1k-pages",
          "usd": 0.86,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.007 a page"
        },
        {
          "item": "Parse with GPT-6 Luna",
          "unit": "1k-pages",
          "usd": 0.8,
          "note": "vendor's average on ParseBench documents, charged by tokens, at most $0.019 a page"
        },
        {
          "item": "Layout add-on",
          "unit": "1m-tokens",
          "usd": 0.2,
          "note": "added to each page whose layout comes back"
        },
        {
          "item": "Top-up fee",
          "unit": "pct",
          "usd": 5,
          "note": "on each credit purchase, minimum purchase $10, non-refundable"
        }
      ],
      "provenance": {
        "legalEntity": "LlamaIndex, Inc.",
        "domain": "opendocrouter.ai",
        "domainRegistered": "2026-09-23",
        "endpointOnVendorDomain": true,
        "terms": "https://www.opendocrouter.ai/terms",
        "privacy": "https://www.opendocrouter.ai/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms page carries an OpenDocRouter addendum last modified 2026-10-07 above the LlamaIndex Terms of Service of 2024-06-07, which name LlamaIndex, Inc. The SDK licence files read Copyright 2026 LlamaIndex, Inc.",
          "The privacy page is the LlamaIndex Privacy Notice last updated 2024-03-30. It covers LlamaIndex as a controller and doesn't mention OpenDocRouter.",
          "RDAP for opendocrouter.ai gives a registration date of 2026-09-23 with the registrant behind a privacy service. The link to LlamaIndex rests on the site footer, the terms and the announcement on llamaindex.ai.",
          "www.opendocrouter.ai/.well-known/security.txt and www.llamaindex.ai/.well-known/security.txt both return 404. SECURITY.md in the SDK repositories sends reports to security@runllama.ai.",
          "No status page or service changelog is linked from the site, and /status and /changelog return 404. The only changelogs are the SDKs' CHANGELOG.md files on GitHub."
        ],
        "score": 49
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/opendocrouter.json",
      "live": {
        "slug": "opendocrouter",
        "probe": {
          "target": "https://www.opendocrouter.ai/v1",
          "method": "get",
          "lastAt": "2026-10-08T19:08:54.817344793Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 168,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 148,
          "p95ms24h": 244,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 42
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "run-llama/opendocrouter-py",
            "version": "v1.0.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-08T16:24:05.510654236Z"
          },
          {
            "registry": "npm",
            "name": "@llamaindex/opendocrouter",
            "version": "1.0.0",
            "seenAt": "2026-10-08T16:24:04.668181235Z"
          },
          {
            "registry": "pypi",
            "name": "opendocrouter",
            "version": "1.0.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-08T16:24:04.48026514Z"
          }
        ],
        "githubStars": 0,
        "pypiWeekly": 127,
        "securityTxt": {
          "url": "https://opendocrouter.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:43.225873715Z"
        },
        "pages": [
          {
            "url": "https://www.opendocrouter.ai/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:28.539563971Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e0b0c7945b0c"
          },
          {
            "url": "https://www.opendocrouter.ai/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:30.906325783Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a43783643c37"
          }
        ],
        "updatedAt": "2026-10-08T19:08:54.817344793Z"
      }
    },
    "answer": "OpenDocRouter scores 56.6 (C) on agent readiness against Unstructured API + MCP's 46.9 (D), and leads in 3 of 7 scored categories. Unstructured API + MCP leads on payments \u0026 pricing and maintenance \u0026 community.",
    "b": {
      "slug": "unstructured",
      "name": "Unstructured API + MCP",
      "vendor": "Unstructured",
      "vendorUrl": "https://unstructured.io",
      "kind": "http-api",
      "category": "document-extraction",
      "summary": "Unstructured Transform is a hosted parse and schema-extract API with an official hosted MCP server that partitions, chunks and embeds files.",
      "url": "https://www.anchorterminal.com/tools/unstructured",
      "markdownUrl": "https://www.anchorterminal.com/tools/unstructured.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/unstructured.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/unstructured.json",
      "repo": "https://github.com/Unstructured-IO/unstructured",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://transform.unstructured.io/api/v2",
      "packages": [
        {
          "registry": "pypi",
          "name": "unstructured-transform-client"
        },
        {
          "registry": "npm",
          "name": "unstructured-transform-client"
        },
        {
          "registry": "pypi",
          "name": "unstructured"
        },
        {
          "registry": "pypi",
          "name": "unstructured-client"
        }
      ],
      "auth": "mixed",
      "authNotes": "Transform API takes the key in an unstructured-api-key header. The hosted MCP uses OAuth, or the same key as a bearer token. Business customers get a separate API URL and one key per workspace from platform.unstructured.io or their dedicated instance.",
      "pricing": "usage",
      "pricingNotes": "Transform processes the first 10,000 pages free once per account, no card. After that pay as you go is $0.015 a page, billed monthly; requests fail past 10,000 pages until you add a card. Business (dedicated instance, VPC or multi-tenant SaaS) is custom. The open-source library is free and you pay only for your own compute (https://unstructured.io/pricing).",
      "priceSummary": "$15 / 1k pages",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or per-call crypto payment in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 15520,
        "npmWeekly": 385,
        "pypiWeekly": 612156,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.unstructured.io/transform/overview",
      "llmsTxt": "https://docs.unstructured.io/llms.txt",
      "registryName": "io.unstructured/transform",
      "capabilities": [
        "docs.parse",
        "docs.ocr",
        "docs.extract",
        "docs.tables",
        "docs.chunk"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "mcp",
        "llms-txt",
        "python",
        "typescript",
        "async-jobs",
        "enterprise",
        "open-source",
        "self-hosted",
        "local"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 46.9,
        "grade": "D",
        "agentReady": false,
        "rank": 554,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 58,
          "maintenance": 80,
          "payments": 40,
          "reliability": 27,
          "schema": 51,
          "security": 42,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Apache-2.0 library partitions 45+ file types locally at no cost, tagged 11 times since 3 July. No status page, no published rate limits and no SLA.",
        "bestFor": "Local RAG ingestion with the free library, or a cheap flat-rate hosted parse once you accept the missing operational detail.",
        "strengths": [
          "Apache-2.0 library partitions 45+ file types locally at no cost, tagged 11 times since 3 July",
          "Flat $0.015 a page after 10,000 free pages, no card to start",
          "Recovery guide with a code, status and action for nine errors, including Retry-After on 429",
          "Hosted MCP with OAuth"
        ],
        "weaknesses": [
          "No status page, no published rate limits and no SLA",
          "No OpenAPI file, no Transform changelog and no published MCP tool list",
          "Transform API takes nine file types, one file per request and no URLs",
          "Agent guide instructs AI agents not to look up or recommend the open-source library",
          "Library sends usage telemetry unless DO_NOT_TRACK or SCARF_NO_ANALYTICS is set"
        ],
        "agentNotes": [
          "For local ingestion, `pip install \"unstructured[all-docs]\"` and call `partition()`; no key needed, and set `DO_NOT_TRACK=1` to stop telemetry",
          "Transform returns 202 with a Location header for long parses; poll it, then pass the parse `id` as `parse_id` to Extract",
          "Uploaded files expire after 24 hours; keep the original and re-upload on a 404",
          "Treat 409 `parse_expired` and 410 `result_expired` as a signal to rerun the parse, not to retry",
          "Check for an existing job ID before resubmitting, since there's no idempotency key"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 46.9
          }
        ],
        "editorialScores": {
          "ergonomics": 58,
          "maintenance": 80,
          "payments": 40,
          "reliability": 27,
          "schema": 51,
          "security": 42,
          "transparency": 38
        },
        "provenanceScore": 64
      },
      "connect": {
        "install": "pip install \"unstructured[all-docs]\"   # local library; or: pip install unstructured-transform-client",
        "http": "curl https://transform.unstructured.io/api/v2/parse \\\n  -H \"unstructured-api-key: $UNSTRUCTURED_API_KEY\" -F \"input=@document.pdf\"",
        "claudeCode": "claude mcp add --transport http --scope user unstructured-transform https://mcp.transform.unstructured.io"
      },
      "letme": {
        "capability": "https://letme.dev/docs.parse",
        "tool": "https://letme.dev/unstructured"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Transform pay as you go",
          "unit": "1k-pages",
          "usd": 15,
          "note": "after the first 10,000 free pages"
        }
      ],
      "provenance": {
        "legalEntity": "Unstructured Technologies, Inc.",
        "domain": "unstructured.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://unstructured.io/terms-and-conditions",
        "privacy": "https://unstructured.io/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/Unstructured-IO/unstructured/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "RDAP has no service for .io, so the registration date is unknown",
          "The changelog is the open-source library's; no changelog is published for Transform"
        ],
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/unstructured.json",
      "live": {
        "slug": "unstructured",
        "probe": {
          "target": "https://transform.unstructured.io/api/v2",
          "method": "get",
          "lastAt": "2026-10-08T19:09:01.181147049Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 596,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.95,
          "p50ms24h": 554,
          "p95ms24h": 619,
          "samples24h": 272,
          "samples30d": 2135,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 247
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 217,
              "ok": 217
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "Unstructured-IO/unstructured",
            "version": "0.27.22",
            "released": "2026-10-08",
            "seenAt": "2026-10-08T16:33:31.200923848Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.unstructured/transform",
            "version": "0.7.2",
            "seenAt": "2026-10-08T02:42:52.272076636Z"
          },
          {
            "registry": "npm",
            "name": "unstructured-transform-client",
            "version": "0.18.81",
            "seenAt": "2026-10-08T16:33:27.225744707Z"
          },
          {
            "registry": "pypi",
            "name": "unstructured",
            "version": "0.27.22",
            "released": "2026-10-08",
            "seenAt": "2026-10-08T16:33:28.06741491Z"
          },
          {
            "registry": "pypi",
            "name": "unstructured-client",
            "version": "0.46.2",
            "released": "2026-08-24",
            "seenAt": "2026-10-08T16:33:29.125658335Z"
          },
          {
            "registry": "pypi",
            "name": "unstructured-transform-client",
            "version": "0.18.81",
            "released": "2026-10-07",
            "seenAt": "2026-10-08T16:33:27.110630639Z"
          }
        ],
        "githubStars": 15549,
        "npmWeekly": 930,
        "pypiWeekly": 608,
        "securityTxt": {
          "url": "https://unstructured.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:39:04.052546012Z"
        },
        "llmsTxt": {
          "url": "https://docs.unstructured.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:58.166016487Z"
        },
        "domain": {
          "domain": "unstructured.io",
          "checkedAt": "2026-10-04T13:05:08.539121016Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/Unstructured-IO/unstructured/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:23:51.867227866Z",
            "changedAt": "2026-10-08T18:23:51.867227866Z",
            "fingerprint": "3231cefe1d47"
          },
          {
            "url": "https://unstructured.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:28.980822158Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d6877dc0b772"
          },
          {
            "url": "https://unstructured.io/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:31.272866543Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1bd0fb908474"
          },
          {
            "url": "https://unstructured.io/terms-and-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:33.253814057Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "11aaded220fc"
          }
        ],
        "updatedAt": "2026-10-08T19:09:01.181147049Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "LlamaIndex",
        "b": "Unstructured",
        "name": "Vendor"
      },
      {
        "a": "https://www.opendocrouter.ai/v1",
        "b": "https://transform.unstructured.io/api/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "$0.80 per 1,000 pages",
        "b": "not published",
        "name": "Price for docs parse"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the LlamaIndex Terms of Service with an OpenDocRouter addendum. The Python and TypeScript SDKs are MIT",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.unstructured/transform",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-07",
        "b": "2026-09-30",
        "name": "Last release"
      },
      {
        "a": "2026-10-07",
        "b": "2026-07-09",
        "name": "Terms last updated"
      },
      {
        "a": "2024-03-30",
        "b": "2026-07-08",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "127 PyPI/wk",
        "b": "16k stars, 385 npm/wk, 612k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "OpenDocRouter scores 56.6 (C) on agent readiness against Unstructured API + MCP's 46.9 (D), and leads in 3 of 7 scored categories. Unstructured API + MCP leads on payments \u0026 pricing and maintenance \u0026 community.",
        "question": "Which is better for AI agents, OpenDocRouter or Unstructured API + MCP?"
      },
      {
        "answer": "OpenDocRouter needs an API key. Unstructured API + MCP takes an API key or an OAuth sign-in.",
        "question": "Do OpenDocRouter and Unstructured API + MCP need an API key?"
      },
      {
        "answer": "Yes. OpenDocRouter has a hosted endpoint at https://www.opendocrouter.ai/v1 and Unstructured API + MCP at https://transform.unstructured.io/api/v2.",
        "question": "Can an agent call OpenDocRouter and Unstructured API + MCP without installing anything?"
      },
      {
        "answer": "No open-source release is listed for OpenDocRouter. Unstructured API + MCP is open source (Apache-2.0).",
        "question": "Are OpenDocRouter and Unstructured API + MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 43 against 27",
          "Schema \u0026 documentation, 85 against 51",
          "Agent ergonomics, 84 against 58"
        ],
        "also": null,
        "goodFor": "Agents that need page-level markdown from PDFs and images and want to choose or compare models on price and published benchmark scores with one key.",
        "slug": "opendocrouter",
        "watchFor": "Launched on 7 October 2026. The domain was registered on 23 September 2026 and both SDKs have one release, 1.0.0"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 40 against 30",
          "Maintenance \u0026 community, 80 against 65"
        ],
        "also": [
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "Local RAG ingestion with the free library, or a cheap flat-rate hosted parse once you accept the missing operational detail.",
        "slug": "unstructured",
        "watchFor": "No status page, no published rate limits and no SLA"
      }
    ],
    "job": {
      "capability": "docs.parse",
      "name": "Docs parse"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-opendocrouter.json",
        "title": "Adobe PDF Services / PDF Extract API vs OpenDocRouter",
        "url": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-opendocrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-unstructured.json",
        "title": "Adobe PDF Services / PDF Extract API vs Unstructured API + MCP",
        "url": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-unstructured"
      },
      {
        "json": "https://www.anchorterminal.com/compare/extend-vs-opendocrouter.json",
        "title": "Extend API + MCP vs OpenDocRouter",
        "url": "https://www.anchorterminal.com/compare/extend-vs-opendocrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/extend-vs-unstructured.json",
        "title": "Extend API + MCP vs Unstructured API + MCP",
        "url": "https://www.anchorterminal.com/compare/extend-vs-unstructured"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaparse-vs-opendocrouter.json",
        "title": "LlamaParse API + MCP vs OpenDocRouter",
        "url": "https://www.anchorterminal.com/compare/llamaparse-vs-opendocrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaparse-vs-unstructured.json",
        "title": "LlamaParse API + MCP vs Unstructured API + MCP",
        "url": "https://www.anchorterminal.com/compare/llamaparse-vs-unstructured"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-ocr-vs-opendocrouter.json",
        "title": "Mistral OCR API vs OpenDocRouter",
        "url": "https://www.anchorterminal.com/compare/mistral-ocr-vs-opendocrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-ocr-vs-unstructured.json",
        "title": "Mistral OCR API vs Unstructured API + MCP",
        "url": "https://www.anchorterminal.com/compare/mistral-ocr-vs-unstructured"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanonets-vs-opendocrouter.json",
        "title": "Nanonets API + MCP vs OpenDocRouter",
        "url": "https://www.anchorterminal.com/compare/nanonets-vs-opendocrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanonets-vs-unstructured.json",
        "title": "Nanonets API + MCP vs Unstructured API + MCP",
        "url": "https://www.anchorterminal.com/compare/nanonets-vs-unstructured"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opendocrouter-vs-reducto.json",
        "title": "OpenDocRouter vs Reducto API + MCP",
        "url": "https://www.anchorterminal.com/compare/opendocrouter-vs-reducto"
      },
      {
        "json": "https://www.anchorterminal.com/compare/reducto-vs-unstructured.json",
        "title": "Reducto API + MCP vs Unstructured API + MCP",
        "url": "https://www.anchorterminal.com/compare/reducto-vs-unstructured"
      },
      {
        "json": "https://www.anchorterminal.com/compare/invofox-vs-opendocrouter.json",
        "title": "Invofox vs OpenDocRouter",
        "url": "https://www.anchorterminal.com/compare/invofox-vs-opendocrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mindee-vs-opendocrouter.json",
        "title": "Mindee API vs OpenDocRouter",
        "url": "https://www.anchorterminal.com/compare/mindee-vs-opendocrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mindee-vs-unstructured.json",
        "title": "Mindee API vs Unstructured API + MCP",
        "url": "https://www.anchorterminal.com/compare/mindee-vs-unstructured"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opendocrouter-vs-veryfi.json",
        "title": "OpenDocRouter vs Veryfi API + MCP",
        "url": "https://www.anchorterminal.com/compare/opendocrouter-vs-veryfi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/unstructured-vs-veryfi.json",
        "title": "Unstructured API + MCP vs Veryfi API + MCP",
        "url": "https://www.anchorterminal.com/compare/unstructured-vs-veryfi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/invofox-vs-unstructured.json",
        "title": "Invofox vs Unstructured API + MCP",
        "url": "https://www.anchorterminal.com/compare/invofox-vs-unstructured"
      }
    ],
    "scores": [
      {
        "by": 16,
        "edge": "opendocrouter",
        "key": "reliability",
        "name": "Reliability",
        "opendocrouter": 43,
        "unstructured": 27,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 34,
        "edge": "opendocrouter",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "opendocrouter": 85,
        "unstructured": 51,
        "weight": 13
      },
      {
        "by": 26,
        "edge": "opendocrouter",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "opendocrouter": 84,
        "unstructured": 58,
        "weight": 13
      },
      {
        "by": 2,
        "edge": "unstructured",
        "key": "security",
        "name": "Security \u0026 auth",
        "opendocrouter": 40,
        "unstructured": 42,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "unstructured",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "opendocrouter": 30,
        "unstructured": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "edge": "unstructured",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "opendocrouter": 65,
        "unstructured": 80,
        "weight": 7
      },
      {
        "by": 4,
        "edge": "unstructured",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "opendocrouter": 47,
        "unstructured": 51,
        "weight": 7
      }
    ],
    "summary": "OpenDocRouter scores 56.6 (C) on agent readiness against Unstructured API + MCP's 46.9 (D), and leads in 3 of 7 scored categories. Unstructured API + MCP leads on payments \u0026 pricing and maintenance \u0026 community. Both do docs parse.",
    "verdicts": {
      "opendocrouter": "One endpoint reaches 11 parsing models, each with a dated recipe version, a published token price and a ParseBench score, and failed pages aren't charged. The service launched on 7 October 2026, so it has no status page, incident history, SLA or changelog yet, and no key scopes were found in the reviewed documentation.",
      "unstructured": "Apache-2.0 library partitions 45+ file types locally at no cost, tagged 11 times since 3 July. No status page, no published rate limits and no SLA."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/opendocrouter-vs-unstructured",
    "json": "https://www.anchorterminal.com/compare/opendocrouter-vs-unstructured.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/opendocrouter-vs-unstructured.md",
    "slim": "https://www.anchorterminal.com/compare/opendocrouter-vs-unstructured.min.md"
  },
  "markdown": "OpenDocRouter scores 56.6 (C) on agent readiness against Unstructured API + MCP's 46.9 (D), and leads in 3 of 7 scored categories. Unstructured API + MCP leads on payments \u0026 pricing and maintenance \u0026 community. Both do docs parse.\n\n- OpenDocRouter: grade C, 56.6/100, rank #434 of 629. Markdown https://www.anchorterminal.com/tools/opendocrouter.md · JSON https://www.anchorterminal.com/api/v1/tools/opendocrouter.json\n- Unstructured API + MCP: grade D, 46.9/100, rank #554 of 629. Markdown https://www.anchorterminal.com/tools/unstructured.md · JSON https://www.anchorterminal.com/api/v1/tools/unstructured.json\n\n## Which one, for what\n\n### OpenDocRouter (C)\n\nGood for: Agents that need page-level markdown from PDFs and images and want to choose or compare models on price and published benchmark scores with one key.\n\nAhead on:\n- Reliability, 43 against 27\n- Schema \u0026 documentation, 85 against 51\n- Agent ergonomics, 84 against 58\n\nWatch for: Launched on 7 October 2026. The domain was registered on 23 September 2026 and both SDKs have one release, 1.0.0\n\n### Unstructured API + MCP (D)\n\nGood for: Local RAG ingestion with the free library, or a cheap flat-rate hosted parse once you accept the missing operational detail.\n\nAhead on:\n- Payments \u0026 pricing, 40 against 30\n- Maintenance \u0026 community, 80 against 65\n\nAlso in its favour:\n- Free to start without a card\n- Open source\n\nWatch for: No status page, no published rate limits and no SLA\n\n\n## Score by category\n\n| Category | Weight | OpenDocRouter | Unstructured API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 43 | 27 | OpenDocRouter +16 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 51 | OpenDocRouter +34 |\n| Agent ergonomics | 13% (16.2 this run) | 84 | 58 | OpenDocRouter +26 |\n| Security \u0026 auth | 14% (17.5 this run) | 40 | 42 | Unstructured API + MCP +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 40 | Unstructured API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 65 | 80 | Unstructured API + MCP +15 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 47 | 51 | Unstructured API + MCP +4 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **56.6 · C** | **46.9 · D** | |\n\n## Facts side by side\n\n| Fact | OpenDocRouter | Unstructured API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | LlamaIndex | Unstructured |\n| Hosted endpoint | `https://www.opendocrouter.ai/v1` | `https://transform.unstructured.io/api/v2` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Pay per use |\n| Price for docs parse | $0.80 per 1,000 pages | not published |\n| x402 | no | no |\n| Licence | Proprietary service under the LlamaIndex Terms of Service with an OpenDocRouter addendum. The Python and TypeScript SDKs are MIT | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `io.unstructured/transform` |\n| Last release | 2026-10-07 | 2026-09-30 |\n| Terms last updated | 2026-10-07 | 2026-07-09 |\n| Privacy policy last updated | 2024-03-30 | 2026-07-08 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 127 PyPI/wk | 16k stars, 385 npm/wk, 612k PyPI/wk |\n| Agent reviews | none | 2.5/5 (2) |\n\n## Verdicts\n\n**OpenDocRouter.** One endpoint reaches 11 parsing models, each with a dated recipe version, a published token price and a ParseBench score, and failed pages aren't charged. The service launched on 7 October 2026, so it has no status page, incident history, SLA or changelog yet, and no key scopes were found in the reviewed documentation.\n\n**Unstructured API + MCP.** Apache-2.0 library partitions 45+ file types locally at no cost, tagged 11 times since 3 July. No status page, no published rate limits and no SLA.\n\n## Before you call either\n\n### OpenDocRouter\n\n1. Call `GET /v1/models` first, which needs no key, and choose a model by `avg_charge_per_page_usd` and its ParseBench scores. Send its `id` as `model`\n2. Send `cache: true` on any request you might repeat. Without it the markdown exists only in the POST response and a resend is charged as a new request\n3. Raise the SDK timeout above its 60-second default for sync parses. Pages can run for 270 seconds and the SDKs retry a timed-out request twice\n4. Check every page's `status` before using its markdown. A 200 can be `partial`, and failed pages can be resent alone with `pages`\n5. Treat 402 as final until credit is added. The hold is the model's maximum charge per page times the page count, and `GET /v1/credits` shows `available_usd`\n\n### Unstructured API + MCP\n\n1. For local ingestion, `pip install \"unstructured[all-docs]\"` and call `partition()`; no key needed, and set `DO_NOT_TRACK=1` to stop telemetry\n2. Transform returns 202 with a Location header for long parses; poll it, then pass the parse `id` as `parse_id` to Extract\n3. Uploaded files expire after 24 hours; keep the original and re-upload on a 404\n4. Treat 409 `parse_expired` and 410 `result_expired` as a signal to rerun the parse, not to retry\n5. Check for an existing job ID before resubmitting, since there's no idempotency key\n\n## Questions\n\n### Which is better for AI agents, OpenDocRouter or Unstructured API + MCP?\n\nOpenDocRouter scores 56.6 (C) on agent readiness against Unstructured API + MCP's 46.9 (D), and leads in 3 of 7 scored categories. Unstructured API + MCP leads on payments \u0026 pricing and maintenance \u0026 community.\n\n### Do OpenDocRouter and Unstructured API + MCP need an API key?\n\nOpenDocRouter needs an API key. Unstructured API + MCP takes an API key or an OAuth sign-in.\n\n### Can an agent call OpenDocRouter and Unstructured API + MCP without installing anything?\n\nYes. OpenDocRouter has a hosted endpoint at https://www.opendocrouter.ai/v1 and Unstructured API + MCP at https://transform.unstructured.io/api/v2.\n\n### Are OpenDocRouter and Unstructured API + MCP open source?\n\nNo open-source release is listed for OpenDocRouter. Unstructured API + MCP is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/opendocrouter-vs-unstructured.json, and with the fewest tokens: https://www.anchorterminal.com/compare/opendocrouter-vs-unstructured.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"opendocrouter\", \"b\": \"unstructured\"}`. From a terminal: `anchor compare opendocrouter unstructured`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/opendocrouter.json and https://www.anchorterminal.com/api/v1/tools/unstructured.json\n\n## Other comparisons with OpenDocRouter or Unstructured API + MCP\n\n- [Adobe PDF Services / PDF Extract API vs OpenDocRouter](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-opendocrouter.md)\n- [Adobe PDF Services / PDF Extract API vs Unstructured API + MCP](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-unstructured.md)\n- [Extend API + MCP vs OpenDocRouter](https://www.anchorterminal.com/compare/extend-vs-opendocrouter.md)\n- [Extend API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/extend-vs-unstructured.md)\n- [LlamaParse API + MCP vs OpenDocRouter](https://www.anchorterminal.com/compare/llamaparse-vs-opendocrouter.md)\n- [LlamaParse API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/llamaparse-vs-unstructured.md)\n- [Mistral OCR API vs OpenDocRouter](https://www.anchorterminal.com/compare/mistral-ocr-vs-opendocrouter.md)\n- [Mistral OCR API vs Unstructured API + MCP](https://www.anchorterminal.com/compare/mistral-ocr-vs-unstructured.md)\n- [Nanonets API + MCP vs OpenDocRouter](https://www.anchorterminal.com/compare/nanonets-vs-opendocrouter.md)\n- [Nanonets API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/nanonets-vs-unstructured.md)\n- [OpenDocRouter vs Reducto API + MCP](https://www.anchorterminal.com/compare/opendocrouter-vs-reducto.md)\n- [Reducto API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/reducto-vs-unstructured.md)\n- [Invofox vs OpenDocRouter](https://www.anchorterminal.com/compare/invofox-vs-opendocrouter.md)\n- [Mindee API vs OpenDocRouter](https://www.anchorterminal.com/compare/mindee-vs-opendocrouter.md)\n- [Mindee API vs Unstructured API + MCP](https://www.anchorterminal.com/compare/mindee-vs-unstructured.md)\n- [OpenDocRouter vs Veryfi API + MCP](https://www.anchorterminal.com/compare/opendocrouter-vs-veryfi.md)\n- [Unstructured API + MCP vs Veryfi API + MCP](https://www.anchorterminal.com/compare/unstructured-vs-veryfi.md)\n- [Invofox vs Unstructured API + MCP](https://www.anchorterminal.com/compare/invofox-vs-unstructured.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "OpenDocRouter vs Unstructured API + MCP",
        "url": ""
      }
    ],
    "description": "OpenDocRouter scores 56.6 (C) on agent readiness against Unstructured API + MCP's 46.9 (D), and leads in 3 of 7 scored categories. Unstructured API + MCP leads on payments \u0026 pricing and maintenance \u0026 community. Both do docs parse. Category scores, facts, verdicts and agent notes…",
    "facts": [
      "OpenDocRouter C 56.6",
      "Unstructured API + MCP D 46.9",
      "scores"
    ],
    "h1": "OpenDocRouter vs Unstructured API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-opendocrouter-vs-unstructured.png",
    "path": "/compare/opendocrouter-vs-unstructured",
    "published": "2026-10-01",
    "section": "tools",
    "title": "OpenDocRouter vs Unstructured API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/opendocrouter-vs-unstructured"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 730
  },
  "version": 1
}
