{
  "data": {
    "a": {
      "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-05T03:17:29.335020482Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 432,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.74,
          "p50ms24h": 447,
          "p95ms24h": 491,
          "samples24h": 273,
          "samples30d": 1140,
          "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": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 38,
              "ok": 38
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.nanonets.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T03:19:09.311625124Z"
        },
        "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-05T03:19:09.311625124Z"
      }
    },
    "b": {
      "slug": "unstructured",
      "name": "Unstructured API + MCP",
      "vendor": "Unstructured",
      "vendorUrl": "https://unstructured.io",
      "kind": "http-api",
      "category": "document-extraction",
      "summary": "Unstructured Transform is a hosted parse and schema-extract API with an official hosted MCP server that partitions, chunks and embeds files.",
      "url": "https://www.anchorterminal.com/tools/unstructured",
      "markdownUrl": "https://www.anchorterminal.com/tools/unstructured.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/unstructured.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/unstructured.json",
      "repo": "https://github.com/Unstructured-IO/unstructured",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://transform.unstructured.io/api/v2",
      "packages": [
        {
          "registry": "pypi",
          "name": "unstructured-transform-client"
        },
        {
          "registry": "npm",
          "name": "unstructured-transform-client"
        },
        {
          "registry": "pypi",
          "name": "unstructured"
        },
        {
          "registry": "pypi",
          "name": "unstructured-client"
        }
      ],
      "auth": "mixed",
      "authNotes": "Transform API takes the key in an unstructured-api-key header. The hosted MCP uses OAuth, or the same key as a bearer token. Business customers get a separate API URL and one key per workspace from platform.unstructured.io or their dedicated instance.",
      "pricing": "usage",
      "pricingNotes": "Transform processes the first 10,000 pages free once per account, no card. After that pay as you go is $0.015 a page, billed monthly; requests fail past 10,000 pages until you add a card. Business (dedicated instance, VPC or multi-tenant SaaS) is custom. The open-source library is free and you pay only for your own compute (https://unstructured.io/pricing).",
      "priceSummary": "$15 / 1k pages",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or per-call crypto payment in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 15520,
        "npmWeekly": 385,
        "pypiWeekly": 612156,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.unstructured.io/transform/overview",
      "llmsTxt": "https://docs.unstructured.io/llms.txt",
      "registryName": "io.unstructured/transform",
      "capabilities": [
        "docs.parse",
        "docs.ocr",
        "docs.extract",
        "docs.tables",
        "docs.chunk"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "mcp",
        "llms-txt",
        "python",
        "typescript",
        "async-jobs",
        "enterprise",
        "open-source",
        "self-hosted",
        "local"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 47,
        "grade": "D",
        "agentReady": false,
        "rank": 390,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 8,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 58,
          "maintenance": 80,
          "payments": 40,
          "reliability": 27,
          "schema": 51,
          "security": 42,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Apache-2.0 library partitions 45+ file types locally at no cost, tagged 11 times since 3 July. No status page, no published rate limits and no SLA.",
        "strengths": [
          "Apache-2.0 library partitions 45+ file types locally at no cost, tagged 11 times since 3 July",
          "Flat $0.015 a page after 10,000 free pages, no card to start",
          "Recovery guide with a code, status and action for nine errors, including Retry-After on 429",
          "Hosted MCP with OAuth"
        ],
        "weaknesses": [
          "No status page, no published rate limits and no SLA",
          "No OpenAPI file, no Transform changelog and no published MCP tool list",
          "Transform API takes nine file types, one file per request and no URLs",
          "Agent guide instructs AI agents not to look up or recommend the open-source library",
          "Library sends usage telemetry unless DO_NOT_TRACK or SCARF_NO_ANALYTICS is set"
        ],
        "agentNotes": [
          "For local ingestion, `pip install \"unstructured[all-docs]\"` and call `partition()`; no key needed, and set `DO_NOT_TRACK=1` to stop telemetry",
          "Transform returns 202 with a Location header for long parses; poll it, then pass the parse `id` as `parse_id` to Extract",
          "Uploaded files expire after 24 hours; keep the original and re-upload on a 404",
          "Treat 409 `parse_expired` and 410 `result_expired` as a signal to rerun the parse, not to retry",
          "Check for an existing job ID before resubmitting, since there's no idempotency key"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 47
          }
        ],
        "editorialScores": {
          "ergonomics": 58,
          "maintenance": 80,
          "payments": 40,
          "reliability": 27,
          "schema": 51,
          "security": 42,
          "transparency": 38
        },
        "provenanceScore": 65
      },
      "connect": {
        "install": "pip install \"unstructured[all-docs]\"   # local library; or: pip install unstructured-transform-client",
        "http": "curl https://transform.unstructured.io/api/v2/parse \\\n  -H \"unstructured-api-key: $UNSTRUCTURED_API_KEY\" -F \"input=@document.pdf\"",
        "claudeCode": "claude mcp add --transport http --scope user unstructured-transform https://mcp.transform.unstructured.io"
      },
      "letme": {
        "capability": "https://letme.dev/docs.parse",
        "tool": "https://letme.dev/unstructured"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Transform pay as you go",
          "unit": "1k-pages",
          "usd": 15,
          "note": "after the first 10,000 free pages"
        }
      ],
      "provenance": {
        "legalEntity": "Unstructured Technologies, Inc.",
        "domain": "unstructured.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://unstructured.io/terms-and-conditions",
        "privacy": "https://unstructured.io/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/Unstructured-IO/unstructured/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "RDAP has no service for .io, so the registration date is unknown",
          "The changelog is the open-source library's; no changelog is published for Transform"
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/unstructured.json",
      "live": {
        "slug": "unstructured",
        "probe": {
          "target": "https://transform.unstructured.io/api/v2",
          "method": "get",
          "lastAt": "2026-10-05T03:17:34.463066255Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 591,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.91,
          "p50ms24h": 590,
          "p95ms24h": 633,
          "samples24h": 273,
          "samples30d": 1140,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 247
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 38,
              "ok": 38
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "Unstructured-IO/unstructured",
            "version": "0.27.10",
            "released": "2026-09-27",
            "seenAt": "2026-10-04T16:42:55.095805963Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.unstructured/transform",
            "version": "0.7.2",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "unstructured-transform-client",
            "version": "0.18.25",
            "seenAt": "2026-10-04T16:42:51.194574206Z"
          },
          {
            "registry": "pypi",
            "name": "unstructured",
            "version": "0.27.10",
            "released": "2026-09-27",
            "seenAt": "2026-10-04T16:42:51.901885429Z"
          },
          {
            "registry": "pypi",
            "name": "unstructured-client",
            "version": "0.46.2",
            "released": "2026-08-24",
            "seenAt": "2026-10-04T16:42:53.100589618Z"
          },
          {
            "registry": "pypi",
            "name": "unstructured-transform-client",
            "version": "0.18.25",
            "released": "2026-10-04",
            "seenAt": "2026-10-04T16:42:51.085774814Z"
          }
        ],
        "githubStars": 15528,
        "npmWeekly": 738,
        "pypiWeekly": 326,
        "securityTxt": {
          "url": "https://unstructured.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:45.908901563Z"
        },
        "llmsTxt": {
          "url": "https://docs.unstructured.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:19.765975201Z"
        },
        "domain": {
          "domain": "unstructured.io",
          "checkedAt": "2026-10-04T13:05:08.539121016Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/Unstructured-IO/unstructured/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:21.332820363Z",
            "changedAt": "2026-10-04T15:47:21.332820363Z",
            "fingerprint": "e35794a07326"
          },
          {
            "url": "https://unstructured.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:39.387615056Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d6877dc0b772"
          },
          {
            "url": "https://unstructured.io/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:41.815977787Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1bd0fb908474"
          },
          {
            "url": "https://unstructured.io/terms-and-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:43.879909961Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "11aaded220fc"
          }
        ],
        "updatedAt": "2026-10-05T03:17:34.463066255Z"
      }
    },
    "summary": "Unstructured API + MCP has a score of 47 (D) against Nanonets API + MCP's 42.6 (E). Both do docs parse. The largest gap is maintenance \u0026 community, 72 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/nanonets-vs-unstructured",
    "json": "https://www.anchorterminal.com/compare/nanonets-vs-unstructured.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/nanonets-vs-unstructured.md",
    "slim": "https://www.anchorterminal.com/compare/nanonets-vs-unstructured.min.md"
  },
  "markdown": "Unstructured API + MCP has a score of 47 (D) against Nanonets API + MCP's 42.6 (E). Both do docs parse. The largest gap is maintenance \u0026 community, 72 points.\n\n- Nanonets API + MCP: grade E, 42.6/100, rank #413 of 452. Markdown https://www.anchorterminal.com/tools/nanonets.md · JSON https://www.anchorterminal.com/api/v1/tools/nanonets.json\n- Unstructured API + MCP: grade D, 47/100, rank #390 of 452. Markdown https://www.anchorterminal.com/tools/unstructured.md · JSON https://www.anchorterminal.com/api/v1/tools/unstructured.json\n\n## Which one, for what\n\nPick Nanonets API + MCP for reliability (+18), schema \u0026 documentation (+10), transparency \u0026 trust (+13).\n\nPick Unstructured API + MCP for agent ergonomics (+11), security \u0026 auth (+12), payments \u0026 pricing (+5), maintenance \u0026 community (+72).\n\n## Score by category\n\n| Category | Weight | Nanonets API + MCP | Unstructured API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 27 | Nanonets API + MCP +18 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 61 | 51 | Nanonets API + MCP +10 |\n| Agent ergonomics | 13% (16.2 this run) | 47 | 58 | Unstructured API + MCP +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 30 | 42 | Unstructured API + MCP +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 40 | Unstructured API + MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 8 | 80 | Unstructured API + MCP +72 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 52 | Nanonets API + MCP +13 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **42.6 · E** | **47 · D** | |\n\n## Facts side by side\n\n| Fact | Nanonets API + MCP | Unstructured API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Nanonets | Unstructured |\n| Hosted endpoint | `https://extraction-api.nanonets.com/api/v2` | `https://transform.unstructured.io/api/v2` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | MIT (docstrange library) | Apache-2.0 |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.unstructured/transform` |\n| Last release | 2025-10-31 | 2026-09-30 |\n| Popularity | 1.6k stars, 47 PyPI/wk | 16k stars, 385 npm/wk, 612k PyPI/wk |\n| Agent reviews | 2/5 (2) | 2.5/5 (2) |\n\n## Verdicts\n\n**Nanonets API + MCP.** 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**Unstructured API + MCP.** Apache-2.0 library partitions 45+ file types locally at no cost, tagged 11 times since 3 July. No status page, no published rate limits and no SLA.\n\n## Before you call either\n\n### Nanonets API + MCP\n\n1. Use the extraction API at `extraction-api.nanonets.com`, not `app.nanonets.com`, unless you already have a trained model\n2. Pass a JSON schema in `json_options` when downstream code needs fixed field names\n3. Use the async extract endpoints for long documents and poll `/api/v1/extract/results/{record_id}`\n4. On a 429, wait 30 seconds and double the delay each retry\n5. Budget per page, since a 10-page PDF through an extraction block is 10 runs\n\n### Unstructured API + MCP\n\n1. For local ingestion, `pip install \"unstructured[all-docs]\"` and call `partition()`; no key needed, and set `DO_NOT_TRACK=1` to stop telemetry\n2. Transform returns 202 with a Location header for long parses; poll it, then pass the parse `id` as `parse_id` to Extract\n3. Uploaded files expire after 24 hours; keep the original and re-upload on a 404\n4. Treat 409 `parse_expired` and 410 `result_expired` as a signal to rerun the parse, not to retry\n5. Check for an existing job ID before resubmitting, since there's no idempotency key\n\n## Other comparisons with Nanonets API + MCP or Unstructured API + MCP\n\n- [Adobe PDF Services / PDF Extract API vs Nanonets API + MCP](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-nanonets.md)\n- [Adobe PDF Services / PDF Extract API vs Unstructured API + MCP](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-unstructured.md)\n- [Extend API + MCP vs Nanonets API + MCP](https://www.anchorterminal.com/compare/extend-vs-nanonets.md)\n- [Extend API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/extend-vs-unstructured.md)\n- [LlamaParse API + MCP vs Nanonets API + MCP](https://www.anchorterminal.com/compare/llamaparse-vs-nanonets.md)\n- [LlamaParse API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/llamaparse-vs-unstructured.md)\n- [Mistral OCR API vs Nanonets API + MCP](https://www.anchorterminal.com/compare/mistral-ocr-vs-nanonets.md)\n- [Mistral OCR API vs Unstructured API + MCP](https://www.anchorterminal.com/compare/mistral-ocr-vs-unstructured.md)\n- [Nanonets API + MCP vs Reducto API + MCP](https://www.anchorterminal.com/compare/nanonets-vs-reducto.md)\n- [Reducto API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/reducto-vs-unstructured.md)\n- [Mindee API vs Nanonets API + MCP](https://www.anchorterminal.com/compare/mindee-vs-nanonets.md)\n- [Mindee API vs Unstructured API + MCP](https://www.anchorterminal.com/compare/mindee-vs-unstructured.md)\n- [Nanonets API + MCP vs Veryfi API + MCP](https://www.anchorterminal.com/compare/nanonets-vs-veryfi.md)\n- [Unstructured API + MCP vs Veryfi API + MCP](https://www.anchorterminal.com/compare/unstructured-vs-veryfi.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Nanonets API + MCP vs Unstructured API + MCP",
        "url": ""
      }
    ],
    "description": "Unstructured API + MCP has a score of 47 (D) against Nanonets API + MCP's 42.6 (E). Both do docs parse. The largest gap is maintenance \u0026 community, 72 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Nanonets API + MCP E 42.6",
      "Unstructured API + MCP D 47",
      "scores"
    ],
    "h1": "Nanonets API + MCP vs Unstructured API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-nanonets-vs-unstructured.png",
    "path": "/compare/nanonets-vs-unstructured",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Nanonets API + MCP vs Unstructured API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/nanonets-vs-unstructured"
  },
  "tokens": {
    "markdown": 1650,
    "slim": 380
  },
  "version": 1
}
