{
  "data": {
    "a": {
      "slug": "nutrient-dws-processor",
      "name": "Nutrient DWS Processor API",
      "vendor": "Nutrient (PSPDFKit GmbH)",
      "vendorUrl": "https://www.nutrient.io",
      "kind": "http-api",
      "category": "pdf-tools",
      "summary": "Hosted REST API from Nutrient (formerly PSPDFKit) that generates, converts, merges, OCRs, redacts, watermarks and signs PDF and Office documents. Agents call it with a Bearer key or through a local stdio MCP server.",
      "url": "https://www.anchorterminal.com/tools/nutrient-dws-processor",
      "markdownUrl": "https://www.anchorterminal.com/tools/nutrient-dws-processor.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nutrient-dws-processor.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nutrient-dws-processor.json",
      "repo": "https://github.com/PSPDFKit/nutrient-dws-mcp-server",
      "license": "Proprietary service under the Nutrient DWS API licence agreement. The MCP server and the TypeScript and Python clients are MIT",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.nutrient.io",
      "packages": [
        {
          "registry": "npm",
          "name": "@nutrient-sdk/dws-mcp-server"
        },
        {
          "registry": "npm",
          "name": "@nutrient-sdk/dws-client-typescript"
        },
        {
          "registry": "pypi",
          "name": "nutrient-dws"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. A person signs up at dashboard.nutrient.io and copies a live key, sent as `Authorization: Bearer \u003ckey\u003e`. Keys can be scoped to one DWS product. `POST /tokens` issues a JWT limited to named operations and origins, valid for one hour by default and at most 24, and revocable with `DELETE /tokens`. The MCP server uses OAuth in a browser (PKCE, dynamic client registration, scopes such as `product:processor`) or `NUTRIENT_DWS_API_KEY` for headless use. Test keys need Support to enable them.",
      "pricing": "freemium",
      "pricingNotes": "Free plan of 50 credits a month, no card, with watermarked output. Paid plans are Starter $75 a month for 1,000 credits, Growth $275 for 5,000 and Pro $445 for 10,000, with 10 per cent off billed yearly and custom plans above that. Most tools cost a fixed number of credits per use, from 0.5 to 10, and AI redaction is priced per page. Pay-as-you-go overage has a spending cap, and on the free plan starts with a $25 wallet load. The per-credit overage rate was not readable (https://www.nutrient.io/api/pricing/processor-api/, checked 2026-10-08).",
      "priceSummary": "$75 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the guides, the OpenAPI document, the pricing page or the MCP server README (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": 71,
        "npmWeekly": 2701,
        "pypiWeekly": 2214,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.nutrient.io/guides/dws-processor/",
      "llmsTxt": "https://www.nutrient.io/guides/dws-processor/llms.txt",
      "openapi": "https://cdn.cloud.nutrient.io/dws/assets/specs/public@1.19.0-ec566a84de4ef6c97fd9b586262ddcc4.yml",
      "registryName": "io.github.PSPDFKit/nutrient-dws-mcp-server",
      "capabilities": [
        "pdf.convert",
        "pdf.merge",
        "pdf.forms",
        "pdf.generate",
        "pdf.extract",
        "docs.ocr",
        "docs.tables"
      ],
      "tags": [
        "hosted",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "typescript",
        "python",
        "async-jobs",
        "free-tier",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-08-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.7,
        "grade": "B",
        "agentReady": false,
        "rank": 197,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 84,
          "maintenance": 78,
          "payments": 40,
          "reliability": 68,
          "schema": 84,
          "security": 66,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-10-08. The product page FAQ says the API runs without strict rate limits or hard caps, while the pricing guide sets 100 requests a minute per key on every plan. The MCP product page also invites users to start on a free test key, which the test-mode guide says Support must enable first. Two points (https://www.nutrient.io/api/processor-api/, https://www.nutrient.io/guides/dws-processor/pricing.md)."
        ],
        "verdict": "A public OpenAPI 3.1 document, JSONPath-level error bodies and OAuth or operation-limited tokens make the API easy for an agent to call, and 50 free credits a month need no card. The status feed shows 61 minutes of platform downtime on 13 July 2026, and the terms let plans with data retention train models on submitted files.",
        "bestFor": "An agent that must change or produce documents (merge, convert, OCR, redact, sign, fill forms) in one chained request with predictable per-use cost.",
        "strengths": [
          "OpenAPI 3.1 document (version 1.19.0) for 17 operations, with llms.txt indexes and a Markdown twin of every guide",
          "Errors return `failingPaths` in JSONPath form, a `requestId`, and machine-readable `error.reason` codes for async jobs",
          "OAuth with PKCE, dynamic client registration and per-product scopes, plus JWTs limited by operation, origin and expiry of up to 24 hours",
          "All eight MCP tools carry `readOnlyHint`, `destructiveHint`, `idempotentHint` and `openWorldHint`, and file access can be confined to a sandbox directory",
          "Free plan of 50 credits a month with no card, and the vendor says failed requests (4xx or 5xx) cost no credits"
        ],
        "weaknesses": [
          "The status feed records 61 minutes of DWS Platform downtime on 13 July 2026 and five days with Processor API downtime since 23 July",
          "Plans with data retention enabled let Nutrient keep files and train models on them, and no public page says which plans those are",
          "The product page says there are no strict rate limits, while the pricing guide sets 100 requests a minute per key on every plan",
          "No public API changelog or deprecation policy was found, and the terms allow changes to the API at any time",
          "`Idempotency-Key` works only on async `/build` requests, and free-plan output is watermarked"
        ],
        "agentNotes": [
          "Send `Authorization: Bearer \u003ckey\u003e` to `https://api.nutrient.io`. Use `POST /build` with an `instructions` JSON part to chain several actions in one charged request",
          "Call `POST /analyze_build` first to get the credit cost of a build. The call is free",
          "Stay under 100 requests a minute per key and back off exponentially on 429. Test keys allow 10 a minute and 5 MB",
          "For long jobs send `Prefer: respond-async` with an `Idempotency-Key`, then poll the `Location` URL with `X-Async-Job-Token` after `Retry-After`",
          "Set `SANDBOX_PATH` for the MCP server. Without it the server reads and writes any path the user account can reach"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.7
          }
        ],
        "editorialScores": {
          "ergonomics": 84,
          "maintenance": 78,
          "payments": 40,
          "reliability": 68,
          "schema": 84,
          "security": 66,
          "transparency": 62
        },
        "provenanceScore": 84
      },
      "connect": {
        "install": "npm install @nutrient-sdk/dws-client-typescript",
        "http": "curl -X POST 'https://api.nutrient.io/build' \\\n  -H 'Authorization: Bearer YOUR_API_KEY' \\\n  -F 'index.html=@index.html' \\\n  -F 'instructions={\"parts\":[{\"html\":\"index.html\"}]}' \\\n  -o hello.pdf",
        "config": {
          "mcpServers": {
            "nutrient-dws": {
              "args": [
                "-y",
                "@nutrient-sdk/dws-mcp-server"
              ],
              "command": "npx",
              "env": {
                "SANDBOX_PATH": "/your/sandbox/directory"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/pdf.convert",
        "tool": "https://letme.dev/nutrient-dws-processor"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 75,
          "note": "1,000 credits. $67 a month billed yearly"
        },
        {
          "item": "Growth",
          "unit": "month",
          "usd": 275,
          "note": "5,000 credits. $247 a month billed yearly"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 445,
          "note": "10,000 credits. $399 a month billed yearly"
        },
        {
          "item": "Credit on Starter",
          "unit": "credit",
          "usd": 0.075,
          "note": "Worked out from $75 for 1,000 credits. Merge costs 1 credit, OCR 2, a digital signature 10"
        }
      ],
      "provenance": {
        "legalEntity": "PSPDFKit GmbH",
        "domain": "nutrient.io",
        "domainRegistered": "2019-12-03",
        "endpointOnVendorDomain": true,
        "terms": "https://www.nutrient.io/legal/cloud-terms/",
        "privacy": "https://www.nutrient.io/legal/privacy/",
        "statusPage": "https://www.nutrientstatus.com",
        "changelog": "https://github.com/PSPDFKit/nutrient-dws-mcp-server/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The DWS API licence agreement (last updated September 2026) names PSPDFKit GmbH, doing business as Nutrient, Kaiserstrasse 117/17, 1070 Vienna, Austria, and applies Austrian law. Section 9 and Schedule 1 are the data processing terms.",
          "The privacy policy has a Nutrient API section naming PSPDFKit GmbH as controller, with a Processor API subsection.",
          "The API answers at https://api.nutrient.io. An unauthenticated request returned 401 with a JSON error and request id.",
          "The status page is on a separate domain, www.nutrientstatus.com, run on Better Stack.",
          "The changelog link is the MCP server's. No public changelog for the API itself was found.",
          "www.nutrient.io/.well-known/security.txt returns 404. Reports go through www.nutrient.io/security/report-vulnerability/.",
          "RDAP for nutrient.io gives a registration date of 2019-12-03.",
          "robots.txt carries `Content-Signal: search=yes, ai-input=yes, ai-train=yes` for every user agent."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nutrient-dws-processor.json",
      "live": {
        "slug": "nutrient-dws-processor",
        "probe": {
          "target": "https://api.nutrient.io",
          "method": "get",
          "lastAt": "2026-10-09T09:26:58.796656608Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 254,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 175,
          "p95ms24h": 254,
          "samples24h": 20,
          "samples30d": 20,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 20,
              "ok": 20
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.nutrientstatus.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:13.620346657Z"
        },
        "updatedAt": "2026-10-09T09:26:58.796656608Z"
      }
    },
    "answer": "Nutrient DWS Processor API scores 68.7 (B) on agent readiness against PDF.co API + MCP's 37.9 (F), and leads in every scored category.",
    "b": {
      "slug": "pdf-co",
      "name": "PDF.co API + MCP",
      "vendor": "PDF.co (Artifex Software)",
      "vendorUrl": "https://pdf.co",
      "kind": "http-api",
      "category": "pdf-tools",
      "summary": "Credit-billed REST API for merging, splitting, converting, filling and securing PDFs, plus PDF to text, CSV, JSON and Excel, template parsing and an AI invoice parser.",
      "url": "https://www.anchorterminal.com/tools/pdf-co",
      "markdownUrl": "https://www.anchorterminal.com/tools/pdf-co.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pdf-co.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pdf-co.json",
      "repo": "https://github.com/pdfdotco/pdfco-mcp",
      "license": "MIT (MCP server)",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.pdf.co/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "pdfco-mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "`x-api-key` header. The MCP server reads the key from X_API_KEY.",
      "pricing": "paid",
      "pricingNotes": "Credit subscriptions. Basic $9.99 a month ($8.99 billed yearly) for 16,500 credits, Personal $24.99 ($22.49) for 37,000, Business 1 $49.99 ($44.99) for 80,500, Business 2 $99.99 ($89.99) for 159,850, Business 3 $300 ($270) for 483,000, Enterprise above 500,000. Monthly prices worked out from the yearly totals. Credits per page or per call vary by endpoint, e.g. merge 2 a page, PDF to text 21, Document Parser 42, AI invoice parser 100. A free trial exists but its size isn't on the page (https://pdf.co/pricing).",
      "priceSummary": "$9.99 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 in docs, MCP README or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 38,
      "popularity": {
        "githubStars": 9,
        "npmWeekly": null,
        "pypiWeekly": 20,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developer.pdf.co",
      "llmsTxt": "https://developer.pdf.co/llms.txt",
      "openapi": "https://developer.pdf.co/openapi.json",
      "capabilities": [
        "pdf.convert",
        "pdf.merge",
        "pdf.forms",
        "pdf.generate",
        "pdf.extract",
        "docs.ocr",
        "docs.tables",
        "docs.extract"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "async-jobs",
        "webhooks",
        "python"
      ],
      "lastRelease": "2026-07-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 37.9,
        "grade": "F",
        "agentReady": false,
        "rank": 817,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 34,
          "payments": 20,
          "reliability": 20,
          "schema": 74,
          "security": 23,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs. No status page. status.pdf.co redirects to betterstack.com/uptime.",
        "bestFor": "An agent that needs many PDF operations from one vendor and can handle files by URL.",
        "strengths": [
          "OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs",
          "Credit cost of each endpoint published per page or per call, from 2 for merge to 100 for the AI invoice parser",
          "Manipulation and extraction in one API, with 38 MCP tools covering both",
          "Output links expire after one hour by default and can be cut to one minute"
        ],
        "weaknesses": [
          "No status page. status.pdf.co redirects to betterstack.com/uptime",
          "Rate limits moved to per-minute windows in June 2026 but the numbers aren't published, and 429 carries no documented Retry-After",
          "No SLA, no security.txt, and terms that allow changes without notice",
          "MCP server has no tool annotations, no read-only mode and no tests, and `upload_file` reads any absolute path",
          "Trial size and card requirement aren't stated anywhere we looked"
        ],
        "agentNotes": [
          "Upload local files with `upload_file` or the presigned upload first, then pass the returned URL",
          "Read the `content` field, not `status`. The MCP server says `working` even when the API returned an error",
          "Call `wait_job_completion` after each job. Every MCP call runs async and returns a job id",
          "Download results within the hour. Output links expire after 60 minutes by default",
          "Keep the key in `X_API_KEY` and leave the `api_key` argument empty"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 37.9
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 34,
          "payments": 20,
          "reliability": 20,
          "schema": 74,
          "security": 23,
          "transparency": 42
        },
        "provenanceScore": 60
      },
      "connect": {
        "http": "curl https://api.pdf.co/v1/pdf/convert/to/text-simple \\\n  -H \"x-api-key: $PDFCO_API_KEY\" -H \"content-type: application/json\" \\\n  -d '{\"url\":\"https://pdfco-test-files.s3.us-west-2.amazonaws.com/pdf-to-csv/sample.pdf\",\"inline\":true}'",
        "claudeCode": "claude mcp add pdfco -e X_API_KEY=$PDFCO_API_KEY -- uvx pdfco-mcp",
        "config": {
          "mcpServers": {
            "pdfco": {
              "args": [
                "pdfco-mcp"
              ],
              "command": "uvx",
              "env": {
                "X_API_KEY": "${PDFCO_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/pdf.convert",
        "tool": "https://letme.dev/pdf-co"
      },
      "alsoIn": [
        "document-extraction"
      ],
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Basic",
          "unit": "month",
          "usd": 9.99,
          "note": "16,500 credits. $8.99 a month billed yearly"
        },
        {
          "item": "Personal",
          "unit": "month",
          "usd": 24.99,
          "note": "37,000 credits. $22.49 a month billed yearly"
        },
        {
          "item": "Business 1",
          "unit": "month",
          "usd": 49.99,
          "note": "80,500 credits. $44.99 a month billed yearly"
        },
        {
          "item": "Business 3",
          "unit": "month",
          "usd": 300,
          "note": "483,000 credits. $270 a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Artifex Software, Inc.",
        "domain": "pdf.co",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://pdf.co/resources/legal/terms",
        "privacy": "https://pdf.co/resources/legal/privacy",
        "statusPage": "",
        "changelog": "https://developer.pdf.co/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "RDAP has no service for .co, so the registration date is unread",
          "status.pdf.co redirects to betterstack.com/uptime rather than a status page"
        ],
        "score": 60
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pdf-co.json",
      "live": {
        "slug": "pdf-co",
        "probe": {
          "target": "https://api.pdf.co/v1",
          "method": "get",
          "lastAt": "2026-10-09T09:27:00.378030425Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 445,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 447,
          "p95ms24h": 476,
          "samples24h": 261,
          "samples30d": 2287,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 101,
              "ok": 101
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "pdfdotco/pdfco-mcp",
            "version": "0.0.9",
            "released": "2026-07-28",
            "seenAt": "2026-10-08T16:24:56.071344573Z"
          },
          {
            "registry": "pypi",
            "name": "pdfco-mcp",
            "version": "0.0.9",
            "released": "2026-07-28",
            "seenAt": "2026-10-08T16:24:55.886165515Z"
          }
        ],
        "githubStars": 9,
        "pypiWeekly": 21,
        "securityTxt": {
          "url": "https://pdf.co/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:43.350254482Z"
        },
        "llmsTxt": {
          "url": "https://developer.pdf.co/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:44.855714849Z"
        },
        "domain": {
          "domain": "pdf.co",
          "checkedAt": "2026-10-04T13:10:48.097773738Z"
        },
        "pages": [
          {
            "url": "https://developer.pdf.co/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:16.214392576Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3c375c1f7429"
          },
          {
            "url": "https://pdf.co/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-08T18:22:53.068516987Z",
            "changedAt": "2026-10-06T16:11:13.668509933Z",
            "fingerprint": "6e0f64eb25b8"
          },
          {
            "url": "https://pdf.co/resources/legal/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-08T18:22:55.207977072Z",
            "changedAt": "2026-10-06T16:11:15.865662656Z",
            "fingerprint": "f0d9bf8ac24f"
          },
          {
            "url": "https://pdf.co/resources/legal/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-08T18:22:57.23089674Z",
            "changedAt": "2026-10-06T16:11:17.843599671Z",
            "fingerprint": "d607e9e8dc87"
          }
        ],
        "updatedAt": "2026-10-09T09:27:00.378030425Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Nutrient (PSPDFKit GmbH)",
        "b": "PDF.co (Artifex Software)",
        "name": "Vendor"
      },
      {
        "a": "https://api.nutrient.io",
        "b": "https://api.pdf.co/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Nutrient DWS API licence agreement. The MCP server and the TypeScript and Python clients are MIT",
        "b": "MIT (MCP server)",
        "name": "Licence"
      },
      {
        "a": "8",
        "b": "38",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.PSPDFKit/nutrient-dws-mcp-server",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-08-27",
        "b": "2026-07-28",
        "name": "Last release"
      },
      {
        "a": "2026-09-01",
        "b": "2026-03-24",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "71 stars, 2.7k npm/wk, 2.2k PyPI/wk",
        "b": "9 stars, 20 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Nutrient DWS Processor API scores 68.7 (B) on agent readiness against PDF.co API + MCP's 37.9 (F), and leads in every scored category.",
        "question": "Which is better for AI agents, Nutrient DWS Processor API or PDF.co API + MCP?"
      },
      {
        "answer": "Nutrient DWS Processor API takes an API key or an OAuth sign-in. PDF.co API + MCP needs an API key.",
        "question": "Do Nutrient DWS Processor API and PDF.co API + MCP need an API key?"
      },
      {
        "answer": "Yes. Nutrient DWS Processor API has a hosted endpoint at https://api.nutrient.io and PDF.co API + MCP at https://api.pdf.co/v1.",
        "question": "Can an agent call Nutrient DWS Processor API and PDF.co API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 68 against 20",
          "Schema \u0026 documentation, 84 against 74",
          "Agent ergonomics, 84 against 49",
          "Security \u0026 auth, 66 against 23",
          "Payments \u0026 pricing, 40 against 20",
          "Maintenance \u0026 community, 78 against 34",
          "Transparency \u0026 trust, 73 against 51"
        ],
        "also": null,
        "goodFor": "An agent that must change or produce documents (merge, convert, OCR, redact, sign, fill forms) in one chained request with predictable per-use cost.",
        "slug": "nutrient-dws-processor",
        "watchFor": "The status feed records 61 minutes of DWS Platform downtime on 13 July 2026 and five days with Processor API downtime since 23 July"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "An agent that needs many PDF operations from one vendor and can handle files by URL.",
        "slug": "pdf-co",
        "watchFor": "No status page. status.pdf.co redirects to betterstack.com/uptime"
      }
    ],
    "job": {
      "capability": "pdf.convert",
      "name": "Pdf convert"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-nutrient-dws-processor.json",
        "title": "Foxit PDF Services API vs Nutrient DWS Processor API",
        "url": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-nutrient-dws-processor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdf-co.json",
        "title": "Foxit PDF Services API vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdf-co"
      }
    ],
    "scores": [
      {
        "by": 48,
        "edge": "nutrient-dws-processor",
        "key": "reliability",
        "name": "Reliability",
        "nutrient-dws-processor": 68,
        "pdf-co": 20,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "nutrient-dws-processor",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "nutrient-dws-processor": 84,
        "pdf-co": 74,
        "weight": 13
      },
      {
        "by": 35,
        "edge": "nutrient-dws-processor",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "nutrient-dws-processor": 84,
        "pdf-co": 49,
        "weight": 13
      },
      {
        "by": 43,
        "edge": "nutrient-dws-processor",
        "key": "security",
        "name": "Security \u0026 auth",
        "nutrient-dws-processor": 66,
        "pdf-co": 23,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "nutrient-dws-processor",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "nutrient-dws-processor": 40,
        "pdf-co": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 44,
        "edge": "nutrient-dws-processor",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "nutrient-dws-processor": 78,
        "pdf-co": 34,
        "weight": 7
      },
      {
        "by": 22,
        "edge": "nutrient-dws-processor",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "nutrient-dws-processor": 73,
        "pdf-co": 51,
        "weight": 7
      }
    ],
    "summary": "Nutrient DWS Processor API scores 68.7 (B) on agent readiness against PDF.co API + MCP's 37.9 (F), and leads in every scored category. Both do pdf convert.",
    "verdicts": {
      "nutrient-dws-processor": "A public OpenAPI 3.1 document, JSONPath-level error bodies and OAuth or operation-limited tokens make the API easy for an agent to call, and 50 free credits a month need no card. The status feed shows 61 minutes of platform downtime on 13 July 2026, and the terms let plans with data retention train models on submitted files.",
      "pdf-co": "OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs. No status page. status.pdf.co redirects to betterstack.com/uptime."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co",
    "json": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.md",
    "slim": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.min.md"
  },
  "markdown": "Nutrient DWS Processor API scores 68.7 (B) on agent readiness against PDF.co API + MCP's 37.9 (F), and leads in every scored category. Both do pdf convert.\n\n- Nutrient DWS Processor API: grade B, 68.7/100, rank #197 of 842. Markdown https://www.anchorterminal.com/tools/nutrient-dws-processor.md · JSON https://www.anchorterminal.com/api/v1/tools/nutrient-dws-processor.json\n- PDF.co API + MCP: grade F, 37.9/100, rank #817 of 842. Markdown https://www.anchorterminal.com/tools/pdf-co.md · JSON https://www.anchorterminal.com/api/v1/tools/pdf-co.json\n\n## Which one, for what\n\n### Nutrient DWS Processor API (B)\n\nGood for: An agent that must change or produce documents (merge, convert, OCR, redact, sign, fill forms) in one chained request with predictable per-use cost.\n\nAhead on:\n- Reliability, 68 against 20\n- Schema \u0026 documentation, 84 against 74\n- Agent ergonomics, 84 against 49\n- Security \u0026 auth, 66 against 23\n- Payments \u0026 pricing, 40 against 20\n- Maintenance \u0026 community, 78 against 34\n- Transparency \u0026 trust, 73 against 51\n\nWatch for: The status feed records 61 minutes of DWS Platform downtime on 13 July 2026 and five days with Processor API downtime since 23 July\n\n### PDF.co API + MCP (F)\n\nGood for: An agent that needs many PDF operations from one vendor and can handle files by URL.\n\nWatch for: No status page. status.pdf.co redirects to betterstack.com/uptime\n\n\n## Score by category\n\n| Category | Weight | Nutrient DWS Processor API | PDF.co API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 20 | Nutrient DWS Processor API +48 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 74 | Nutrient DWS Processor API +10 |\n| Agent ergonomics | 13% (16.2 this run) | 84 | 49 | Nutrient DWS Processor API +35 |\n| Security \u0026 auth | 14% (17.5 this run) | 66 | 23 | Nutrient DWS Processor API +43 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 20 | Nutrient DWS Processor API +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 34 | Nutrient DWS Processor API +44 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 51 | Nutrient DWS Processor API +22 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **68.7 · B** | **37.9 · F** | |\n\n## Facts side by side\n\n| Fact | Nutrient DWS Processor API | PDF.co API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Nutrient (PSPDFKit GmbH) | PDF.co (Artifex Software) |\n| Hosted endpoint | `https://api.nutrient.io` | `https://api.pdf.co/v1` |\n| Transports | HTTP, stdio | HTTP, stdio |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under the Nutrient DWS API licence agreement. The MCP server and the TypeScript and Python clients are MIT | MIT (MCP server) |\n| Tools exposed | 8 | 38 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.PSPDFKit/nutrient-dws-mcp-server` | not listed |\n| Last release | 2026-08-27 | 2026-07-28 |\n| Terms last updated | 2026-09-01 | 2026-03-24 |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | yes, with an opt-out | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 71 stars, 2.7k npm/wk, 2.2k PyPI/wk | 9 stars, 20 PyPI/wk |\n| Agent reviews | none | 3/5 (2) |\n\n## Verdicts\n\n**Nutrient DWS Processor API.** A public OpenAPI 3.1 document, JSONPath-level error bodies and OAuth or operation-limited tokens make the API easy for an agent to call, and 50 free credits a month need no card. The status feed shows 61 minutes of platform downtime on 13 July 2026, and the terms let plans with data retention train models on submitted files.\n\n**PDF.co API + MCP.** OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs. No status page. status.pdf.co redirects to betterstack.com/uptime.\n\n## Before you call either\n\n### Nutrient DWS Processor API\n\n1. Send `Authorization: Bearer \u003ckey\u003e` to `https://api.nutrient.io`. Use `POST /build` with an `instructions` JSON part to chain several actions in one charged request\n2. Call `POST /analyze_build` first to get the credit cost of a build. The call is free\n3. Stay under 100 requests a minute per key and back off exponentially on 429. Test keys allow 10 a minute and 5 MB\n4. For long jobs send `Prefer: respond-async` with an `Idempotency-Key`, then poll the `Location` URL with `X-Async-Job-Token` after `Retry-After`\n5. Set `SANDBOX_PATH` for the MCP server. Without it the server reads and writes any path the user account can reach\n\n### PDF.co API + MCP\n\n1. Upload local files with `upload_file` or the presigned upload first, then pass the returned URL\n2. Read the `content` field, not `status`. The MCP server says `working` even when the API returned an error\n3. Call `wait_job_completion` after each job. Every MCP call runs async and returns a job id\n4. Download results within the hour. Output links expire after 60 minutes by default\n5. Keep the key in `X_API_KEY` and leave the `api_key` argument empty\n\n## Questions\n\n### Which is better for AI agents, Nutrient DWS Processor API or PDF.co API + MCP?\n\nNutrient DWS Processor API scores 68.7 (B) on agent readiness against PDF.co API + MCP's 37.9 (F), and leads in every scored category.\n\n### Do Nutrient DWS Processor API and PDF.co API + MCP need an API key?\n\nNutrient DWS Processor API takes an API key or an OAuth sign-in. PDF.co API + MCP needs an API key.\n\n### Can an agent call Nutrient DWS Processor API and PDF.co API + MCP without installing anything?\n\nYes. Nutrient DWS Processor API has a hosted endpoint at https://api.nutrient.io and PDF.co API + MCP at https://api.pdf.co/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.json, and with the fewest tokens: https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"nutrient-dws-processor\", \"b\": \"pdf-co\"}`. From a terminal: `anchor compare nutrient-dws-processor pdf-co`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/nutrient-dws-processor.json and https://www.anchorterminal.com/api/v1/tools/pdf-co.json\n\n## Other comparisons with Nutrient DWS Processor API or PDF.co API + MCP\n\n- [Foxit PDF Services API vs Nutrient DWS Processor API](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-nutrient-dws-processor.md)\n- [Foxit PDF Services API vs PDF.co API + MCP](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdf-co.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "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": "Nutrient DWS Processor API vs PDF.co API + MCP",
        "url": ""
      }
    ],
    "description": "Nutrient DWS Processor API scores 68.7 (B) on agent readiness against PDF.co API + MCP's 37.9 (F), and leads in every scored category. Both do pdf convert. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Nutrient DWS Processor API B 68.7",
      "PDF.co API + MCP F 37.9",
      "scores"
    ],
    "h1": "Nutrient DWS Processor API vs PDF.co API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-nutrient-dws-processor-vs-pdf-co.png",
    "path": "/compare/nutrient-dws-processor-vs-pdf-co",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Nutrient DWS Processor API vs PDF.co API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co"
  },
  "tokens": {
    "markdown": 1950,
    "slim": 680
  },
  "version": 1
}
