{
  "data": {
    "a": {
      "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-04T23:32:42.606455124Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 251,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 258,
          "p95ms24h": 302,
          "samples24h": 272,
          "samples30d": 1097,
          "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": 267,
              "ok": 267
            }
          ]
        },
        "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-04T23:32:42.606455124Z"
      }
    },
    "b": {
      "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-04T23:32:50.98496352Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 455,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.73,
          "p50ms24h": 447,
          "p95ms24h": 491,
          "samples24h": 272,
          "samples30d": 1097,
          "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": 267,
              "ok": 267
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.nanonets.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:27:54.187838415Z"
        },
        "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-04T23:32:50.98496352Z"
      }
    },
    "summary": "Adobe PDF Services / PDF Extract API has a score of 56 (C) against Nanonets API + MCP's 42.6 (E). Both do docs parse. The largest gap is maintenance \u0026 community, 45 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-nanonets",
    "json": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-nanonets.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-nanonets.md",
    "slim": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-nanonets.min.md"
  },
  "markdown": "Adobe PDF Services / PDF Extract API has a score of 56 (C) against Nanonets API + MCP's 42.6 (E). Both do docs parse. The largest gap is maintenance \u0026 community, 45 points.\n\n- Adobe PDF Services / PDF Extract API: grade C, 56/100, rank #307 of 452. Markdown https://www.anchorterminal.com/tools/adobe-pdf-extract.md · JSON https://www.anchorterminal.com/api/v1/tools/adobe-pdf-extract.json\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\n## Which one, for what\n\nPick Adobe PDF Services / PDF Extract API for reliability (+5), schema \u0026 documentation (+19), agent ergonomics (+10), security \u0026 auth (+25), maintenance \u0026 community (+45), transparency \u0026 trust (+15).\n\nPick Nanonets API + MCP for payments \u0026 pricing (+15).\n\n## Score by category\n\n| Category | Weight | Adobe PDF Services / PDF Extract API | Nanonets API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 45 | Adobe PDF Services / PDF Extract API +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 80 | 61 | Adobe PDF Services / PDF Extract API +19 |\n| Agent ergonomics | 13% (16.2 this run) | 57 | 47 | Adobe PDF Services / PDF Extract API +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 30 | Adobe PDF Services / PDF Extract API +25 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 35 | Nanonets API + MCP +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 53 | 8 | Adobe PDF Services / PDF Extract API +45 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 65 | Adobe PDF Services / PDF Extract API +15 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **56 · C** | **42.6 · E** | |\n\n## Facts side by side\n\n| Fact | Adobe PDF Services / PDF Extract API | Nanonets API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Adobe | Nanonets |\n| Hosted endpoint | `https://pdf-services.adobe.io` | `https://extraction-api.nanonets.com/api/v2` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | none | MIT (docstrange library) |\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 | no | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-08-10 | 2025-10-31 |\n| Popularity | 165 stars, 82k npm/wk, 58k PyPI/wk | 1.6k stars, 47 PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 2/5 (2) |\n\n## Verdicts\n\n**Adobe PDF Services / PDF Extract API.** 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**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## Before you call either\n\n### Adobe PDF Services / PDF Extract API\n\n1. Cache the access token and reuse it until it expires\n2. Budget 1 Document Transaction per 5 pages for Extract and PDF to Markdown, so 500 free transactions cover about 2,500 pages\n3. Pass `notifiers` with a callback URL instead of polling the job status\n4. Use `pdf-services-ew1.adobe.io` when documents must stay in the EU\n5. Check `/operation/pdfproperties` first, since copy-protected PDFs fail Extract with DISQUALIFIED_PERMISSIONS\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## Other comparisons with Adobe PDF Services / PDF Extract API or Nanonets API + MCP\n\n- [Adobe PDF Services / PDF Extract API vs Extend API + MCP](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-extend.md)\n- [Adobe PDF Services / PDF Extract API vs LlamaParse API + MCP](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-llamaparse.md)\n- [Adobe PDF Services / PDF Extract API vs Mistral OCR API](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-mistral-ocr.md)\n- [Adobe PDF Services / PDF Extract API vs Reducto API + MCP](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-reducto.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- [LlamaParse API + MCP vs Nanonets API + MCP](https://www.anchorterminal.com/compare/llamaparse-vs-nanonets.md)\n- [Mistral OCR API vs Nanonets API + MCP](https://www.anchorterminal.com/compare/mistral-ocr-vs-nanonets.md)\n- [Nanonets API + MCP vs Reducto API + MCP](https://www.anchorterminal.com/compare/nanonets-vs-reducto.md)\n- [Nanonets API + MCP vs Unstructured API + MCP](https://www.anchorterminal.com/compare/nanonets-vs-unstructured.md)\n- [Adobe PDF Services / PDF Extract API vs Mindee API](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-mindee.md)\n- [Adobe PDF Services / PDF Extract API vs Veryfi API + MCP](https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-veryfi.md)\n- [Mindee API vs Nanonets API + MCP](https://www.anchorterminal.com/compare/mindee-vs-nanonets.md)\n- [Nanonets API + MCP vs Veryfi API + MCP](https://www.anchorterminal.com/compare/nanonets-vs-veryfi.md)\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": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Adobe PDF Services / PDF Extract API vs Nanonets API + MCP",
        "url": ""
      }
    ],
    "description": "Adobe PDF Services / PDF Extract API has a score of 56 (C) against Nanonets API + MCP's 42.6 (E). Both do docs parse. The largest gap is maintenance \u0026 community, 45 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Adobe PDF Services / PDF Extract API C 56",
      "Nanonets API + MCP E 42.6",
      "scores"
    ],
    "h1": "Adobe PDF Services / PDF Extract API vs Nanonets API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-adobe-pdf-extract-vs-nanonets.png",
    "path": "/compare/adobe-pdf-extract-vs-nanonets",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Adobe PDF Services / PDF Extract API vs Nanonets API + MCP",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-nanonets"
  },
  "tokens": {
    "markdown": 1650,
    "slim": 380
  },
  "version": 1
}
