{
  "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": 59,
        "grade": "C",
        "agentReady": false,
        "rank": 271,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 48,
          "payments": 40,
          "reliability": 45,
          "schema": 89,
          "security": 35,
          "transparency": 77
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 48,
          "payments": 40,
          "reliability": 45,
          "schema": 89,
          "security": 35,
          "transparency": 57
        },
        "provenanceScore": 96
      },
      "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": 96
      },
      "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-05T01:43:41.546603391Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 66,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 41,
          "p95ms24h": 70,
          "samples24h": 272,
          "samples30d": 1122,
          "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": 20,
              "ok": 20
            }
          ]
        },
        "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.0.0",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:33:34.980941253Z"
          },
          {
            "registry": "npm",
            "name": "@mistralai/mistralai",
            "version": "2.7.0",
            "seenAt": "2026-10-04T16:33:34.720358853Z"
          },
          {
            "registry": "pypi",
            "name": "mistralai",
            "version": "3.0.0",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:33:34.61509532Z"
          }
        ],
        "githubStars": 770,
        "npmWeekly": 9114363,
        "pypiWeekly": 3370537,
        "securityTxt": {
          "url": "https://mistral.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-05-05T23:59:59.000Z",
          "checkedAt": "2026-10-04T15:15:48.706102345Z"
        },
        "llmsTxt": {
          "url": "https://docs.mistral.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:04.898854598Z"
        },
        "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-05T01:43:41.546603391Z"
      }
    },
    "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": 47,
        "grade": "D",
        "agentReady": false,
        "rank": 390,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 8,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 58,
          "maintenance": 80,
          "payments": 40,
          "reliability": 27,
          "schema": 51,
          "security": 42,
          "transparency": 52
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 47
          }
        ],
        "editorialScores": {
          "ergonomics": 58,
          "maintenance": 80,
          "payments": 40,
          "reliability": 27,
          "schema": 51,
          "security": 42,
          "transparency": 38
        },
        "provenanceScore": 65
      },
      "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": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/unstructured.json",
      "live": {
        "slug": "unstructured",
        "probe": {
          "target": "https://transform.unstructured.io/api/v2",
          "method": "get",
          "lastAt": "2026-10-05T01:43:47.413002354Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 591,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.91,
          "p50ms24h": 589,
          "p95ms24h": 633,
          "samples24h": 272,
          "samples30d": 1122,
          "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": 20,
              "ok": 20
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "Unstructured-IO/unstructured",
            "version": "0.27.10",
            "released": "2026-09-27",
            "seenAt": "2026-10-04T16:42:55.095805963Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.unstructured/transform",
            "version": "0.7.2",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "unstructured-transform-client",
            "version": "0.18.25",
            "seenAt": "2026-10-04T16:42:51.194574206Z"
          },
          {
            "registry": "pypi",
            "name": "unstructured",
            "version": "0.27.10",
            "released": "2026-09-27",
            "seenAt": "2026-10-04T16:42:51.901885429Z"
          },
          {
            "registry": "pypi",
            "name": "unstructured-client",
            "version": "0.46.2",
            "released": "2026-08-24",
            "seenAt": "2026-10-04T16:42:53.100589618Z"
          },
          {
            "registry": "pypi",
            "name": "unstructured-transform-client",
            "version": "0.18.25",
            "released": "2026-10-04",
            "seenAt": "2026-10-04T16:42:51.085774814Z"
          }
        ],
        "githubStars": 15528,
        "npmWeekly": 738,
        "pypiWeekly": 326,
        "securityTxt": {
          "url": "https://unstructured.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:45.908901563Z"
        },
        "llmsTxt": {
          "url": "https://docs.unstructured.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:19.765975201Z"
        },
        "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-04T15:47:21.332820363Z",
            "changedAt": "2026-10-04T15:47:21.332820363Z",
            "fingerprint": "e35794a07326"
          },
          {
            "url": "https://unstructured.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:39.387615056Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d6877dc0b772"
          },
          {
            "url": "https://unstructured.io/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:41.815977787Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1bd0fb908474"
          },
          {
            "url": "https://unstructured.io/terms-and-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:43.879909961Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "11aaded220fc"
          }
        ],
        "updatedAt": "2026-10-05T01:43:47.413002354Z"
      }
    },
    "summary": "Mistral OCR API has a score of 59 (C) against Unstructured API + MCP's 47 (D). Both do docs parse. The largest gap is schema \u0026 documentation, 38 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/mistral-ocr-vs-unstructured",
    "json": "https://www.anchorterminal.com/compare/mistral-ocr-vs-unstructured.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/mistral-ocr-vs-unstructured.md",
    "slim": "https://www.anchorterminal.com/compare/mistral-ocr-vs-unstructured.min.md"
  },
  "markdown": "Mistral OCR API has a score of 59 (C) against Unstructured API + MCP's 47 (D). Both do docs parse. The largest gap is schema \u0026 documentation, 38 points.\n\n- Mistral OCR API: grade C, 59/100, rank #271 of 452. Markdown https://www.anchorterminal.com/tools/mistral-ocr.md · JSON https://www.anchorterminal.com/api/v1/tools/mistral-ocr.json\n- Unstructured API + MCP: grade D, 47/100, rank #390 of 452. 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\nPick Mistral OCR API for reliability (+18), schema \u0026 documentation (+38), agent ergonomics (+25), transparency \u0026 trust (+25).\n\nPick Unstructured API + MCP for security \u0026 auth (+7), maintenance \u0026 community (+32).\n\n## Score by category\n\n| Category | Weight | Mistral OCR API | Unstructured API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 27 | Mistral OCR API +18 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 89 | 51 | Mistral OCR API +38 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 58 | Mistral OCR API +25 |\n| Security \u0026 auth | 14% (17.5 this run) | 35 | 42 | Unstructured API + MCP +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 40 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 48 | 80 | Unstructured API + MCP +32 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 77 | 52 | Mistral OCR API +25 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **59 · C** | **47 · D** | |\n\n## Facts side by side\n\n| Fact | Mistral OCR API | Unstructured API + MCP |\n| --- | --- | --- |\n| Kind | Model API | HTTP API |\n| Vendor | Mistral AI | Unstructured |\n| Hosted endpoint | `https://api.mistral.ai/v1` | `https://transform.unstructured.io/api/v2` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | Apache-2.0 (SDKs) | Apache-2.0 |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.unstructured/transform` |\n| Last release | 2026-08-31 | 2026-09-30 |\n| Popularity | 769 stars | 16k stars, 385 npm/wk, 612k PyPI/wk |\n| Agent reviews | 4.5/5 (2) | 2.5/5 (2) |\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**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### 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### 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## Other comparisons with Mistral OCR API or Unstructured API + MCP\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 Unstructured API + MCP](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-unstructured.md)\n- [Extend API + MCP vs Mistral OCR API](https://www.anchorterminal.com/compare/extend-vs-mistral-ocr.md)\n- [Extend API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/extend-vs-unstructured.md)\n- [LlamaParse API + MCP vs Mistral OCR API](https://www.anchorterminal.com/compare/llamaparse-vs-mistral-ocr.md)\n- [LlamaParse API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/llamaparse-vs-unstructured.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- [Nanonets API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/nanonets-vs-unstructured.md)\n- [Reducto API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/reducto-vs-unstructured.md)\n- [Mindee API vs Mistral OCR API](https://www.anchorterminal.com/compare/mindee-vs-mistral-ocr.md)\n- [Mindee API vs Unstructured API + MCP](https://www.anchorterminal.com/compare/mindee-vs-unstructured.md)\n- [Mistral OCR API vs Veryfi API + MCP](https://www.anchorterminal.com/compare/mistral-ocr-vs-veryfi.md)\n- [Unstructured API + MCP vs Veryfi API + MCP](https://www.anchorterminal.com/compare/unstructured-vs-veryfi.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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 Unstructured API + MCP",
        "url": ""
      }
    ],
    "description": "Mistral OCR API has a score of 59 (C) against Unstructured API + MCP's 47 (D). Both do docs parse. The largest gap is schema \u0026 documentation, 38 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Mistral OCR API C 59",
      "Unstructured API + MCP D 47",
      "scores"
    ],
    "h1": "Mistral OCR API vs Unstructured API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-mistral-ocr-vs-unstructured.png",
    "path": "/compare/mistral-ocr-vs-unstructured",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Mistral OCR API vs Unstructured API + MCP for AI agents, C 59 vs D 47",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/mistral-ocr-vs-unstructured"
  },
  "tokens": {
    "markdown": 1600,
    "slim": 380
  },
  "version": 1
}
