{
  "data": {
    "category": {
      "area": "web-data",
      "capabilities": [
        "docs.parse",
        "docs.ocr",
        "docs.extract",
        "docs.tables",
        "docs.chunk"
      ],
      "description": "APIs that turn scans, PDFs, invoices and forms into text, tables and structured fields an agent can use. Compared on text accuracy, table structure, field extraction, page references, processing time and price per page.",
      "indexed": [
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/diemdesk-mcp.json",
          "kind": "mcp",
          "name": "diemdesk.com MCP server",
          "slug": "diemdesk-mcp",
          "url": "https://www.anchorterminal.com/tools/diemdesk-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nestr-mcp.json",
          "kind": "mcp",
          "name": "nestr.io MCP server",
          "slug": "nestr-mcp",
          "url": "https://www.anchorterminal.com/tools/nestr-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/acjlabs-receipt-extraction.json",
          "kind": "mcp",
          "name": "Receipt Extraction",
          "slug": "acjlabs-receipt-extraction",
          "url": "https://www.anchorterminal.com/tools/acjlabs-receipt-extraction"
        }
      ],
      "indexedCount": 3,
      "json": "https://www.anchorterminal.com/categories/document-extraction.json",
      "name": "Document parsing \u0026 extraction",
      "slug": "document-extraction",
      "test": "The same scans, invoices, tables and long PDFs through every API. We score text accuracy, table structure, field extraction, page references, processing time and price per page.",
      "title": "Document parsing, OCR and extraction APIs for AI agents",
      "toolCount": 10,
      "tools": [
        "reducto",
        "extend",
        "mindee",
        "llamaparse",
        "mistral-ocr",
        "adobe-pdf-extract",
        "veryfi",
        "unstructured",
        "nanonets",
        "pdf-co"
      ],
      "url": "https://www.anchorterminal.com/categories/document-extraction"
    },
    "tools": [
      {
        "slug": "reducto",
        "name": "Reducto API + MCP",
        "vendor": "Reducto",
        "vendorUrl": "https://reducto.ai",
        "kind": "http-api",
        "category": "document-extraction",
        "summary": "Hosted parse, extract, split, classify and edit endpoints for PDFs, scans, spreadsheets and Office files, built on its own r-1 parsing model.",
        "url": "https://www.anchorterminal.com/tools/reducto",
        "markdownUrl": "https://www.anchorterminal.com/tools/reducto.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/reducto.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/reducto.json",
        "transports": [
          "http",
          "streamable-http",
          "stdio"
        ],
        "remoteUrl": "https://platform.reducto.ai",
        "packages": [
          {
            "registry": "pypi",
            "name": "reductoai"
          },
          {
            "registry": "npm",
            "name": "reductoai"
          },
          {
            "registry": "pypi",
            "name": "mcp-server-reducto"
          }
        ],
        "auth": "api-key",
        "authNotes": "Bearer API key from Reducto Studio in the Authorization header. The hosted MCP at mcp.reducto.ai takes the same key as a bearer header. The local MCP reads it from ~/.reducto/config.yaml after a device-code login, or from REDUCTO_API_KEY.",
        "pricing": "usage",
        "pricingNotes": "Standard is pay as you go with $150 of free usage (15,000 credits) to start. List prices from 2026-09-01 per 1,000 pages are r-1 Parse $10, Extract $20 (parsing included), Deep Extract $40, Split $20, Deep Split $40, Classify $7.50 and Edit $60 ($15 for prefilled pages). Batch queue jobs get 20% off. Growth and Enterprise are custom with volume discounts (https://reducto.ai/pricing).",
        "priceSummary": "$10 / 1k pages",
        "where": "both",
        "x402": {
          "level": "no",
          "evidence": "No x402 or per-call crypto payment in docs, pricing or OpenAPI spec (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": 9,
        "popularity": {
          "githubStars": null,
          "npmWeekly": 341923,
          "pypiWeekly": 1091084,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.reducto.ai",
        "llmsTxt": "https://docs.reducto.ai/llms.txt",
        "openapi": "https://docs.reducto.ai/openapi.json",
        "capabilities": [
          "docs.parse",
          "docs.ocr",
          "docs.extract",
          "docs.tables",
          "docs.chunk",
          "docs.classify"
        ],
        "tags": [
          "hosted",
          "mcp",
          "llms-txt",
          "openapi",
          "python",
          "typescript",
          "webhooks",
          "async-jobs",
          "enterprise",
          "closed-source"
        ],
        "lastRelease": "2026-09-11",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 63.2,
          "grade": "B",
          "agentReady": false,
          "rank": 207,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 1,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 84,
            "maintenance": 80,
            "payments": 30,
            "reliability": 72,
            "schema": 80,
            "security": 35,
            "transparency": 60
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Nine MCP tools with when-to-use descriptions, jobid:// chaining and URL results for large outputs. Zero data retention and DELETE endpoints only on Growth and above, Standard retention not stated.",
          "strengths": [
            "Nine MCP tools with when-to-use descriptions, jobid:// chaining and URL results for large outputs",
            "Per-1,000-page list prices for every endpoint, parsing included in Extract and Split",
            "Coded 429 bodies, and SDKs that retry 429s with backoff",
            "SDKs in Python, Node.js and Go with CI, end-to-end and spec-drift workflows",
            "incident.io status page with per-product components and history"
          ],
          "weaknesses": [
            "Zero data retention and DELETE endpoints only on Growth and above, Standard retention not stated",
            "No public changelog for the hosted API",
            "11 incidents since 23 July, mostly latency, with Parse degraded on 1 October",
            "MCP server sends usage telemetry by default",
            "Plain API keys with no scopes, and no annotations on tools that start billable jobs"
          ],
          "agentNotes": [
            "Use `/parse_async` or `/extract_async` with a webhook for anything long; sync calls time out at 900 seconds",
            "Pass `jobid://\u003cjob_id\u003e` from a parse into extract or split so you don't pay to parse twice",
            "Call `get_job` when a tool returns a URL result instead of reading fields from the truncated reply",
            "The hosted MCP can't read local files; run `uvx mcp-server-reducto` when the agent needs to upload from disk",
            "Set `REDUCTO_TELEMETRY=0` in the local server's environment to turn off usage telemetry"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 4,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "B",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 63.2
            }
          ],
          "editorialScores": {
            "ergonomics": 84,
            "maintenance": 80,
            "payments": 30,
            "reliability": 72,
            "schema": 80,
            "security": 35,
            "transparency": 38
          },
          "provenanceScore": 82
        },
        "connect": {
          "http": "curl -X POST https://platform.reducto.ai/parse -H \"Authorization: Bearer $REDUCTO_API_KEY\" \\\n  -H \"Content-Type: application/json\" -d '{\"input\":\"https://cdn.reducto.ai/samples/fidelity-example.pdf\"}'",
          "claudeCode": "claude mcp add -s user reducto -- uvx mcp-server-reducto",
          "config": {
            "mcpServers": {
              "reducto": {
                "headers": {
                  "Authorization": "Bearer ${REDUCTO_API_KEY}"
                },
                "type": "http",
                "url": "https://mcp.reducto.ai/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/docs.parse",
          "tool": "https://letme.dev/reducto"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "r-1 Parse",
            "unit": "1k-pages",
            "usd": 10,
            "note": "Standard list price from 2026-09-01"
          },
          {
            "item": "Extract",
            "unit": "1k-pages",
            "usd": 20,
            "note": "parsing included"
          },
          {
            "item": "Deep Extract",
            "unit": "1k-pages",
            "usd": 40,
            "note": "parsing included"
          },
          {
            "item": "Split",
            "unit": "1k-pages",
            "usd": 20,
            "note": "parsing included"
          },
          {
            "item": "Classify",
            "unit": "1k-pages",
            "usd": 7.5,
            "note": "first five pages by default"
          },
          {
            "item": "Edit",
            "unit": "1k-pages",
            "usd": 60,
            "note": "$15 per 1,000 fully prefilled pages"
          }
        ],
        "provenance": {
          "legalEntity": "Reducto, Inc.",
          "domain": "reducto.ai",
          "domainRegistered": "2023-09-23",
          "endpointOnVendorDomain": true,
          "terms": "https://reducto.ai/terms",
          "privacy": "https://reducto.ai/privacy",
          "statusPage": "https://status.reducto.ai",
          "changelog": "",
          "securityTxt": "valid",
          "checked": "2026-09-30",
          "notes": [
            "The docs changelog at docs.reducto.ai/changelog is the on-prem changelog and sits behind a password"
          ],
          "score": 82
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/reducto.json",
        "live": {
          "slug": "reducto",
          "probe": {
            "target": "https://platform.reducto.ai",
            "method": "get",
            "lastAt": "2026-10-04T21:48:35.00086326Z",
            "lastOk": true,
            "lastStatus": 403,
            "lastMs": 467,
            "lastNote": "asks for credentials",
            "authRequired": true,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 444,
            "p95ms24h": 473,
            "samples24h": 272,
            "samples30d": 1077,
            "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": 247,
                "ok": 247
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.reducto.ai",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T21:40:25.932250157Z"
          },
          "versions": [
            {
              "registry": "npm",
              "name": "reductoai",
              "version": "0.18.0",
              "seenAt": "2026-10-04T16:37:59.124549444Z"
            },
            {
              "registry": "pypi",
              "name": "mcp-server-reducto",
              "version": "0.3.0",
              "released": "2026-05-02",
              "seenAt": "2026-10-04T16:37:59.938601289Z"
            },
            {
              "registry": "pypi",
              "name": "reductoai",
              "version": "0.24.0",
              "released": "2026-09-08",
              "seenAt": "2026-10-04T16:37:58.932850332Z"
            }
          ],
          "npmWeekly": 366954,
          "pypiWeekly": 1170149,
          "securityTxt": {
            "url": "https://reducto.ai/.well-known/security.txt",
            "state": "valid",
            "expires": "2027-07-01T00:00:00.000Z",
            "checkedAt": "2026-10-04T15:15:42.237208539Z"
          },
          "llmsTxt": {
            "url": "https://docs.reducto.ai/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:09.631507178Z"
          },
          "domain": {
            "domain": "reducto.ai",
            "registered": "2023-09-23",
            "source": "https://rdap.identitydigital.services/rdap/domain/reducto.ai",
            "checkedAt": "2026-10-04T13:03:43.478445759Z"
          },
          "pages": [
            {
              "url": "https://docs.reducto.ai/reference/pricing-migration",
              "kind": "deprecations",
              "status": 200,
              "checkedAt": "2026-10-04T15:43:56.331773788Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "a2de88ed18a1"
            },
            {
              "url": "https://reducto.ai/pricing",
              "kind": "pricing",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:14.391287143Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "f368ce1dcb67"
            },
            {
              "url": "https://reducto.ai/privacy",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:16.637276588Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "b1672ef84df9"
            },
            {
              "url": "https://reducto.ai/terms",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:18.597204308Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "b45eade5b5e0"
            }
          ],
          "updatedAt": "2026-10-04T21:48:35.00086326Z"
        }
      },
      {
        "slug": "extend",
        "name": "Extend API + MCP",
        "vendor": "Extend",
        "vendorUrl": "https://www.extend.ai",
        "kind": "http-api",
        "category": "document-extraction",
        "summary": "Hosted parse, extract, classify, split and PDF form-fill APIs with versioned processors, evaluation sets and workflows.",
        "url": "https://www.anchorterminal.com/tools/extend",
        "markdownUrl": "https://www.anchorterminal.com/tools/extend.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/extend.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/extend.json",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://api.extend.ai",
        "packages": [
          {
            "registry": "pypi",
            "name": "extend-ai"
          },
          {
            "registry": "npm",
            "name": "extend-ai"
          }
        ],
        "auth": "mixed",
        "authNotes": "Bearer API key from the dashboard plus an x-extend-api-version header (current 2026-02-09). Test-mode keys hit an isolated environment. The hosted MCP uses OAuth, and the consent screen picks which workspaces and whether test, production or both are reachable.",
        "pricing": "usage",
        "pricingNotes": "Pay as you go is self-serve with 10,000 free credits, then $0.0125 a credit, no contract or minimum. Scale is $500 a month with 50,000 credits and $0.01 a credit after that. Enterprise is custom. Performance modes cost 2 credits a page for Parse and Split, 3 for Extract and 1 for Classify. Light modes cost 0.5 for Parse and Split, 0.7 for Extract and 0.3 for Classify.Parse runs automatically before Extract, Split and Classify and is billed on top, so Performance Extract is 5 credits a page all in. CSV, plain text, RTF, Markdown and XML parse free, and advanced Excel is 3 credits per 1,000 cells. Review Agent adds 1 credit a page on extraction and 0.5 on classification, agentic text or table correction 1 each when triggered (https://docs.extend.ai/general/how-credits-work).",
        "priceSummary": "$25 / 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": 86,
        "popularity": {
          "githubStars": null,
          "npmWeekly": 124329,
          "pypiWeekly": 59109,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.extend.ai",
        "llmsTxt": "https://docs.extend.ai/llms.txt",
        "openapi": "https://docs.extend.ai/openapi/api-reference.json",
        "registryName": "ai.extend/extend",
        "capabilities": [
          "docs.parse",
          "docs.ocr",
          "docs.extract",
          "docs.tables",
          "docs.chunk",
          "docs.classify"
        ],
        "tags": [
          "hosted",
          "mcp",
          "llms-txt",
          "openapi",
          "python",
          "typescript",
          "webhooks",
          "async-jobs",
          "enterprise",
          "closed-source"
        ],
        "lastRelease": "2026-09-25",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 62.9,
          "grade": "B",
          "agentReady": false,
          "rank": 211,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 2,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 68,
            "maintenance": 82,
            "payments": 30,
            "reliability": 67,
            "schema": 87,
            "security": 43,
            "transparency": 67
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Hosted MCP with OAuth scoped to workspaces and to test or production, and a tools filter with nine groups. Parse is billed on top of Extract, Split and Classify, so Performance Extract costs 5 credits a page.",
          "strengths": [
            "Hosted MCP with OAuth scoped to workspaces and to test or production, and a tools filter with nine groups",
            "Errors carry code, retryable, requestId and a docs link, and 429 guidance names Retry-After and jittered backoff",
            "Published credit prices and per-plan rate limits, 10,000 free credits to start",
            "OpenAPI spec, llms.txt and dated API versions with migration guides",
            "SDK releases every two to three weeks, TypeScript v2.3.0 on 2026-09-25"
          ],
          "weaknesses": [
            "Parse is billed on top of Extract, Split and Classify, so Performance Extract costs 5 credits a page",
            "MCP loads every tool unless you pass ?tools=, including write and delete tools with no documented confirmation",
            "Three major-impact incidents on the status page since 25 August",
            "No security.txt, bug bounty, subprocessor list or published default retention period",
            "No published support period for older API versions"
          ],
          "agentNotes": [
            "Connect with `https://mcp.extend.ai/mcp?tools=parse,extract,files` to keep the schema small",
            "Every MCP call names a workspace and TEST or PRODUCTION; start in TEST",
            "Read `retryable` on an error before retrying, and honour `Retry-After` on a 429",
            "Budget 5 credits a page for Performance Extract, since the parse step is billed on top",
            "Sync `POST /extract` blocks up to 5 minutes; use `/extract_runs` and poll or a webhook for long files"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 4,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "B",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 62.9
            }
          ],
          "editorialScores": {
            "ergonomics": 68,
            "maintenance": 82,
            "payments": 30,
            "reliability": 67,
            "schema": 87,
            "security": 43,
            "transparency": 48
          },
          "provenanceScore": 86
        },
        "connect": {
          "http": "curl -X POST https://api.extend.ai/parse -H \"Authorization: Bearer $EXTEND_API_KEY\" \\\n  -H \"x-extend-api-version: 2026-02-09\" -H \"Content-Type: application/json\" \\\n  -d '{\"file\":{\"url\":\"https://extend-public-files.s3.us-east-2.amazonaws.com/bank_statement_example.pdf\"}}'",
          "claudeCode": "claude mcp add --transport http extend https://mcp.extend.ai/mcp"
        },
        "letme": {
          "capability": "https://letme.dev/docs.parse",
          "tool": "https://letme.dev/extend"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Parse (Performance)",
            "unit": "1k-pages",
            "usd": 25,
            "note": "2 credits a page on pay as you go; $20 on Scale"
          },
          {
            "item": "Parse (Light)",
            "unit": "1k-pages",
            "usd": 6.25,
            "note": "0.5 credits a page on pay as you go"
          },
          {
            "item": "Extract (Performance)",
            "unit": "1k-pages",
            "usd": 62.5,
            "note": "3 credits extract plus 2 for the automatic parse; $50 on Scale"
          },
          {
            "item": "Split (Performance)",
            "unit": "1k-pages",
            "usd": 50,
            "note": "2 credits split plus 2 for the automatic parse"
          },
          {
            "item": "Classify (Performance)",
            "unit": "1k-pages",
            "usd": 37.5,
            "note": "1 credit classify plus 2 for the automatic parse"
          },
          {
            "item": "Scale plan",
            "unit": "month",
            "usd": 500,
            "note": "50,000 credits included, $0.01 a credit after"
          }
        ],
        "provenance": {
          "legalEntity": "CrowdView Inc. dba Extend",
          "domain": "extend.ai",
          "domainRegistered": "2017-12-15",
          "endpointOnVendorDomain": true,
          "terms": "https://www.extend.ai/website-terms-of-use",
          "privacy": "https://www.extend.ai/privacy",
          "statusPage": "https://status.extend.ai",
          "changelog": "https://docs.extend.ai/changelog",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "The domain predates the product; extend.ai was registered in 2017"
          ],
          "score": 86
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/extend.json",
        "live": {
          "slug": "extend",
          "probe": {
            "target": "https://api.extend.ai",
            "method": "get",
            "lastAt": "2026-10-04T21:48:27.284192633Z",
            "lastOk": true,
            "lastStatus": 401,
            "lastMs": 470,
            "lastNote": "asks for credentials",
            "authRequired": true,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 389,
            "p95ms24h": 438,
            "samples24h": 272,
            "samples30d": 1077,
            "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": 247,
                "ok": 247
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.extend.ai",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T21:40:01.670361603Z"
          },
          "versions": [
            {
              "registry": "mcp-registry",
              "name": "ai.extend/extend",
              "version": "1.0.0",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "extend-ai",
              "version": "2.3.0",
              "seenAt": "2026-10-04T16:26:51.295781701Z"
            },
            {
              "registry": "pypi",
              "name": "extend-ai",
              "version": "1.19.0",
              "released": "2026-08-27",
              "seenAt": "2026-10-04T16:26:51.111222887Z"
            }
          ],
          "npmWeekly": 154645,
          "pypiWeekly": 57474,
          "securityTxt": {
            "url": "https://extend.ai/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:51.148965224Z"
          },
          "llmsTxt": {
            "url": "https://docs.extend.ai/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:17:45.655916707Z"
          },
          "domain": {
            "domain": "extend.ai",
            "registered": "2017-12-15",
            "source": "https://rdap.identitydigital.services/rdap/domain/extend.ai",
            "checkedAt": "2026-10-04T13:05:28.720123243Z"
          },
          "pages": [
            {
              "url": "https://docs.extend.ai/changelog",
              "kind": "changelog",
              "status": 304,
              "checkedAt": "2026-10-04T15:43:37.131440446Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "7df22a9baccf"
            },
            {
              "url": "https://www.extend.ai/pricing",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-01T13:17:11.851015067Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "f871dbf62d7d"
            },
            {
              "url": "https://www.extend.ai/privacy",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:50:13.868773706Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "a722541586a5"
            },
            {
              "url": "https://www.extend.ai/website-terms-of-use",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:50:16.032227293Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "6af50cfb7dde"
            }
          ],
          "updatedAt": "2026-10-04T21:48:27.284192633Z"
        }
      },
      {
        "slug": "mindee",
        "name": "Mindee API",
        "vendor": "Mindee",
        "vendorUrl": "https://www.mindee.com",
        "kind": "http-api",
        "category": "document-extraction",
        "summary": "Hosted extraction, classification, split, crop and raw-text OCR models that you define in the Mindee platform, then call by model ID through an async REST API.",
        "url": "https://www.anchorterminal.com/tools/mindee",
        "markdownUrl": "https://www.anchorterminal.com/tools/mindee.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mindee.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mindee.json",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://api-v2.mindee.net/v2",
        "packages": [
          {
            "registry": "pypi",
            "name": "mindee"
          },
          {
            "registry": "npm",
            "name": "mindee"
          }
        ],
        "auth": "api-key",
        "authNotes": "API key sent as the raw Authorization header value (no Bearer prefix). Each request also names a model_id created in the Mindee platform.",
        "pricing": "paid",
        "pricingNotes": "14-day free trial, card requirement not stated on the pricing page. Starter is 44 a month billed annually (529 a year) with one seat, Pro 116 a month billed annually (1,393 a year) with unlimited seats, processing localisation and live chat. Credit options run from 6,000 to 300,000, shown at about 0.044 a credit at 6,000. One page is 1 credit, 1.5 with confidence scores and 0.25 for utilities. Overage is charged at the plan's unit rate plus 20%, and unused credits don't carry over. Enterprise starts at 500,000 credits a year. The pricing page showed us dollars and the docs list the same figures in euros (https://www.mindee.com/pricing).",
        "priceSummary": "$44 / mo",
        "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": 42,
          "npmWeekly": 33264,
          "pypiWeekly": 5513,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.mindee.com",
        "llmsTxt": "https://docs.mindee.com/llms.txt",
        "openapi": "https://api-v2.mindee.net/openapi.json",
        "capabilities": [
          "docs.ocr",
          "docs.extract",
          "docs.classify"
        ],
        "tags": [
          "hosted",
          "llms-txt",
          "openapi",
          "python",
          "typescript",
          "webhooks",
          "async-jobs",
          "enterprise",
          "closed-source"
        ],
        "lastRelease": "2026-09-30",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 61.5,
          "grade": "C",
          "agentReady": false,
          "rank": 227,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 3,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 68,
            "maintenance": 85,
            "payments": 25,
            "reliability": 65,
            "schema": 86,
            "security": 40,
            "transparency": 67
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Extracted data kept 12 hours by default (1 to 24 configurable), deletable on fetch, source files never stored. Every call needs a model_id created in the web platform first.",
          "strengths": [
            "Extracted data kept 12 hours by default (1 to 24 configurable), deletable on fetch, source files never stored",
            "EU or US processing selectable, and SOC 2 Type II per the docs",
            "Problem-details errors with 15 documented cases",
            "Published rate limits, 200 enqueue and 1,200 polling requests a minute",
            "Python SDK v5.4.0 on 2026-09-30 and Node.js v5.10.0 on 2026-09-23, both with test workflows"
          ],
          "weaknesses": [
            "Every call needs a model_id created in the web platform first",
            "No free tier after the 14-day trial, and the pricing page's platform fee and currency were unclear to us",
            "Organisation-wide keys that never expire and reach every model",
            "No official MCP server",
            "No Retry-After on 429 and no idempotency key"
          ],
          "agentNotes": [
            "Create the model in the Mindee app and store its `model_id`; the API can't create one for you",
            "Enqueue returns 202; poll the job or use a webhook, and keep polling under 1,200 a minute",
            "Send `Authorization: $MINDEE_API_KEY` with no Bearer prefix",
            "Turn on confidence scores only when needed, since they cost 1.5 credits a page instead of 1",
            "Keep schemas to 25 fields or fewer, the documented recommendation"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "C",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 61.5
            }
          ],
          "editorialScores": {
            "ergonomics": 68,
            "maintenance": 85,
            "payments": 25,
            "reliability": 65,
            "schema": 86,
            "security": 40,
            "transparency": 58
          },
          "provenanceScore": 75
        },
        "connect": {
          "install": "pip install mindee   # or: npm i mindee",
          "http": "curl -X POST https://api-v2.mindee.net/v2/products/extraction/enqueue -H \"Authorization: $MINDEE_API_KEY\" \\\n  -F \"model_id=$MINDEE_MODEL_ID\" -F \"file=@invoice.pdf\""
        },
        "letme": {
          "capability": "https://letme.dev/docs.ocr",
          "tool": "https://letme.dev/mindee"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Starter plan",
            "unit": "month",
            "usd": 44,
            "note": "billed annually, $529 a year, one seat"
          },
          {
            "item": "Pro plan",
            "unit": "month",
            "usd": 116,
            "note": "billed annually, $1,393 a year, unlimited seats"
          },
          {
            "item": "Credits at the 6,000 option",
            "unit": "1k-pages",
            "usd": 44,
            "note": "about $0.044 a credit, 1 credit a page, 1.5 with confidence scores"
          }
        ],
        "provenance": {
          "legalEntity": "Mindee SAS (Mindee Inc. outside the Eurozone)",
          "domain": "mindee.com",
          "domainRegistered": "2005-01-20",
          "endpointOnVendorDomain": false,
          "terms": "https://www.mindee.com/legals/terms-of-service",
          "privacy": "https://www.mindee.com/legals/privacy-policy",
          "statusPage": "https://status.mindee.com/",
          "changelog": "https://feedback.mindee.com/en/changelog",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "The API is served from mindee.net, not mindee.com",
            "mindee.com was registered in 2005, long before the company was founded"
          ],
          "score": 75
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/mindee.json",
        "live": {
          "slug": "mindee",
          "probe": {
            "target": "https://api-v2.mindee.net/v2",
            "method": "get",
            "lastAt": "2026-10-04T21:48:32.024792179Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 169,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 60,
            "p95ms24h": 82,
            "samples24h": 272,
            "samples30d": 1077,
            "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": 247,
                "ok": 247
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.mindee.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T21:40:15.074045927Z"
          },
          "versions": [
            {
              "registry": "npm",
              "name": "mindee",
              "version": "5.10.0",
              "seenAt": "2026-10-04T16:33:13.419965841Z"
            },
            {
              "registry": "pypi",
              "name": "mindee",
              "version": "5.4.0",
              "released": "2026-09-30",
              "seenAt": "2026-10-04T16:33:13.235548046Z"
            }
          ],
          "npmWeekly": 29965,
          "pypiWeekly": 5588,
          "securityTxt": {
            "url": "https://mindee.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:47.566372449Z"
          },
          "llmsTxt": {
            "url": "https://docs.mindee.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:17:58.884938648Z"
          },
          "domain": {
            "domain": "mindee.com",
            "registered": "2005-01-20",
            "source": "https://rdap.verisign.com/com/v1/domain/mindee.com",
            "checkedAt": "2026-10-04T13:06:00.95648107Z"
          },
          "pages": [
            {
              "url": "https://feedback.mindee.com/en/changelog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:44:40.638615333Z",
              "changedAt": "2026-10-02T15:21:01.388354435Z",
              "fingerprint": "be401f90b915"
            },
            {
              "url": "https://www.mindee.com/pricing",
              "kind": "pricing",
              "status": 304,
              "checkedAt": "2026-10-04T15:51:27.643968069Z",
              "changedAt": "2026-10-02T15:27:29.256389845Z",
              "fingerprint": "66ef133254c1"
            },
            {
              "url": "https://www.mindee.com/legals/privacy-policy",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:51:23.610596223Z",
              "changedAt": "2026-10-02T15:27:25.214617624Z",
              "fingerprint": "938719b4473c"
            },
            {
              "url": "https://www.mindee.com/legals/terms-of-service",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:51:25.649365048Z",
              "changedAt": "2026-10-02T15:27:27.246620638Z",
              "fingerprint": "6958f99a9bbe"
            }
          ],
          "updatedAt": "2026-10-04T21:48:32.024792179Z"
        }
      },
      {
        "slug": "llamaparse",
        "name": "LlamaParse API + MCP",
        "vendor": "LlamaIndex",
        "vendorUrl": "https://www.llamaindex.ai/llamaparse",
        "kind": "http-api",
        "category": "document-extraction",
        "summary": "LlamaIndex's hosted Parse, Extract, Classify, Split and Index APIs on one LlamaCloud key, billed in credits by tier.",
        "url": "https://www.anchorterminal.com/tools/llamaparse",
        "markdownUrl": "https://www.anchorterminal.com/tools/llamaparse.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/llamaparse.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/llamaparse.json",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://api.cloud.llamaindex.ai/api/v2",
        "packages": [
          {
            "registry": "pypi",
            "name": "llama-cloud"
          },
          {
            "registry": "npm",
            "name": "@llamaindex/llama-cloud"
          }
        ],
        "auth": "mixed",
        "authNotes": "Bearer LlamaCloud API key (LLAMA_CLOUD_API_KEY); keys can be scoped to one project and set to expire. The hosted MCP takes OAuth or the same key as a bearer token. EU accounts use api.cloud.eu.llamaindex.ai and mcp.eu.llamaindex.ai, and tokens don't cross regions.",
        "pricing": "freemium",
        "pricingNotes": "Credits cost $1.25 per 1,000. Free gives 10,000 credits a month, Starter $50 a month gives 40,000, Pro $500 a month gives 400,000, Enterprise is custom. Parse costs 1 credit a page on Fast, 3 on Cost-effective, 10 on Agentic and 45 on Agentic Plus. Extract adds 5, 15 or 50 credits a page on top of the parse tier. Paid plans bill overage at the same rate up to a spending cap (https://www.llamaindex.ai/pricing).",
        "priceSummary": "$1.25 / 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": 26,
        "popularity": {
          "githubStars": 4267,
          "npmWeekly": 124970,
          "pypiWeekly": 767328,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://developers.llamaindex.ai/llamaparse/",
        "llmsTxt": "https://developers.llamaindex.ai/llms.txt",
        "openapi": "https://api.cloud.llamaindex.ai/api/openapi.json",
        "capabilities": [
          "docs.parse",
          "docs.ocr",
          "docs.extract",
          "docs.tables",
          "docs.chunk",
          "docs.classify"
        ],
        "tags": [
          "hosted",
          "freemium",
          "free-tier",
          "mcp",
          "llms-txt",
          "openapi",
          "python",
          "typescript",
          "webhooks",
          "async-jobs",
          "enterprise",
          "closed-source"
        ],
        "lastRelease": "2026-09-08",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 59.6,
          "grade": "C",
          "agentReady": false,
          "rank": 262,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 4,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 72,
            "maintenance": 80,
            "payments": 40,
            "reliability": 55,
            "schema": 82,
            "security": 48,
            "transparency": 70
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": -3,
          "negativeNotes": [
            "2026-08-12 to 2026-09-08. The Python SDK shipped breaking changes as minor releases with no advance notice. 2.14.0 renamed files.get() to files.content(), and 2.16.0 removed the classify v1 job methods. Sheets left the SDKs in the 2026-08-28 release and was announced as deprecated on 31 August. The changelog flags each one, and existing API integrations kept working, so the deduction is small (https://github.com/run-llama/llama-cloud-py/blob/main/CHANGELOG.md, https://developers.llamaindex.ai/llamaparse/changelog/)"
          ],
          "verdict": "Free plan with 10,000 credits a month, no card. Breaking SDK changes shipped as minor releases (files.get renamed, classify v1 removed).",
          "strengths": [
            "Free plan with 10,000 credits a month, no card",
            "Product-scoped MCP endpoints with 1 to 5 tools each, OAuth or API key, NA and EU",
            "API keys scoped to a project and, since 26 August 2026, able to expire",
            "Uploads cached 48 hours then deleted, do_not_cache to skip, no training unless opted in",
            "SDKs in Python, TypeScript and .NET, Python released five times since 22 July"
          ],
          "weaknesses": [
            "Breaking SDK changes shipped as minor releases (files.get renamed, classify v1 removed)",
            "No 429 or Retry-After guidance, and most endpoint rate limits unpublished",
            "Agentic Plus parse plus Agentic Plus extract costs 95 credits a page, about $119 per 1,000 pages",
            "Trust centre and certifications need JavaScript, no security.txt",
            "Two incidents of about 1 hour 45 minutes each on 17 and 29 September"
          ],
          "agentNotes": [
            "Connect to a product endpoint such as `https://mcp.llamaindex.ai/parse/mcp` instead of the unified one to load 3 tools plus helpers",
            "API-key MCP callers can't use `getUploadUrl`; upload with `uploadFileByUrl` or connect with OAuth",
            "Pin `version` on every parse so tier behaviour stays reproducible",
            "Add `expand=usage` when fetching a finished job to read the credits it cost",
            "Treat a 402 as out of credits, not a transient error"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3.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.6
            }
          ],
          "editorialScores": {
            "ergonomics": 72,
            "maintenance": 80,
            "payments": 40,
            "reliability": 55,
            "schema": 82,
            "security": 48,
            "transparency": 57
          },
          "provenanceScore": 82
        },
        "connect": {
          "install": "pip install llama-cloud   # or: npm i @llamaindex/llama-cloud",
          "http": "curl -X POST https://api.cloud.llamaindex.ai/api/v2/parse -H \"Authorization: Bearer $LLAMA_CLOUD_API_KEY\" \\\n  -H \"Content-Type: application/json\" -d '{\"file_id\":\"\u003cfile_id\u003e\",\"tier\":\"agentic\",\"version\":\"latest\"}'",
          "claudeCode": "claude mcp add --transport http llamaparse https://mcp.llamaindex.ai/mcp"
        },
        "letme": {
          "capability": "https://letme.dev/docs.parse",
          "tool": "https://letme.dev/llamaparse"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Parse Fast",
            "unit": "1k-pages",
            "usd": 1.25,
            "note": "1 credit a page"
          },
          {
            "item": "Parse Cost-effective",
            "unit": "1k-pages",
            "usd": 3.75,
            "note": "3 credits a page"
          },
          {
            "item": "Parse Agentic",
            "unit": "1k-pages",
            "usd": 12.5,
            "note": "10 credits a page"
          },
          {
            "item": "Parse Agentic Plus",
            "unit": "1k-pages",
            "usd": 56.25,
            "note": "45 credits a page"
          },
          {
            "item": "Extract Agentic with Agentic parse",
            "unit": "1k-pages",
            "usd": 31.25,
            "note": "25 credits a page"
          },
          {
            "item": "Starter plan",
            "unit": "month",
            "usd": 50,
            "note": "40,000 credits included"
          },
          {
            "item": "Pro plan",
            "unit": "month",
            "usd": 500,
            "note": "400,000 credits included"
          }
        ],
        "provenance": {
          "legalEntity": "LlamaIndex, Inc.",
          "domain": "llamaindex.ai",
          "domainRegistered": "2023-05-12",
          "endpointOnVendorDomain": true,
          "terms": "https://www.llamaindex.ai/terms-of-service",
          "privacy": "https://www.llamaindex.ai/privacy-policy",
          "statusPage": "https://llamaindex.statuspage.io",
          "changelog": "https://developers.llamaindex.ai/llamaparse/changelog/",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "score": 82
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/llamaparse.json",
        "live": {
          "slug": "llamaparse",
          "probe": {
            "target": "https://api.cloud.llamaindex.ai/api/v2",
            "method": "get",
            "lastAt": "2026-10-04T21:48:31.001949834Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 302,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 265,
            "p95ms24h": 304,
            "samples24h": 272,
            "samples30d": 1077,
            "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": 247,
                "ok": 247
              }
            ]
          },
          "vendorStatus": {
            "page": "https://llamaindex.statuspage.io",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T21:40:13.302613734Z"
          },
          "versions": [
            {
              "registry": "npm",
              "name": "@llamaindex/llama-cloud",
              "version": "2.16.0",
              "seenAt": "2026-10-04T16:31:57.103776885Z"
            },
            {
              "registry": "pypi",
              "name": "llama-cloud",
              "version": "2.16.0",
              "released": "2026-09-08",
              "seenAt": "2026-10-04T16:31:56.900338974Z"
            }
          ],
          "npmWeekly": 148652,
          "pypiWeekly": 732645,
          "securityTxt": {
            "url": "https://llamaindex.ai/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:53.401477935Z"
          },
          "llmsTxt": {
            "url": "https://developers.llamaindex.ai/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:17:57.160628939Z"
          },
          "domain": {
            "domain": "llamaindex.ai",
            "registered": "2023-05-12",
            "source": "https://rdap.identitydigital.services/rdap/domain/llamaindex.ai",
            "checkedAt": "2026-10-04T13:08:55.476973748Z"
          },
          "pages": [
            {
              "url": "https://developers.llamaindex.ai/llamaparse/changelog/",
              "kind": "deprecations",
              "status": 200,
              "checkedAt": "2026-10-04T15:42:56.303370453Z",
              "changedAt": "2026-10-04T15:42:56.303370453Z",
              "fingerprint": "0c5b8063b6a8"
            },
            {
              "url": "https://www.llamaindex.ai/pricing",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:51:04.815775894Z",
              "changedAt": "2026-10-03T15:38:55.926108356Z",
              "fingerprint": "b6005fd3e792"
            },
            {
              "url": "https://www.llamaindex.ai/privacy-policy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:51:07.107745868Z",
              "changedAt": "2026-10-02T15:27:11.3765692Z",
              "fingerprint": "7c62ab9bc94a"
            },
            {
              "url": "https://www.llamaindex.ai/terms-of-service",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:51:09.104891911Z",
              "changedAt": "2026-10-02T15:27:13.419682312Z",
              "fingerprint": "c78e06852376"
            }
          ],
          "updatedAt": "2026-10-04T21:48:31.001949834Z"
        }
      },
      {
        "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-04T21:48:32.351697938Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 61,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 42,
            "p95ms24h": 69,
            "samples24h": 272,
            "samples30d": 1077,
            "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": 247,
                "ok": 247
              }
            ]
          },
          "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-04T21:48:32.351697938Z"
        }
      },
      {
        "slug": "adobe-pdf-extract",
        "name": "Adobe PDF Services / PDF Extract API",
        "vendor": "Adobe",
        "vendorUrl": "https://developer.adobe.com/document-services/",
        "kind": "http-api",
        "category": "document-extraction",
        "summary": "Adobe's REST API for reading and changing PDFs.",
        "url": "https://www.anchorterminal.com/tools/adobe-pdf-extract",
        "markdownUrl": "https://www.anchorterminal.com/tools/adobe-pdf-extract.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/adobe-pdf-extract.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/adobe-pdf-extract.json",
        "repo": "https://github.com/adobe/pdfservices-python-sdk-samples",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://pdf-services.adobe.io",
        "packages": [
          {
            "registry": "pypi",
            "name": "pdfservices-sdk"
          },
          {
            "registry": "npm",
            "name": "@adobe/pdfservices-node-sdk"
          }
        ],
        "auth": "oauth",
        "authNotes": "OAuth server-to-server. POST client_id and client_secret to /token for an access token, then send it as Bearer plus the client id in `x-api-key`. JWT service accounts are deprecated.",
        "pricing": "freemium",
        "pricingNotes": "Free tier of 500 Document Transactions a month with no card. Extract and PDF to Markdown use 1 transaction per 5 pages, most other operations 1 per 50 pages, Auto-Tag 10 a page. Paid use is sold through sales on volume or enterprise terms, and no per-transaction price is published (https://developer.adobe.com/document-services/pricing/main/).",
        "priceSummary": "Freemium",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402 in docs or pricing (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": 165,
          "npmWeekly": 81553,
          "pypiWeekly": 58026,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://developer.adobe.com/document-services/docs/overview/pdf-extract-api/",
        "openapi": "https://raw.githubusercontent.com/AdobeDocs/pdfservices-api-documentation/main/static/openapi.json",
        "capabilities": [
          "docs.parse",
          "docs.ocr",
          "docs.extract",
          "docs.tables",
          "pdf.convert",
          "pdf.merge",
          "pdf.forms",
          "pdf.generate",
          "pdf.extract"
        ],
        "tags": [
          "hosted",
          "freemium",
          "no-card",
          "free-tier",
          "enterprise",
          "closed-source",
          "openapi",
          "webhooks",
          "python",
          "typescript",
          "async-jobs"
        ],
        "lastRelease": "2026-08-10",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 56,
          "grade": "C",
          "agentReady": false,
          "rank": 307,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 6,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 57,
            "maintenance": 53,
            "payments": 20,
            "reliability": 50,
            "schema": 80,
            "security": 55,
            "transparency": 80
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Public OpenAPI 3.0.1 spec covering Extract, PDF to Markdown and 20 other operations. No published paid price, paid use goes through sales.",
          "strengths": [
            "Public OpenAPI 3.0.1 spec covering Extract, PDF to Markdown and 20 other operations",
            "Extract error codes name the cause, such as DISQUALIFIED_SCAN_PAGE_LIMIT or BAD_PDF_COMPLEX_TABLE",
            "500 free Document Transactions a month with no card",
            "Files kept 24 hours by default, deletable at once, or never stored when you pass signed URLs",
            "security.txt and a public bug bounty on Intigriti"
          ],
          "weaknesses": [
            "No published paid price, paid use goes through sales",
            "Four steps per job (token, upload, operation, poll) and no idempotency key",
            "25 requests a minute on the free tier, no Retry-After or backoff guidance",
            "Node.js SDK unchanged since November 2024 and no llms.txt",
            "Status page renders only with JavaScript"
          ],
          "agentNotes": [
            "Cache the access token and reuse it until it expires",
            "Budget 1 Document Transaction per 5 pages for Extract and PDF to Markdown, so 500 free transactions cover about 2,500 pages",
            "Pass `notifiers` with a callback URL instead of polling the job status",
            "Use `pdf-services-ew1.adobe.io` when documents must stay in the EU",
            "Check `/operation/pdfproperties` first, since copy-protected PDFs fail Extract with DISQUALIFIED_PERMISSIONS"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3.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": 56
            }
          ],
          "editorialScores": {
            "ergonomics": 57,
            "maintenance": 53,
            "payments": 20,
            "reliability": 50,
            "schema": 80,
            "security": 55,
            "transparency": 60
          },
          "provenanceScore": 100
        },
        "connect": {
          "install": "pip install pdfservices-sdk   # or: npm i @adobe/pdfservices-node-sdk",
          "http": "curl https://pdf-services.adobe.io/token \\\n  -H \"content-type: application/x-www-form-urlencoded\" \\\n  --data-urlencode \"client_id=$PDF_SERVICES_CLIENT_ID\" --data-urlencode \"client_secret=$PDF_SERVICES_CLIENT_SECRET\""
        },
        "letme": {
          "capability": "https://letme.dev/docs.parse",
          "tool": "https://letme.dev/adobe-pdf-extract"
        },
        "sameCompany": [
          "adobe-firefly",
          "adobe-photoshop-api"
        ],
        "alsoIn": [
          "pdf-tools"
        ],
        "area": "web-data",
        "provenance": {
          "legalEntity": "Adobe Inc.",
          "domain": "adobe.com",
          "domainRegistered": "1986-11-17",
          "endpointOnVendorDomain": true,
          "terms": "https://www.adobe.com/legal/terms.html",
          "privacy": "https://www.adobe.com/privacy/policy.html",
          "statusPage": "https://status.adobe.com/products/512699",
          "changelog": "https://developer.adobe.com/document-services/docs/overview/releasenotes",
          "securityTxt": "valid",
          "checked": "2026-10-01",
          "notes": [
            "The API is served from pdf-services.adobe.io, Adobe's developer API domain, not adobe.com",
            "The status page is the PDF Services product page the docs link to, and it needs JavaScript to render"
          ],
          "score": 100
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/adobe-pdf-extract.json",
        "live": {
          "slug": "adobe-pdf-extract",
          "probe": {
            "target": "https://pdf-services.adobe.io",
            "method": "get",
            "lastAt": "2026-10-04T21:48:22.288763526Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 298,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 258,
            "p95ms24h": 306,
            "samples24h": 272,
            "samples30d": 1077,
            "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": 247,
                "ok": 247
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.adobe.com/products/512699",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-04T21:39:47.838008597Z"
          },
          "versions": [
            {
              "registry": "github",
              "name": "adobe/pdfservices-python-sdk-samples",
              "version": "v4.2.0",
              "released": "2025-07-11",
              "seenAt": "2026-10-04T16:19:42.423004947Z"
            },
            {
              "registry": "npm",
              "name": "@adobe/pdfservices-node-sdk",
              "version": "4.1.0",
              "seenAt": "2026-10-04T16:19:41.011046726Z"
            },
            {
              "registry": "pypi",
              "name": "pdfservices-sdk",
              "version": "4.3.0",
              "released": "2026-08-10",
              "seenAt": "2026-10-04T16:19:40.825263593Z"
            }
          ],
          "githubStars": 165,
          "npmWeekly": 81098,
          "pypiWeekly": 60815,
          "securityTxt": {
            "url": "https://adobe.com/.well-known/security.txt",
            "state": "valid",
            "expires": "2027-07-30T01:00:00.000Z",
            "checkedAt": "2026-10-04T15:15:53.305878617Z"
          },
          "domain": {
            "domain": "adobe.com",
            "registered": "1986-11-17",
            "source": "https://rdap.verisign.com/com/v1/domain/adobe.com",
            "checkedAt": "2026-10-04T13:03:40.934529293Z"
          },
          "pages": [
            {
              "url": "https://developer.adobe.com/document-services/docs/overview/releasenotes",
              "kind": "deprecations",
              "status": 304,
              "checkedAt": "2026-10-04T15:42:28.755027688Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "27885eb31d8e"
            },
            {
              "url": "https://developer.adobe.com/document-services/pricing/main/",
              "kind": "pricing",
              "status": 304,
              "checkedAt": "2026-10-04T15:42:30.76269397Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "bf518d524ead"
            }
          ],
          "updatedAt": "2026-10-04T21:48:22.288763526Z"
        }
      },
      {
        "slug": "veryfi",
        "name": "Veryfi API + MCP",
        "vendor": "Veryfi",
        "vendorUrl": "https://www.veryfi.com",
        "kind": "http-api",
        "category": "document-extraction",
        "summary": "Receipt, invoice, bank statement, cheque and W-2 extraction API priced per document, with fraud checks as add-ons.",
        "url": "https://www.anchorterminal.com/tools/veryfi",
        "markdownUrl": "https://www.anchorterminal.com/tools/veryfi.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/veryfi.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/veryfi.json",
        "repo": "https://github.com/veryfi/mcp-server",
        "license": "MIT (MCP server and SDKs)",
        "transports": [
          "http",
          "stdio"
        ],
        "remoteUrl": "https://api.veryfi.com/api/v8/partner",
        "packages": [
          {
            "registry": "pypi",
            "name": "veryfi"
          },
          {
            "registry": "npm",
            "name": "@veryfi/veryfi-sdk"
          }
        ],
        "auth": "api-key",
        "authNotes": "Every request needs a CLIENT-ID header plus either `Authorization: apikey USERNAME:API_KEY` (legacy) or a Bearer key, which can be scoped. Optional HMAC request signing with the client secret.",
        "pricing": "freemium",
        "pricingNotes": "Free for 100 documents a month. Starter is pay as you go with a $500 a month minimum, $0.08 a receipt, $0.16 an invoice or W-2/W-9, $0.25 a bank statement or cheque, 1 cent off each with a 12-month commitment. Charged per document up to 15 pages, not per page. Growth is quoted (https://www.veryfi.com/pricing/).",
        "priceSummary": "$500 / mo",
        "where": "both",
        "x402": {
          "level": "no",
          "evidence": "No x402 in docs or pricing (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": 1,
        "popularity": {
          "githubStars": 31,
          "npmWeekly": 5692,
          "pypiWeekly": 16904,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.veryfi.com",
        "llmsTxt": "https://docs.veryfi.com/llms.txt",
        "capabilities": [
          "docs.ocr",
          "docs.extract",
          "docs.tables",
          "docs.classify"
        ],
        "tags": [
          "hosted",
          "freemium",
          "no-card",
          "mcp",
          "llms-txt",
          "python",
          "typescript",
          "webhooks",
          "async-jobs"
        ],
        "lastRelease": "2026-09-15",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 55.4,
          "grade": "C",
          "agentReady": false,
          "rank": 315,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 7,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 75,
            "maintenance": 78,
            "payments": 40,
            "reliability": 55,
            "schema": 50,
            "security": 40,
            "transparency": 60
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Typed fields and line items for receipts, invoices, cheques, bank statements and tax forms. API outage on 29 September and degraded, incomplete extraction on 1 October.",
          "strengths": [
            "Typed fields and line items for receipts, invoices, cheques, bank statements and tax forms",
            "Per-document pricing up to 15 pages, $0.08 a receipt, 100 free documents a month with no card",
            "Published rate limits per endpoint and Retry-After on 429",
            "HMAC request signing with the client secret",
            "Node.js SDK tagged seven times since 4 August, v1.4.8 to v1.5.2"
          ],
          "weaknesses": [
            "API outage on 29 September and degraded, incomplete extraction on 1 October",
            "Submitted documents train Veryfi's models unless opted out by agreement",
            "$500 a month minimum once past 100 free documents",
            "MCP server has one tool, no package and no commits since 2025-09-26",
            "No downloadable OpenAPI spec and no public changelog"
          ],
          "agentNotes": [
            "Always send an `Idempotency-Key` header so a retry after a 504 doesn't bill twice",
            "Wait for the seconds in `Retry-After` on a 429; identical failing requests are capped at 10 a minute",
            "Set the `CLIENT-ID` header on every call",
            "Use the dedicated endpoints for bank statements, cheques and tax forms, since the documents endpoint handles receipts, invoices and purchase orders",
            "Set `max_pages_to_process` for long PDFs, since one transaction covers 15 pages"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "C",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 55.4
            }
          ],
          "editorialScores": {
            "ergonomics": 75,
            "maintenance": 78,
            "payments": 40,
            "reliability": 55,
            "schema": 50,
            "security": 40,
            "transparency": 40
          },
          "provenanceScore": 80
        },
        "connect": {
          "install": "pip install veryfi   # or: npm i @veryfi/veryfi-sdk",
          "http": "curl https://api.veryfi.com/api/v8/partner/documents \\\n  -H \"CLIENT-ID: $VERYFI_CLIENT_ID\" -H \"Authorization: apikey $VERYFI_USERNAME:$VERYFI_API_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" -H \"content-type: application/json\" \\\n  -d '{\"file_url\":\"https://example.com/receipt.jpg\"}'",
          "config": {
            "mcpServers": {
              "veryfi": {
                "args": [
                  "--directory",
                  "path/to/mcp-server",
                  "run",
                  "src/server.py"
                ],
                "command": "uv",
                "env": {}
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/docs.ocr",
          "tool": "https://letme.dev/veryfi"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Starter minimum",
            "unit": "month",
            "usd": 500
          },
          {
            "item": "Receipt",
            "unit": "call",
            "usd": 0.08,
            "note": "one document up to 15 pages"
          },
          {
            "item": "Invoice, W-2 or W-9",
            "unit": "call",
            "usd": 0.16,
            "note": "one document up to 15 pages"
          },
          {
            "item": "Bank statement or cheque",
            "unit": "call",
            "usd": 0.25,
            "note": "one document up to 15 pages"
          }
        ],
        "provenance": {
          "legalEntity": "Veryfi, Inc.",
          "domain": "veryfi.com",
          "domainRegistered": "2008-04-18",
          "endpointOnVendorDomain": true,
          "terms": "https://www.veryfi.com/terms/",
          "privacy": "https://www.veryfi.com/privacy/",
          "statusPage": "https://status.veryfi.com/",
          "changelog": "",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "score": 80
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/veryfi.json",
        "live": {
          "slug": "veryfi",
          "probe": {
            "target": "https://api.veryfi.com/api/v8/partner",
            "method": "get",
            "lastAt": "2026-10-04T21:48:38.521404177Z",
            "lastOk": true,
            "lastStatus": 401,
            "lastMs": 516,
            "lastNote": "asks for credentials",
            "authRequired": true,
            "uptime24h": 100,
            "uptime30d": 99.81,
            "p50ms24h": 497,
            "p95ms24h": 566,
            "samples24h": 272,
            "samples30d": 1077,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 246
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 247,
                "ok": 247
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.veryfi.com",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-04T21:40:32.961121357Z"
          },
          "versions": [
            {
              "registry": "npm",
              "name": "@veryfi/veryfi-sdk",
              "version": "1.5.2",
              "seenAt": "2026-10-04T16:43:27.369943739Z"
            },
            {
              "registry": "pypi",
              "name": "veryfi",
              "version": "5.1.0",
              "released": "2026-05-14",
              "seenAt": "2026-10-04T16:43:27.182313534Z"
            }
          ],
          "githubStars": 0,
          "npmWeekly": 6683,
          "pypiWeekly": 10476,
          "securityTxt": {
            "url": "https://veryfi.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:16:03.499960183Z"
          },
          "llmsTxt": {
            "url": "https://docs.veryfi.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:21.074758154Z"
          },
          "domain": {
            "domain": "veryfi.com",
            "registered": "2008-04-18",
            "source": "https://rdap.verisign.com/com/v1/domain/veryfi.com",
            "checkedAt": "2026-10-04T13:06:38.949880383Z"
          },
          "pages": [
            {
              "url": "https://www.veryfi.com/pricing/",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:44.083185228Z",
              "changedAt": "2026-10-04T15:52:44.083185228Z",
              "fingerprint": "9ba5727da723"
            },
            {
              "url": "https://www.veryfi.com/privacy/",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:46.605053947Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "47a7b02e27f5"
            },
            {
              "url": "https://www.veryfi.com/terms/",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:48.444371891Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "ccf4f32a76c6"
            }
          ],
          "updatedAt": "2026-10-04T21:48:38.521404177Z"
        }
      },
      {
        "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-04T21:48:38.205953961Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 602,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 99.91,
            "p50ms24h": 589,
            "p95ms24h": 633,
            "samples24h": 272,
            "samples30d": 1077,
            "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": 247,
                "ok": 247
              }
            ]
          },
          "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-03T23:29:28.630222764Z"
            },
            {
              "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-04T21:48:38.205953961Z"
        }
      },
      {
        "slug": "nanonets",
        "name": "Nanonets API + MCP",
        "vendor": "Nanonets",
        "vendorUrl": "https://nanonets.com",
        "kind": "http-api",
        "category": "document-extraction",
        "summary": "OCR and field extraction from PDFs, scans and images.",
        "url": "https://www.anchorterminal.com/tools/nanonets",
        "markdownUrl": "https://www.anchorterminal.com/tools/nanonets.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nanonets.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nanonets.json",
        "repo": "https://github.com/NanoNets/docstrange",
        "license": "MIT (docstrange library)",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://extraction-api.nanonets.com/api/v2",
        "packages": [
          {
            "registry": "pypi",
            "name": "docstrange"
          }
        ],
        "auth": "mixed",
        "authNotes": "Extraction API takes a Bearer key. The older app API at app.nanonets.com/api/v2 takes the key as the HTTP Basic username with an empty password. The hosted MCP server at mcp.nanonets.com/mcp uses OAuth sign-in.",
        "pricing": "freemium",
        "pricingNotes": "Starter is free with $50 of credits and no card, then $100 a month for 100 credits. Billing is per block run, $0.02 for simple blocks, $0.10 for standard AI and $0.30 for complex AI such as data extraction, and extraction counts one run a page. Growth is quoted with up to 40% volume discount, Enterprise is custom (https://nanonets.com/pricing).",
        "priceSummary": "$100 / mo",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402 in docs, OpenAPI document or pricing (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": 1574,
          "npmWeekly": null,
          "pypiWeekly": 47,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.nanonets.com",
        "llmsTxt": "https://docs.nanonets.com/llms.txt",
        "openapi": "https://extraction-api.nanonets.com/openapi.json",
        "capabilities": [
          "docs.parse",
          "docs.ocr",
          "docs.extract",
          "docs.tables",
          "docs.classify"
        ],
        "tags": [
          "hosted",
          "freemium",
          "no-card",
          "mcp",
          "llms-txt",
          "openapi",
          "async-jobs",
          "webhooks",
          "python"
        ],
        "lastRelease": "2025-10-31",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 42.6,
          "grade": "E",
          "agentReady": false,
          "rank": 413,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 9,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 47,
            "maintenance": 8,
            "payments": 35,
            "reliability": 45,
            "schema": 61,
            "security": 30,
            "transparency": 65
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Extraction API returns Markdown, CSV or JSON, with named fields or a JSON schema. No public changelog and no dated release in the last 90 days.",
          "strengths": [
            "Extraction API returns Markdown, CSV or JSON, with named fields or a JSON schema",
            "$50 of free credits with no card, and failed block retries aren't charged",
            "Hosted MCP server with OAuth",
            "Published subprocessor list and US, EU and India data locations",
            "ISO/IEC 27001:2022 and SOC 2 Type II claimed in the privacy policy"
          ],
          "weaknesses": [
            "No public changelog and no dated release in the last 90 days",
            "No rate-limit numbers, and the 429 guide covers only the older app API",
            "llms.txt indexes the older app API, not the extraction API or the MCP server",
            "MCP tool list not published",
            "Model-family prices come from an account manager"
          ],
          "agentNotes": [
            "Use the extraction API at `extraction-api.nanonets.com`, not `app.nanonets.com`, unless you already have a trained model",
            "Pass a JSON schema in `json_options` when downstream code needs fixed field names",
            "Use the async extract endpoints for long documents and poll `/api/v1/extract/results/{record_id}`",
            "On a 429, wait 30 seconds and double the delay each retry",
            "Budget per page, since a 10-page PDF through an extraction block is 10 runs"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 2,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 42.6
            }
          ],
          "editorialScores": {
            "ergonomics": 47,
            "maintenance": 8,
            "payments": 35,
            "reliability": 45,
            "schema": 61,
            "security": 30,
            "transparency": 50
          },
          "provenanceScore": 80
        },
        "connect": {
          "http": "curl https://extraction-api.nanonets.com/api/v1/extract/sync \\\n  -H \"Authorization: Bearer $NANONETS_API_KEY\" \\\n  -F file_url=https://example.com/invoice.pdf -F output_format=markdown",
          "claudeCode": "claude mcp add --transport http nanonets https://mcp.nanonets.com/mcp"
        },
        "letme": {
          "capability": "https://letme.dev/docs.parse",
          "tool": "https://letme.dev/nanonets"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Starter",
            "unit": "month",
            "usd": 100,
            "note": "100 credits after the free $50"
          },
          {
            "item": "Data extraction (complex AI block)",
            "unit": "1k-pages",
            "usd": 300,
            "note": "$0.30 a run at list price, one run a page"
          },
          {
            "item": "Standard AI block",
            "unit": "call",
            "usd": 0.1,
            "note": "classification, validation"
          },
          {
            "item": "Simple block",
            "unit": "call",
            "usd": 0.02,
            "note": "formatting, routing, export"
          }
        ],
        "provenance": {
          "legalEntity": "Nano Net Technologies Inc.",
          "domain": "nanonets.com",
          "domainRegistered": "2005-10-15",
          "endpointOnVendorDomain": true,
          "terms": "https://legal.nanonets.com/terms",
          "privacy": "https://legal.nanonets.com/privacy",
          "statusPage": "https://status.nanonets.com",
          "changelog": "",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "RDAP gives a 2005 registration, older than the company, so the domain was probably bought later"
          ],
          "score": 80
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/nanonets.json",
        "live": {
          "slug": "nanonets",
          "probe": {
            "target": "https://extraction-api.nanonets.com/api/v2",
            "method": "get",
            "lastAt": "2026-10-04T21:48:32.548812504Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 547,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 99.72,
            "p50ms24h": 447,
            "p95ms24h": 512,
            "samples24h": 272,
            "samples30d": 1077,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 245
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 247,
                "ok": 247
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.nanonets.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T21:40:16.20833183Z"
          },
          "versions": [
            {
              "registry": "pypi",
              "name": "docstrange",
              "version": "1.1.8",
              "released": "2025-10-31",
              "seenAt": "2026-10-04T16:34:19.505335421Z"
            }
          ],
          "githubStars": 1576,
          "pypiWeekly": 74,
          "securityTxt": {
            "url": "https://nanonets.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:16:01.973680417Z"
          },
          "llmsTxt": {
            "url": "https://docs.nanonets.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:02.95370471Z"
          },
          "domain": {
            "domain": "nanonets.com",
            "registered": "2005-10-15",
            "source": "https://rdap.verisign.com/com/v1/domain/nanonets.com",
            "checkedAt": "2026-10-04T13:08:18.933907619Z"
          },
          "pages": [
            {
              "url": "https://nanonets.com/pricing",
              "kind": "pricing",
              "status": 304,
              "checkedAt": "2026-10-04T15:46:11.028049558Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "437fa38c3c93"
            },
            {
              "url": "https://legal.nanonets.com/privacy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:45:30.997470748Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "cdfa3c559c87"
            },
            {
              "url": "https://legal.nanonets.com/terms",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:45:33.391472172Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "8c04180e8356"
            }
          ],
          "updatedAt": "2026-10-04T21:48:32.548812504Z"
        }
      },
      {
        "slug": "pdf-co",
        "name": "PDF.co API + MCP",
        "vendor": "PDF.co (Artifex Software)",
        "vendorUrl": "https://pdf.co",
        "kind": "http-api",
        "category": "pdf-tools",
        "summary": "Credit-billed REST API for merging, splitting, converting, filling and securing PDFs, plus PDF to text, CSV, JSON and Excel, template parsing and an AI invoice parser.",
        "url": "https://www.anchorterminal.com/tools/pdf-co",
        "markdownUrl": "https://www.anchorterminal.com/tools/pdf-co.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pdf-co.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pdf-co.json",
        "repo": "https://github.com/pdfdotco/pdfco-mcp",
        "license": "MIT (MCP server)",
        "transports": [
          "http",
          "stdio"
        ],
        "remoteUrl": "https://api.pdf.co/v1",
        "packages": [
          {
            "registry": "pypi",
            "name": "pdfco-mcp"
          }
        ],
        "auth": "api-key",
        "authNotes": "`x-api-key` header. The MCP server reads the key from X_API_KEY.",
        "pricing": "paid",
        "pricingNotes": "Credit subscriptions. Basic $9.99 a month ($8.99 billed yearly) for 16,500 credits, Personal $24.99 ($22.49) for 37,000, Business 1 $49.99 ($44.99) for 80,500, Business 2 $99.99 ($89.99) for 159,850, Business 3 $300 ($270) for 483,000, Enterprise above 500,000. Monthly prices worked out from the yearly totals. Credits per page or per call vary by endpoint, e.g. merge 2 a page, PDF to text 21, Document Parser 42, AI invoice parser 100. A free trial exists but its size isn't on the page (https://pdf.co/pricing).",
        "priceSummary": "$9.99 / mo",
        "where": "both",
        "x402": {
          "level": "no",
          "evidence": "No x402 in docs, MCP README or pricing (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": 38,
        "popularity": {
          "githubStars": 9,
          "npmWeekly": null,
          "pypiWeekly": 20,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://developer.pdf.co",
        "llmsTxt": "https://developer.pdf.co/llms.txt",
        "openapi": "https://developer.pdf.co/openapi.json",
        "capabilities": [
          "pdf.convert",
          "pdf.merge",
          "pdf.forms",
          "pdf.generate",
          "pdf.extract",
          "docs.ocr",
          "docs.tables",
          "docs.extract"
        ],
        "tags": [
          "hosted",
          "mcp",
          "llms-txt",
          "async-jobs",
          "webhooks",
          "python"
        ],
        "lastRelease": "2026-07-28",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 38.2,
          "grade": "E",
          "agentReady": false,
          "rank": 430,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 1,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 49,
            "maintenance": 34,
            "payments": 20,
            "reliability": 20,
            "schema": 74,
            "security": 23,
            "transparency": 54
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs. No status page. status.pdf.co redirects to betterstack.com/uptime.",
          "strengths": [
            "OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs",
            "Credit cost of each endpoint published per page or per call, from 2 for merge to 100 for the AI invoice parser",
            "Manipulation and extraction in one API, with 38 MCP tools covering both",
            "Output links expire after one hour by default and can be cut to one minute"
          ],
          "weaknesses": [
            "No status page. status.pdf.co redirects to betterstack.com/uptime",
            "Rate limits moved to per-minute windows in June 2026 but the numbers aren't published, and 429 carries no documented Retry-After",
            "No SLA, no security.txt, and terms that allow changes without notice",
            "MCP server has no tool annotations, no read-only mode and no tests, and `upload_file` reads any absolute path",
            "Trial size and card requirement aren't stated anywhere we looked"
          ],
          "agentNotes": [
            "Upload local files with `upload_file` or the presigned upload first, then pass the returned URL",
            "Read the `content` field, not `status`. The MCP server says `working` even when the API returned an error",
            "Call `wait_job_completion` after each job. Every MCP call runs async and returns a job id",
            "Download results within the hour. Output links expire after 60 minutes by default",
            "Keep the key in `X_API_KEY` and leave the `api_key` argument empty"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 38.2
            }
          ],
          "editorialScores": {
            "ergonomics": 49,
            "maintenance": 34,
            "payments": 20,
            "reliability": 20,
            "schema": 74,
            "security": 23,
            "transparency": 42
          },
          "provenanceScore": 65
        },
        "connect": {
          "http": "curl https://api.pdf.co/v1/pdf/convert/to/text-simple \\\n  -H \"x-api-key: $PDFCO_API_KEY\" -H \"content-type: application/json\" \\\n  -d '{\"url\":\"https://pdfco-test-files.s3.us-west-2.amazonaws.com/pdf-to-csv/sample.pdf\",\"inline\":true}'",
          "claudeCode": "claude mcp add pdfco -e X_API_KEY=$PDFCO_API_KEY -- uvx pdfco-mcp",
          "config": {
            "mcpServers": {
              "pdfco": {
                "args": [
                  "pdfco-mcp"
                ],
                "command": "uvx",
                "env": {
                  "X_API_KEY": "${PDFCO_API_KEY}"
                }
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/pdf.convert",
          "tool": "https://letme.dev/pdf-co"
        },
        "alsoIn": [
          "document-extraction"
        ],
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Basic",
            "unit": "month",
            "usd": 9.99,
            "note": "16,500 credits. $8.99 a month billed yearly"
          },
          {
            "item": "Personal",
            "unit": "month",
            "usd": 24.99,
            "note": "37,000 credits. $22.49 a month billed yearly"
          },
          {
            "item": "Business 1",
            "unit": "month",
            "usd": 49.99,
            "note": "80,500 credits. $44.99 a month billed yearly"
          },
          {
            "item": "Business 3",
            "unit": "month",
            "usd": 300,
            "note": "483,000 credits. $270 a month billed yearly"
          }
        ],
        "provenance": {
          "legalEntity": "Artifex Software, Inc.",
          "domain": "pdf.co",
          "domainRegistered": "",
          "endpointOnVendorDomain": true,
          "terms": "https://pdf.co/resources/legal/terms",
          "privacy": "https://pdf.co/resources/legal/privacy",
          "statusPage": "",
          "changelog": "https://developer.pdf.co/changelog",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "RDAP has no service for .co, so the registration date is unread",
            "status.pdf.co redirects to betterstack.com/uptime rather than a status page"
          ],
          "score": 65
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/pdf-co.json",
        "live": {
          "slug": "pdf-co",
          "probe": {
            "target": "https://api.pdf.co/v1",
            "method": "get",
            "lastAt": "2026-10-04T21:48:33.870880041Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 458,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 443,
            "p95ms24h": 502,
            "samples24h": 272,
            "samples30d": 1077,
            "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": 247,
                "ok": 247
              }
            ]
          },
          "versions": [
            {
              "registry": "github",
              "name": "pdfdotco/pdfco-mcp",
              "version": "0.0.9",
              "released": "2026-07-28",
              "seenAt": "2026-10-04T16:36:23.384919416Z"
            },
            {
              "registry": "pypi",
              "name": "pdfco-mcp",
              "version": "0.0.9",
              "released": "2026-07-28",
              "seenAt": "2026-10-04T16:36:23.204443846Z"
            }
          ],
          "githubStars": 9,
          "pypiWeekly": 24,
          "securityTxt": {
            "url": "https://pdf.co/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:52.394039321Z"
          },
          "llmsTxt": {
            "url": "https://developer.pdf.co/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:06.920824104Z"
          },
          "domain": {
            "domain": "pdf.co",
            "checkedAt": "2026-10-04T13:10:48.097773738Z"
          },
          "pages": [
            {
              "url": "https://developer.pdf.co/changelog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:42:38.835011597Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "3c375c1f7429"
            },
            {
              "url": "https://pdf.co/pricing",
              "kind": "pricing",
              "status": 304,
              "checkedAt": "2026-10-04T15:46:37.128242407Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "308c3d9fe003"
            },
            {
              "url": "https://pdf.co/resources/legal/privacy",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:46:39.276063885Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "9747302f99f5"
            },
            {
              "url": "https://pdf.co/resources/legal/terms",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:46:41.283164145Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "3e090877e9eb"
            }
          ],
          "updatedAt": "2026-10-04T21:48:33.870880041Z"
        }
      }
    ]
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/categories/document-extraction",
    "json": "https://www.anchorterminal.com/categories/document-extraction.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/categories/document-extraction.md",
    "slim": "https://www.anchorterminal.com/categories/document-extraction.min.md"
  },
  "markdown": "APIs that turn scans, PDFs, invoices and forms into text, tables and structured fields an agent can use. Compared on text accuracy, table structure, field extraction, page references, processing time and price per page.\n\n- Tools ranked: 10 · agent-ready (BB or better): 0 · accept x402: 0 · hosted endpoints: 10 · desk reviews by the panel: 20\n- JSON: https://www.anchorterminal.com/api/v1/tools.json (list) · https://www.anchorterminal.com/api/v1/rankings.json (ranked) · https://www.anchorterminal.com/api/v1/x402.json (payable) · https://www.anchorterminal.com/api/v1/capabilities.json (by capability)\n- Grades run AA, A, BB, B, C, D, E, F · methodology: https://www.anchorterminal.com/benchmark/\n\n- Capabilities in this category: docs.parse, docs.ocr, docs.extract, docs.tables, docs.chunk\n- https://letme.dev/docs.parse picks the top-graded tool in this list and says how to call it direct; calling through letme comes later (https://www.anchorterminal.com/letme/index.md)\n\n## Ranking\n\n| # | Tool | Vendor | Kind | Category | Grade | Score | Confidence | x402 | Auth | Where | Reviews | Page |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 207 | Reducto API + MCP | Reducto | HTTP API | Documents | B | 63.2 | medium | no | API key | hosted + local | 4/5 (2) | https://www.anchorterminal.com/tools/reducto.md |\n| 211 | Extend API + MCP | Extend | HTTP API | Documents | B | 62.9 | medium | no | OAuth or key | hosted | 4/5 (2) | https://www.anchorterminal.com/tools/extend.md |\n| 227 | Mindee API | Mindee | HTTP API | Documents | C | 61.5 | medium | no | API key | hosted | 3/5 (2) | https://www.anchorterminal.com/tools/mindee.md |\n| 262 | LlamaParse API + MCP | LlamaIndex | HTTP API | Documents | C | 59.6 | medium | no | OAuth or key | hosted | 3.5/5 (2) | https://www.anchorterminal.com/tools/llamaparse.md |\n| 271 | Mistral OCR API | Mistral AI | Model API | Documents | C | 59 | medium | no | API key | hosted | 4.5/5 (2) | https://www.anchorterminal.com/tools/mistral-ocr.md |\n| 307 | Adobe PDF Services / PDF Extract API | Adobe | HTTP API | Documents | C | 56 | medium | no | OAuth | hosted | 3.5/5 (2) | https://www.anchorterminal.com/tools/adobe-pdf-extract.md |\n| 315 | Veryfi API + MCP | Veryfi | HTTP API | Documents | C | 55.4 | medium | no | API key | hosted + local | 3/5 (2) | https://www.anchorterminal.com/tools/veryfi.md |\n| 390 | Unstructured API + MCP | Unstructured | HTTP API | Documents | D | 47 | medium | no | OAuth or key | hosted | 2.5/5 (2) | https://www.anchorterminal.com/tools/unstructured.md |\n| 413 | Nanonets API + MCP | Nanonets | HTTP API | Documents | E | 42.6 | medium | no | OAuth or key | hosted | 2/5 (2) | https://www.anchorterminal.com/tools/nanonets.md |\n| 430 | PDF.co API + MCP | PDF.co (Artifex Software) | HTTP API | PDF | E | 38.2 | medium | no | API key | hosted + local | 3/5 (2) | https://www.anchorterminal.com/tools/pdf-co.md |\n\nScores are from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/), with Performance and Task success pending. p95 latency and context cost come from our probes, which haven't run yet.\n\n## Summaries\n\n### 207. Reducto API + MCP, B (63.2)\n\nHosted parse, extract, split, classify and edit endpoints for PDFs, scans, spreadsheets and Office files, built on its own r-1 parsing model. Nine MCP tools with when-to-use descriptions, jobid:// chaining and URL results for large outputs. Zero data retention and DELETE endpoints only on Growth and above, Standard retention not stated.\n\n- Page: https://www.anchorterminal.com/tools/reducto · Markdown: https://www.anchorterminal.com/tools/reducto.md · JSON: https://www.anchorterminal.com/api/v1/tools/reducto.json\n- Capabilities: docs.parse, docs.ocr, docs.extract, docs.tables, docs.chunk, docs.classify · endpoint: `https://platform.reducto.ai`\n\n### 211. Extend API + MCP, B (62.9)\n\nHosted parse, extract, classify, split and PDF form-fill APIs with versioned processors, evaluation sets and workflows. Hosted MCP with OAuth scoped to workspaces and to test or production, and a tools filter with nine groups. Parse is billed on top of Extract, Split and Classify, so Performance Extract costs 5 credits a page.\n\n- Page: https://www.anchorterminal.com/tools/extend · Markdown: https://www.anchorterminal.com/tools/extend.md · JSON: https://www.anchorterminal.com/api/v1/tools/extend.json\n- Capabilities: docs.parse, docs.ocr, docs.extract, docs.tables, docs.chunk, docs.classify · endpoint: `https://api.extend.ai`\n\n### 227. Mindee API, C (61.5)\n\nHosted extraction, classification, split, crop and raw-text OCR models that you define in the Mindee platform, then call by model ID through an async REST API. Extracted data kept 12 hours by default (1 to 24 configurable), deletable on fetch, source files never stored. Every call needs a model_id created in the web platform first.\n\n- Page: https://www.anchorterminal.com/tools/mindee · Markdown: https://www.anchorterminal.com/tools/mindee.md · JSON: https://www.anchorterminal.com/api/v1/tools/mindee.json\n- Capabilities: docs.ocr, docs.extract, docs.classify · endpoint: `https://api-v2.mindee.net/v2`\n\n### 262. LlamaParse API + MCP, C (59.6)\n\nLlamaIndex's hosted Parse, Extract, Classify, Split and Index APIs on one LlamaCloud key, billed in credits by tier. Free plan with 10,000 credits a month, no card. Breaking SDK changes shipped as minor releases (files.get renamed, classify v1 removed).\n\n- Page: https://www.anchorterminal.com/tools/llamaparse · Markdown: https://www.anchorterminal.com/tools/llamaparse.md · JSON: https://www.anchorterminal.com/api/v1/tools/llamaparse.json\n- Capabilities: docs.parse, docs.ocr, docs.extract, docs.tables, docs.chunk, docs.classify · endpoint: `https://api.cloud.llamaindex.ai/api/v2`\n\n### 271. Mistral OCR API, C (59)\n\nMistral's OCR API for extracting content from documents. 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- Page: https://www.anchorterminal.com/tools/mistral-ocr · Markdown: https://www.anchorterminal.com/tools/mistral-ocr.md · JSON: https://www.anchorterminal.com/api/v1/tools/mistral-ocr.json\n- Capabilities: docs.parse, docs.ocr, docs.extract, docs.tables · endpoint: `https://api.mistral.ai/v1`\n\n### 307. Adobe PDF Services / PDF Extract API, C (56)\n\nAdobe's REST API for reading and changing PDFs. Public OpenAPI 3.0.1 spec covering Extract, PDF to Markdown and 20 other operations. No published paid price, paid use goes through sales.\n\n- Page: https://www.anchorterminal.com/tools/adobe-pdf-extract · Markdown: https://www.anchorterminal.com/tools/adobe-pdf-extract.md · JSON: https://www.anchorterminal.com/api/v1/tools/adobe-pdf-extract.json\n- Capabilities: docs.parse, docs.ocr, docs.extract, docs.tables, pdf.convert, pdf.merge, pdf.forms, pdf.generate, pdf.extract · endpoint: `https://pdf-services.adobe.io`\n\n### 315. Veryfi API + MCP, C (55.4)\n\nReceipt, invoice, bank statement, cheque and W-2 extraction API priced per document, with fraud checks as add-ons. Typed fields and line items for receipts, invoices, cheques, bank statements and tax forms. API outage on 29 September and degraded, incomplete extraction on 1 October.\n\n- Page: https://www.anchorterminal.com/tools/veryfi · Markdown: https://www.anchorterminal.com/tools/veryfi.md · JSON: https://www.anchorterminal.com/api/v1/tools/veryfi.json\n- Capabilities: docs.ocr, docs.extract, docs.tables, docs.classify · endpoint: `https://api.veryfi.com/api/v8/partner`\n\n### 390. Unstructured API + MCP, D (47)\n\nUnstructured Transform is a hosted parse and schema-extract API with an official hosted MCP server that partitions, chunks and embeds files. 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- Page: https://www.anchorterminal.com/tools/unstructured · Markdown: https://www.anchorterminal.com/tools/unstructured.md · JSON: https://www.anchorterminal.com/api/v1/tools/unstructured.json\n- Capabilities: docs.parse, docs.ocr, docs.extract, docs.tables, docs.chunk · endpoint: `https://transform.unstructured.io/api/v2`\n\n### 413. Nanonets API + MCP, E (42.6)\n\nOCR and field extraction from PDFs, scans and images. Extraction API returns Markdown, CSV or JSON, with named fields or a JSON schema. No public changelog and no dated release in the last 90 days.\n\n- Page: https://www.anchorterminal.com/tools/nanonets · Markdown: https://www.anchorterminal.com/tools/nanonets.md · JSON: https://www.anchorterminal.com/api/v1/tools/nanonets.json\n- Capabilities: docs.parse, docs.ocr, docs.extract, docs.tables, docs.classify · endpoint: `https://extraction-api.nanonets.com/api/v2`\n\n### 430. PDF.co API + MCP, E (38.2)\n\nCredit-billed REST API for merging, splitting, converting, filling and securing PDFs, plus PDF to text, CSV, JSON and Excel, template parsing and an AI invoice parser. OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs. No status page. status.pdf.co redirects to betterstack.com/uptime.\n\n- Page: https://www.anchorterminal.com/tools/pdf-co · Markdown: https://www.anchorterminal.com/tools/pdf-co.md · JSON: https://www.anchorterminal.com/api/v1/tools/pdf-co.json\n- Capabilities: pdf.convert, pdf.merge, pdf.forms, pdf.generate, pdf.extract, docs.ocr, docs.tables, docs.extract · endpoint: `https://api.pdf.co/v1`\n\n## How we test this category\n\nThe same scans, invoices, tables and long PDFs through every API. We score text accuracy, table structure, field extraction, page references, processing time and price per page. This test hasn't run yet, so Task success is pending and the grades here come from the categories assessed from public evidence.\n\n## Indexed, not reviewed (3)\n\nSorted into this category from public catalogues, with facts and our own checks but no score, grade or rank (https://www.anchorterminal.com/indexed/index.md).\n\n| Listing | Kind | What it does | Why it's here |\n| --- | --- | --- | --- |\n| [diemdesk.com MCP server](https://www.anchorterminal.com/tools/diemdesk-mcp.md) | MCP server | Convert Office files and PDFs, OCR a scan, or capture a web page — from your assistant. | vendor's own |\n| [nestr.io MCP server](https://www.anchorterminal.com/tools/nestr-mcp.md) | MCP server | Connect AI to Nestr for Holacracy, Sociocracy, and self-organizing teams. | vendor's own |\n| [Receipt Extraction](https://www.anchorterminal.com/tools/acjlabs-receipt-extraction.md) | MCP server | AU GST/ABN receipt extraction — assigns entertainment/ITC tax codes per line, not just OCR. | vendor's own |\n\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Document parsing \u0026 extraction",
        "url": ""
      }
    ],
    "description": "10 document parsing \u0026 extraction listings ranked by the Anchor benchmark. Leader Reducto API + MCP (B). APIs that turn scans, PDFs, invoices and forms into text, tables and structured fields an agent can use. Compared on text accuracy, table structure, field extraction, page references, processing time and price per page.",
    "facts": [
      "Reducto API + MCP B",
      "Extend API + MCP B",
      "Mindee API C"
    ],
    "h1": "Document parsing, OCR and extraction APIs for AI agents",
    "image": "https://www.anchorterminal.com/assets/og/categories-document-extraction.png",
    "path": "/categories/document-extraction",
    "published": "",
    "section": "tools",
    "title": "Document parsing, OCR and extraction APIs for AI agents, ranked",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/categories/document-extraction"
  },
  "tokens": {
    "markdown": 2850,
    "slim": 530
  },
  "version": 1
}
