{
  "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": "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-04T23:32:53.057745988Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 451,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 444,
          "p95ms24h": 478,
          "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.reducto.ai",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:28:00.69279905Z"
        },
        "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-04T23:32:53.057745988Z"
      }
    },
    "summary": "Reducto API + MCP has a score of 63.2 (B) against Adobe PDF Services / PDF Extract API's 56 (C). Both do docs parse. The largest gap is agent ergonomics, 27 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-reducto",
    "json": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-reducto.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-reducto.md",
    "slim": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-reducto.min.md"
  },
  "markdown": "Reducto API + MCP has a score of 63.2 (B) against Adobe PDF Services / PDF Extract API's 56 (C). Both do docs parse. The largest gap is agent ergonomics, 27 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- Reducto API + MCP: grade B, 63.2/100, rank #207 of 452. Markdown https://www.anchorterminal.com/tools/reducto.md · JSON https://www.anchorterminal.com/api/v1/tools/reducto.json\n\n## Which one, for what\n\nPick Adobe PDF Services / PDF Extract API for security \u0026 auth (+20), transparency \u0026 trust (+20).\n\nPick Reducto API + MCP for reliability (+22), agent ergonomics (+27), payments \u0026 pricing (+10), maintenance \u0026 community (+27).\n\n## Score by category\n\n| Category | Weight | Adobe PDF Services / PDF Extract API | Reducto API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 72 | Reducto API + MCP +22 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 80 | 80 | even |\n| Agent ergonomics | 13% (16.2 this run) | 57 | 84 | Reducto API + MCP +27 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 35 | Adobe PDF Services / PDF Extract API +20 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 30 | Reducto API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 53 | 80 | Reducto API + MCP +27 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 60 | Adobe PDF Services / PDF Extract API +20 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **56 · C** | **63.2 · B** | |\n\n## Facts side by side\n\n| Fact | Adobe PDF Services / PDF Extract API | Reducto API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Adobe | Reducto |\n| Hosted endpoint | `https://pdf-services.adobe.io` | `https://platform.reducto.ai` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth | API key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | none | none |\n| Tools exposed | none | 9 |\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 | 2026-09-11 |\n| Popularity | 165 stars, 82k npm/wk, 58k PyPI/wk | 342k npm/wk, 1.1M PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 4/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**Reducto API + MCP.** 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## 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### Reducto API + MCP\n\n1. Use `/parse_async` or `/extract_async` with a webhook for anything long; sync calls time out at 900 seconds\n2. Pass `jobid://\u003cjob_id\u003e` from a parse into extract or split so you don't pay to parse twice\n3. Call `get_job` when a tool returns a URL result instead of reading fields from the truncated reply\n4. The hosted MCP can't read local files; run `uvx mcp-server-reducto` when the agent needs to upload from disk\n5. Set `REDUCTO_TELEMETRY=0` in the local server's environment to turn off usage telemetry\n\n## Other comparisons with Adobe PDF Services / PDF Extract API or Reducto 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 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 Reducto API + MCP](https://www.anchorterminal.com/compare/extend-vs-reducto.md)\n- [LlamaParse API + MCP vs Reducto API + MCP](https://www.anchorterminal.com/compare/llamaparse-vs-reducto.md)\n- [Mistral OCR API vs Reducto API + MCP](https://www.anchorterminal.com/compare/mistral-ocr-vs-reducto.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- [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 Reducto API + MCP](https://www.anchorterminal.com/compare/mindee-vs-reducto.md)\n- [Reducto API + MCP vs Veryfi API + MCP](https://www.anchorterminal.com/compare/reducto-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 Reducto API + MCP",
        "url": ""
      }
    ],
    "description": "Reducto API + MCP has a score of 63.2 (B) against Adobe PDF Services / PDF Extract API's 56 (C). Both do docs parse. The largest gap is agent ergonomics, 27 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Adobe PDF Services / PDF Extract API C 56",
      "Reducto API + MCP B 63.2",
      "scores"
    ],
    "h1": "Adobe PDF Services / PDF Extract API vs Reducto API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-adobe-pdf-extract-vs-reducto.png",
    "path": "/compare/adobe-pdf-extract-vs-reducto",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Adobe PDF Services / PDF Extract API vs Reducto API + MCP",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/adobe-pdf-extract-vs-reducto"
  },
  "tokens": {
    "markdown": 1650,
    "slim": 380
  },
  "version": 1
}
