{
  "data": {
    "a": {
      "slug": "mistral-ocr",
      "name": "Mistral OCR API",
      "vendor": "Mistral AI",
      "vendorUrl": "https://mistral.ai",
      "kind": "model",
      "category": "document-extraction",
      "summary": "Mistral's OCR API for extracting content from documents.",
      "url": "https://www.anchorterminal.com/tools/mistral-ocr",
      "markdownUrl": "https://www.anchorterminal.com/tools/mistral-ocr.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mistral-ocr.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mistral-ocr.json",
      "repo": "https://github.com/mistralai/client-python",
      "license": "Apache-2.0 (SDKs)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.mistral.ai/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "mistralai"
        },
        {
          "registry": "npm",
          "name": "@mistralai/mistralai"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer key, the same key as the rest of the Mistral API.",
      "pricing": "freemium",
      "pricingNotes": "OCR 4.1 is $4 per 1,000 pages, and $5 per 1,000 pages with Document AI annotations. OCR inside Libraries is $3 per 1,000 pages. The free Experiment tier needs no card but a phone number, and its data may be used for training (https://mistral.ai/pricing/api/).",
      "priceSummary": "$4 / 1k pages",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 769,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://docs.mistral.ai/studio/document-processing/basic_ocr",
      "llmsTxt": "https://docs.mistral.ai/llms.txt",
      "openapi": "https://docs.mistral.ai/openapi.yaml",
      "capabilities": [
        "docs.parse",
        "docs.ocr",
        "docs.extract",
        "docs.tables"
      ],
      "tags": [
        "official",
        "hosted",
        "model",
        "eu",
        "free-tier",
        "openapi",
        "llms-txt",
        "python",
        "typescript"
      ],
      "lastRelease": "2026-08-31",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.8,
        "grade": "C",
        "agentReady": false,
        "rank": 444,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 48,
          "payments": 40,
          "reliability": 45,
          "schema": 89,
          "security": 35,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Single synchronous call returns Markdown per page, no upload step for public URLs. OCR API at 99.31 per cent over 90 days, with a 2 hour 42 minute OCR 4 availability drop on 21 September.",
        "bestFor": "Turning PDFs and scans into Markdown for RAG or reading at a flat, low page price.",
        "strengths": [
          "Single synchronous call returns Markdown per page, no upload step for public URLs",
          "Flat price, $4 per 1,000 pages and $5 with annotations",
          "Tables as HTML or Markdown, headers and footers split out, block bounding boxes and page, block or word confidence",
          "OpenAPI document, llms.txt and Markdown guides from an EU-based vendor"
        ],
        "weaknesses": [
          "OCR API at 99.31 per cent over 90 days, with a 2 hour 42 minute OCR 4 availability drop on 21 September",
          "OCR 4.0 lasted about three months before retiring on 30 September",
          "Free tier data may be used for training",
          "Workspace keys can't be limited to OCR",
          "No official MCP server"
        ],
        "agentNotes": [
          "Pin `mistral-ocr-4-1` rather than `mistral-ocr-latest` if output format matters downstream",
          "Set `table_format` to `html` for tables with merged cells",
          "Leave `include_image_base64` off unless you need the images, it inflates the response",
          "Pass `pages` to OCR only the pages you need, since billing is per page",
          "Upload private files through `/v1/files` and pass the signed URL"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.8
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 48,
          "payments": 40,
          "reliability": 45,
          "schema": 89,
          "security": 35,
          "transparency": 57
        },
        "provenanceScore": 91
      },
      "connect": {
        "install": "pip install mistralai   # or: npm i @mistralai/mistralai",
        "http": "curl https://api.mistral.ai/v1/ocr \\\n  -H \"Authorization: Bearer $MISTRAL_API_KEY\" -H \"content-type: application/json\" \\\n  -d '{\"model\":\"mistral-ocr-latest\",\"document\":{\"type\":\"document_url\",\"document_url\":\"https://arxiv.org/pdf/2201.04234\"},\"table_format\":\"html\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/docs.parse",
        "tool": "https://letme.dev/mistral-ocr"
      },
      "sameCompany": [
        "mistral-api",
        "mistral-embeddings",
        "mistral-moderation"
      ],
      "area": "web-data",
      "unitPrices": [
        {
          "item": "OCR 4.1 (mistral-ocr-4-1)",
          "unit": "1k-pages",
          "usd": 4
        },
        {
          "item": "OCR 4.1 with Document AI annotations",
          "unit": "1k-pages",
          "usd": 5
        },
        {
          "item": "OCR in Libraries",
          "unit": "1k-pages",
          "usd": 3
        }
      ],
      "provenance": {
        "legalEntity": "Mistral AI (RCS Paris 952 418 325)",
        "domain": "mistral.ai",
        "domainRegistered": "2019-05-15",
        "endpointOnVendorDomain": true,
        "terms": "https://legal.mistral.ai/terms/commercial-terms-of-service",
        "privacy": "https://legal.mistral.ai/terms/privacy-policy",
        "statusPage": "https://status.mistral.ai",
        "changelog": "https://docs.mistral.ai/resources/changelogs",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "score": 91
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mistral-ocr.json",
      "live": {
        "slug": "mistral-ocr",
        "probe": {
          "target": "https://api.mistral.ai/v1",
          "method": "get",
          "lastAt": "2026-10-08T19:52:56.374890298Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 53,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 47,
          "p95ms24h": 75,
          "samples24h": 272,
          "samples30d": 2143,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "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": 225,
              "ok": 225
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.mistral.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T17:31:18.046141107Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "mistralai/client-python",
            "version": "v3.1.0",
            "released": "2026-10-06",
            "seenAt": "2026-10-08T16:21:25.290346885Z"
          },
          {
            "registry": "npm",
            "name": "@mistralai/mistralai",
            "version": "2.7.0",
            "seenAt": "2026-10-08T16:21:25.039729566Z"
          },
          {
            "registry": "pypi",
            "name": "mistralai",
            "version": "3.1.0",
            "released": "2026-10-06",
            "seenAt": "2026-10-08T16:21:24.927676911Z"
          }
        ],
        "githubStars": 773,
        "npmWeekly": 9359288,
        "pypiWeekly": 3274123,
        "securityTxt": {
          "url": "https://mistral.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-05-05T23:59:59.000Z",
          "checkedAt": "2026-10-08T15:38:55.944328005Z"
        },
        "llmsTxt": {
          "url": "https://docs.mistral.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:43.182723279Z"
        },
        "domain": {
          "domain": "mistral.ai",
          "registered": "2019-05-15",
          "source": "https://rdap.identitydigital.services/rdap/domain/mistral.ai",
          "checkedAt": "2026-10-04T13:08:59.683466691Z"
        },
        "updatedAt": "2026-10-08T19:52:56.374890298Z"
      }
    },
    "answer": "Mistral OCR API scores 58.8 (C) on agent readiness against OpenDocRouter's 56.6 (C), and leads in 4 of 7 scored categories. OpenDocRouter leads on security \u0026 auth and maintenance \u0026 community.",
    "b": {
      "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": 489,
        "ranked": true,
        "rankOf": 722,
        "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:52:58.046529975Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 136,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 149,
          "p95ms24h": 349,
          "samples24h": 50,
          "samples30d": 50,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            }
          ]
        },
        "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:52:58.046529975Z"
      }
    },
    "facts": [
      {
        "a": "Model API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Mistral AI",
        "b": "LlamaIndex",
        "name": "Vendor"
      },
      {
        "a": "https://api.mistral.ai/v1",
        "b": "https://www.opendocrouter.ai/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "not published",
        "b": "$0.80 per 1,000 pages",
        "name": "Price for docs parse"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0 (SDKs)",
        "b": "Proprietary service under the LlamaIndex Terms of Service with an OpenDocRouter addendum. The Python and TypeScript SDKs are MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-08-31",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "2026-09-25",
        "b": "2026-10-07",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-03",
        "b": "2024-03-30",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "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": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "769 stars",
        "b": "127 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "4.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Mistral OCR API scores 58.8 (C) on agent readiness against OpenDocRouter's 56.6 (C), and leads in 4 of 7 scored categories. OpenDocRouter leads on security \u0026 auth and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Mistral OCR API or OpenDocRouter?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Mistral OCR API and OpenDocRouter need an API key?"
      },
      {
        "answer": "Yes. Mistral OCR API has a hosted endpoint at https://api.mistral.ai/v1 and OpenDocRouter at https://www.opendocrouter.ai/v1.",
        "question": "Can an agent call Mistral OCR API and OpenDocRouter without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 40 against 30",
          "Transparency \u0026 trust, 74 against 47"
        ],
        "also": null,
        "goodFor": "Turning PDFs and scans into Markdown for RAG or reading at a flat, low page price.",
        "slug": "mistral-ocr",
        "watchFor": "OCR API at 99.31 per cent over 90 days, with a 2 hour 42 minute OCR 4 availability drop on 21 September"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 40 against 35",
          "Maintenance \u0026 community, 65 against 48"
        ],
        "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"
      }
    ],
    "job": {
      "capability": "docs.parse",
      "name": "Docs parse"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-mistral-ocr.json",
        "title": "Adobe PDF Services / PDF Extract API vs Mistral OCR API",
        "url": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-mistral-ocr"
      },
      {
        "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/extend-vs-mistral-ocr.json",
        "title": "Extend API + MCP vs Mistral OCR API",
        "url": "https://www.anchorterminal.com/compare/extend-vs-mistral-ocr"
      },
      {
        "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/llamaparse-vs-mistral-ocr.json",
        "title": "LlamaParse API + MCP vs Mistral OCR API",
        "url": "https://www.anchorterminal.com/compare/llamaparse-vs-mistral-ocr"
      },
      {
        "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/mistral-ocr-vs-nanonets.json",
        "title": "Mistral OCR API vs Nanonets API + MCP",
        "url": "https://www.anchorterminal.com/compare/mistral-ocr-vs-nanonets"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-ocr-vs-reducto.json",
        "title": "Mistral OCR API vs Reducto API + MCP",
        "url": "https://www.anchorterminal.com/compare/mistral-ocr-vs-reducto"
      },
      {
        "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/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/opendocrouter-vs-unstructured.json",
        "title": "OpenDocRouter vs Unstructured API + MCP",
        "url": "https://www.anchorterminal.com/compare/opendocrouter-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-mistral-ocr.json",
        "title": "Mindee API vs Mistral OCR API",
        "url": "https://www.anchorterminal.com/compare/mindee-vs-mistral-ocr"
      },
      {
        "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/mistral-ocr-vs-veryfi.json",
        "title": "Mistral OCR API vs Veryfi API + MCP",
        "url": "https://www.anchorterminal.com/compare/mistral-ocr-vs-veryfi"
      },
      {
        "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/invofox-vs-mistral-ocr.json",
        "title": "Invofox vs Mistral OCR API",
        "url": "https://www.anchorterminal.com/compare/invofox-vs-mistral-ocr"
      }
    ],
    "scores": [
      {
        "by": 2,
        "edge": "mistral-ocr",
        "key": "reliability",
        "mistral-ocr": 45,
        "name": "Reliability",
        "opendocrouter": 43,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "mistral-ocr",
        "key": "schema",
        "mistral-ocr": 89,
        "name": "Schema \u0026 documentation",
        "opendocrouter": 85,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "opendocrouter",
        "key": "ergonomics",
        "mistral-ocr": 83,
        "name": "Agent ergonomics",
        "opendocrouter": 84,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "opendocrouter",
        "key": "security",
        "mistral-ocr": 35,
        "name": "Security \u0026 auth",
        "opendocrouter": 40,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "mistral-ocr",
        "key": "payments",
        "mistral-ocr": 40,
        "name": "Payments \u0026 pricing",
        "opendocrouter": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 17,
        "edge": "opendocrouter",
        "key": "maintenance",
        "mistral-ocr": 48,
        "name": "Maintenance \u0026 community",
        "opendocrouter": 65,
        "weight": 7
      },
      {
        "by": 27,
        "edge": "mistral-ocr",
        "key": "transparency",
        "mistral-ocr": 74,
        "name": "Transparency \u0026 trust",
        "opendocrouter": 47,
        "weight": 7
      }
    ],
    "summary": "Mistral OCR API scores 58.8 (C) on agent readiness against OpenDocRouter's 56.6 (C), and leads in 4 of 7 scored categories. OpenDocRouter leads on security \u0026 auth and maintenance \u0026 community. Both do docs parse.",
    "verdicts": {
      "mistral-ocr": "Single synchronous call returns Markdown per page, no upload step for public URLs. OCR API at 99.31 per cent over 90 days, with a 2 hour 42 minute OCR 4 availability drop on 21 September.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/mistral-ocr-vs-opendocrouter",
    "json": "https://www.anchorterminal.com/compare/mistral-ocr-vs-opendocrouter.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/mistral-ocr-vs-opendocrouter.md",
    "slim": "https://www.anchorterminal.com/compare/mistral-ocr-vs-opendocrouter.min.md"
  },
  "markdown": "Mistral OCR API scores 58.8 (C) on agent readiness against OpenDocRouter's 56.6 (C), and leads in 4 of 7 scored categories. OpenDocRouter leads on security \u0026 auth and maintenance \u0026 community. Both do docs parse.\n\n- Mistral OCR API: grade C, 58.8/100, rank #444 of 722. Markdown https://www.anchorterminal.com/tools/mistral-ocr.md · JSON https://www.anchorterminal.com/api/v1/tools/mistral-ocr.json\n- OpenDocRouter: grade C, 56.6/100, rank #489 of 722. Markdown https://www.anchorterminal.com/tools/opendocrouter.md · JSON https://www.anchorterminal.com/api/v1/tools/opendocrouter.json\n\n## Which one, for what\n\n### Mistral OCR API (C)\n\nGood for: Turning PDFs and scans into Markdown for RAG or reading at a flat, low page price.\n\nAhead on:\n- Payments \u0026 pricing, 40 against 30\n- Transparency \u0026 trust, 74 against 47\n\nWatch for: OCR API at 99.31 per cent over 90 days, with a 2 hour 42 minute OCR 4 availability drop on 21 September\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- Security \u0026 auth, 40 against 35\n- Maintenance \u0026 community, 65 against 48\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\n## Score by category\n\n| Category | Weight | Mistral OCR API | OpenDocRouter | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 43 | Mistral OCR API +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 89 | 85 | Mistral OCR API +4 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 84 | OpenDocRouter +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 35 | 40 | OpenDocRouter +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Mistral OCR API +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 48 | 65 | OpenDocRouter +17 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 47 | Mistral OCR API +27 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **58.8 · C** | **56.6 · C** | |\n\n## Facts side by side\n\n| Fact | Mistral OCR API | OpenDocRouter |\n| --- | --- | --- |\n| Kind | Model API | HTTP API |\n| Vendor | Mistral AI | LlamaIndex |\n| Hosted endpoint | `https://api.mistral.ai/v1` | `https://www.opendocrouter.ai/v1` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Pay per use |\n| Price for docs parse | not published | $0.80 per 1,000 pages |\n| x402 | no | no |\n| Licence | Apache-2.0 (SDKs) | Proprietary service under the LlamaIndex Terms of Service with an OpenDocRouter addendum. The Python and TypeScript SDKs are MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-08-31 | 2026-10-07 |\n| Terms last updated | 2026-09-25 | 2026-10-07 |\n| Privacy policy last updated | 2026-09-03 | 2024-03-30 |\n| Customer content may train models | yes, with an opt-out | 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 | yes |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 769 stars | 127 PyPI/wk |\n| Agent reviews | 4.5/5 (2) | none |\n\n## Verdicts\n\n**Mistral OCR API.** Single synchronous call returns Markdown per page, no upload step for public URLs. OCR API at 99.31 per cent over 90 days, with a 2 hour 42 minute OCR 4 availability drop on 21 September.\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## Before you call either\n\n### Mistral OCR API\n\n1. Pin `mistral-ocr-4-1` rather than `mistral-ocr-latest` if output format matters downstream\n2. Set `table_format` to `html` for tables with merged cells\n3. Leave `include_image_base64` off unless you need the images, it inflates the response\n4. Pass `pages` to OCR only the pages you need, since billing is per page\n5. Upload private files through `/v1/files` and pass the signed URL\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## Questions\n\n### Which is better for AI agents, Mistral OCR API or OpenDocRouter?\n\nMistral OCR API scores 58.8 (C) on agent readiness against OpenDocRouter's 56.6 (C), and leads in 4 of 7 scored categories. OpenDocRouter leads on security \u0026 auth and maintenance \u0026 community.\n\n### Do Mistral OCR API and OpenDocRouter need an API key?\n\nBoth need an API key.\n\n### Can an agent call Mistral OCR API and OpenDocRouter without installing anything?\n\nYes. Mistral OCR API has a hosted endpoint at https://api.mistral.ai/v1 and OpenDocRouter at https://www.opendocrouter.ai/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/mistral-ocr-vs-opendocrouter.json, and with the fewest tokens: https://www.anchorterminal.com/compare/mistral-ocr-vs-opendocrouter.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"mistral-ocr\", \"b\": \"opendocrouter\"}`. From a terminal: `anchor compare mistral-ocr opendocrouter`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/mistral-ocr.json and https://www.anchorterminal.com/api/v1/tools/opendocrouter.json\n\n## Other comparisons with Mistral OCR API or OpenDocRouter\n\n- [Adobe PDF Services / PDF Extract API vs Mistral OCR API](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-mistral-ocr.md)\n- [Adobe PDF Services / PDF Extract API vs OpenDocRouter](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-opendocrouter.md)\n- [Extend API + MCP vs Mistral OCR API](https://www.anchorterminal.com/compare/extend-vs-mistral-ocr.md)\n- [Extend API + MCP vs OpenDocRouter](https://www.anchorterminal.com/compare/extend-vs-opendocrouter.md)\n- [LlamaParse API + MCP vs Mistral OCR API](https://www.anchorterminal.com/compare/llamaparse-vs-mistral-ocr.md)\n- [LlamaParse API + MCP vs OpenDocRouter](https://www.anchorterminal.com/compare/llamaparse-vs-opendocrouter.md)\n- [Mistral OCR API vs Nanonets API + MCP](https://www.anchorterminal.com/compare/mistral-ocr-vs-nanonets.md)\n- [Mistral OCR API vs Reducto API + MCP](https://www.anchorterminal.com/compare/mistral-ocr-vs-reducto.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- [OpenDocRouter vs Reducto API + MCP](https://www.anchorterminal.com/compare/opendocrouter-vs-reducto.md)\n- [OpenDocRouter vs Unstructured API + MCP](https://www.anchorterminal.com/compare/opendocrouter-vs-unstructured.md)\n- [Invofox vs OpenDocRouter](https://www.anchorterminal.com/compare/invofox-vs-opendocrouter.md)\n- [Mindee API vs Mistral OCR API](https://www.anchorterminal.com/compare/mindee-vs-mistral-ocr.md)\n- [Mindee API vs OpenDocRouter](https://www.anchorterminal.com/compare/mindee-vs-opendocrouter.md)\n- [Mistral OCR API vs Veryfi API + MCP](https://www.anchorterminal.com/compare/mistral-ocr-vs-veryfi.md)\n- [OpenDocRouter vs Veryfi API + MCP](https://www.anchorterminal.com/compare/opendocrouter-vs-veryfi.md)\n- [Invofox vs Mistral OCR API](https://www.anchorterminal.com/compare/invofox-vs-mistral-ocr.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": "Mistral OCR API vs OpenDocRouter",
        "url": ""
      }
    ],
    "description": "Mistral OCR API scores 58.8 (C) on agent readiness against OpenDocRouter's 56.6 (C), and leads in 4 of 7 scored categories. OpenDocRouter leads on security \u0026 auth and maintenance \u0026 community. Both do docs parse. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Mistral OCR API C 58.8",
      "OpenDocRouter C 56.6",
      "scores"
    ],
    "h1": "Mistral OCR API vs OpenDocRouter",
    "image": "https://www.anchorterminal.com/assets/og/compare-mistral-ocr-vs-opendocrouter.png",
    "path": "/compare/mistral-ocr-vs-opendocrouter",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Mistral OCR API vs OpenDocRouter for AI agents, C 58.8 vs C 56.6",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/mistral-ocr-vs-opendocrouter"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 680
  },
  "version": 1
}
