{
  "data": {
    "a": {
      "slug": "docraptor",
      "name": "DocRaptor",
      "vendor": "DocRaptor, LLC (Artifex Software)",
      "vendorUrl": "https://docraptor.com",
      "kind": "http-api",
      "category": "pdf-tools",
      "summary": "DocRaptor is a hosted HTML-to-PDF and HTML-to-Excel API built on the Prince rendering engine, run by DocRaptor, LLC of Indianapolis, part of Artifex Software since October 2025. One POST returns the document; async, hosted and test modes exist.",
      "url": "https://www.anchorterminal.com/tools/docraptor",
      "markdownUrl": "https://www.anchorterminal.com/tools/docraptor.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/docraptor.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/docraptor.json",
      "dns": "docraptor.grade.anchorterminal.com",
      "repo": "https://github.com/DocRaptor/docraptor-python",
      "license": "MIT (client libraries)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.docraptor.com/docs",
      "packages": [
        {
          "registry": "pypi",
          "name": "docraptor"
        },
        {
          "registry": "npm",
          "name": "docraptor"
        },
        {
          "registry": "rubygems",
          "name": "docraptor"
        }
      ],
      "auth": "api-key",
      "authNotes": "One API key per account from the dashboard, sent as the username of HTTP Basic auth with a blank password (preferred) or as the `user_credentials` query parameter, which the docs still offer. No scopes, no second key and no rotation guide found. Test documents are free with `test: true`.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 5 documents a month and unlimited watermarked test documents. Basic $15 a month for 125 documents, Professional $29 for 325, Premium $75 for 1,250, Max $149 for 5,000, Bronze $399 for 15,000, Silver $1,000 for 40,000, Enterprise on request. Overage per document by plan. Hosted documents cost extra (https://docraptor.com/plans).",
      "priceSummary": "$15 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, plans page or client libraries (checked 2026-11-03). Overage is billed to the plan's card.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 16960,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://docraptor.com/documentation",
      "openapi": "https://github.com/DocRaptor/docraptor-python/blob/master/docraptor.yaml",
      "capabilities": [
        "pdf.generate",
        "pdf.convert"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "async-jobs",
        "webhooks",
        "soc2",
        "python",
        "ruby",
        "javascript",
        "php",
        "java",
        "dotnet",
        "mit",
        "closed-source"
      ],
      "lastRelease": "2023-09-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.3,
        "grade": "D",
        "agentReady": false,
        "rank": 841,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 6,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 21,
          "payments": 35,
          "reliability": 68,
          "schema": 62,
          "security": 41,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "One POST turns HTML into a print-quality PDF or an Excel file, with published limits, free watermarked test documents and clients in seven languages. The single key can travel in a query string, there is no idempotency key, the terms page needs JavaScript our reader lacks, and nothing dated has changed since 2023.",
        "bestFor": "Agents that already have HTML and CSS and need print-quality PDFs with Prince's paged-media support, or an XLSX from an HTML table.",
        "strengths": [
          "Synchronous `POST /docs` returns the document bytes in one call, with `async` and `callback_url` for jobs up to 600 seconds",
          "Generation time, concurrency and hosted output limits are published with numbers, and there is no cap on pages or input size",
          "Unlimited watermarked test documents on every plan, including Free, so an agent can check layout without spending quota",
          "SOC 2 Type II, HIPAA BAAs, a vulnerability disclosure policy and retention configurable down to deletion on download",
          "Official client libraries in Ruby, Python, Node, PHP, Java and C# generated from an OpenAPI description"
        ],
        "weaknesses": [
          "One API key per account with no scopes, and the docs still offer it as the `user_credentials` query parameter",
          "No idempotency key; a retried request after a timeout makes and bills a second document",
          "The terms of service and the privacy link render through a script our reader can't run; DocRaptor's privacy policy was read on artifex.com instead",
          "No llms.txt, no public OpenAPI URL on docraptor.com, and no 429 or Retry-After guidance, concurrency overruns answer 403",
          "The changelog and client libraries have no dated change since 2023; the status page's incident history needs JavaScript and its feed is empty"
        ],
        "agentNotes": [
          "Send the key as the HTTP Basic username with a blank password, never as `user_credentials` in the URL, and send `test: true` while iterating since test documents are free and watermarked",
          "Use `async: true` for documents that may take more than 60 seconds, then poll `/status/{status_id}` until `completed` and fetch `download_url` within the account's retention period",
          "Treat a 403 as either a permission problem or more than 30 simultaneous requests; back off and retry rather than fail the task",
          "JavaScript errors and, on pipelines before 7, console messages fail the document; set `javascript: true` only when the HTML needs it and define `docraptorJavaScriptFinished()` for async scripts",
          "Do not retry a synchronous POST blindly after a timeout; check the document log or listing first, since each success counts against the monthly quota"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.3
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 21,
          "payments": 35,
          "reliability": 68,
          "schema": 62,
          "security": 41,
          "transparency": 54
        },
        "provenanceScore": 84,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install docraptor",
        "http": "curl https://api.docraptor.com/docs -u \"$DOCRAPTOR_API_KEY:\" -H 'Content-Type: application/json' -d '{\"test\":true,\"type\":\"pdf\",\"document_content\":\"\u003chtml\u003e\u003cbody\u003eHello World\u003c/body\u003e\u003c/html\u003e\"}' -o hello.pdf"
      },
      "letme": {
        "capability": "https://letme.dev/pdf.generate",
        "tool": "https://letme.dev/docraptor"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Basic",
          "unit": "month",
          "usd": 15,
          "note": "125 documents a month"
        },
        {
          "item": "Professional",
          "unit": "month",
          "usd": 29,
          "note": "325 documents a month"
        },
        {
          "item": "Premium",
          "unit": "month",
          "usd": 75,
          "note": "1,250 documents a month"
        },
        {
          "item": "Max",
          "unit": "month",
          "usd": 149,
          "note": "5,000 documents a month"
        },
        {
          "item": "Bronze",
          "unit": "month",
          "usd": 399,
          "note": "15,000 documents a month"
        },
        {
          "item": "Silver",
          "unit": "month",
          "usd": 1000,
          "note": "40,000 documents a month"
        }
      ],
      "provenance": {
        "legalEntity": "DocRaptor, LLC",
        "domain": "docraptor.com",
        "domainRegistered": "2010-05-17",
        "endpointOnVendorDomain": true,
        "terms": "https://docraptor.com/tos",
        "privacy": "https://artifex.com/legal/docraptor-privacy-policy",
        "statusPage": "https://status.docraptor.com",
        "changelog": "https://docraptor.com/documentation/changelog",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "The security FAQ names DocRaptor, LLC, an Indiana limited liability company, as the contracting entity and data processor, part of the Artifex Software group. Artifex announced the acquisition on 7 October 2025.",
          "docraptor.com/tos and the privacy link (legal.docraptor.com/legal.html) render through a script, so the terms are unread. The DocRaptor privacy policy on artifex.com, effective 19 November 2025, names Artifex Software Inc. and its wholly owned subsidiary DocRaptor LLC.",
          "docraptor.com/robots.txt disallows /examples, /getting_started_examples, /samples, /templates and /tutorials, none of which were read. help.docraptor.com asks for a 1-second crawl delay, honoured.",
          "status.docraptor.com is an Atlassian Statuspage. Its front page showed no incidents on any of the days it lists on 3 November 2026; the history page needs JavaScript and history.rss redirects to an inactive feed.",
          "RDAP gives docraptor.com a registration date of 17 May 2010, used for firstReleased since the about page dates the product to 2010. /.well-known/security.txt returns 404; the disclosure policy is a help-centre article."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/docraptor.json",
      "live": {
        "slug": "docraptor",
        "probe": {
          "target": "https://api.docraptor.com/docs",
          "method": "get",
          "lastAt": "2026-11-04T20:46:41.958458278Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 486,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 418,
          "p95ms24h": 851,
          "samples24h": 55,
          "samples30d": 55,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 55,
              "ok": 55
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.docraptor.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-04T20:39:06.361202533Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "docraptor",
            "version": "1.0.1",
            "seenAt": "2026-11-04T20:12:43.66746188Z"
          },
          {
            "registry": "pypi",
            "name": "docraptor",
            "version": "3.1.0",
            "released": "2023-09-27",
            "seenAt": "2026-11-04T20:12:43.422464704Z"
          }
        ],
        "githubStars": 11,
        "npmWeekly": 16866,
        "pypiWeekly": 22552,
        "securityTxt": {
          "url": "https://docraptor.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:15.43638567Z"
        },
        "updatedAt": "2026-11-04T20:46:41.958458278Z"
      }
    },
    "answer": "Nutrient DWS Processor API scores 71.6 (BB) on agent readiness against DocRaptor's 53.3 (D), and leads in every scored category.",
    "b": {
      "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 the hosted Nutrient 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",
      "dns": "nutrient-dws-processor.grade.anchorterminal.com",
      "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",
        "streamable-http"
      ],
      "remoteUrl": "https://api.nutrient.io",
      "packages": [
        {
          "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 hosted MCP server at https://mcp.nutrient.io/mcp uses OAuth with a Nutrient account (scope `mcp:invoke`, product scopes such as `product:processor`) and takes no API key. 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": "hosted",
      "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": 14,
      "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.nutrient/mcp",
      "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-10-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 71.6,
        "grade": "BB",
        "agentReady": true,
        "rank": 135,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 1,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 83,
          "payments": 40,
          "reliability": 78,
          "schema": 82,
          "security": 68,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -1,
        "negativeNotes": [
          "2026-10-08. The product page FAQ said the API runs without strict rate limits or hard caps, while the pricing guide set 100 requests a minute per key on every plan, and the MCP product page invited users to start on a free test key, which the test-mode guide says Support must enable first. By 17 October the FAQ gives 100 requests a minute per key and the rewritten MCP page no longer mentions test keys. Fixed within about nine days, so one point, down from two (https://www.nutrient.io/api/processor-api/, https://www.nutrient.io/api/mcp-server-pdf-automation-llm/)."
        ],
        "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 local MCP server lost support the day a hosted one replaced it, 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, and assistants that want those tools plus extraction through one hosted MCP URL.",
        "strengths": [
          "OpenAPI 3.1 document (17 operations in version 1.19.0, now 1.20.0), 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 and per-product scopes, plus JWTs limited by operation, origin and expiry of up to 24 hours",
          "Hosted MCP server needs no install or API key and spends the same credits as the API",
          "Free plan of 50 credits a month with no card, and the vendor says failed requests (4xx or 5xx) cost no credits"
        ],
        "weaknesses": [
          "The local MCP server lost support on 14 October 2026, the day the change was announced",
          "Plans with data retention enabled let Nutrient keep files and train models on them, and no public page says which plans those are",
          "No public changelog for the API or the hosted MCP server, and no deprecation policy",
          "The status page has no component for the hosted MCP server, and no SLA is published",
          "`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",
          "Use the hosted MCP at https://mcp.nutrient.io/mcp, not `@nutrient-sdk/dws-mcp-server`, which gets no fixes after 14 October 2026",
          "Ask for a lighter parse mode on simple PDFs. The hosted MCP reads documents in agentic mode by default, at 18 credits a page",
          "Turn on pay-as-you-go or use Processor tools only on a free plan, since free plans include no Data Extraction credits and the hosted MCP reads documents with them"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 71.6
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 83,
          "payments": 40,
          "reliability": 78,
          "schema": 82,
          "security": 68,
          "transparency": 66
        },
        "provenanceScore": 86,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-10-28",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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",
        "claudeCode": "claude mcp add --transport http --scope user nutrient https://mcp.nutrient.io/mcp",
        "config": {
          "mcpServers": {
            "nutrient": {
              "type": "streamable-http",
              "url": "https://mcp.nutrient.io/mcp"
            }
          }
        }
      },
      "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-11-01",
        "notes": [
          "The DWS API licence agreement (last updated October 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.",
          "www.nutrient.io/.well-known/security.txt returns 404 (re-checked on 1 November 2026). 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.",
          "The changelog link is the local MCP server's, which stopped with that server on 14 October 2026. No public changelog for the API or the hosted MCP server was found."
        ],
        "score": 86
      },
      "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-11-04T20:47:03.421168229Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 263,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.95,
          "p50ms24h": 226,
          "p95ms24h": 383,
          "samples24h": 246,
          "samples30d": 6644,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 246
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 254
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 214,
              "ok": 214
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.nutrientstatus.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T17:14:12.18534684Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "PSPDFKit/nutrient-dws-mcp-server",
            "version": "v0.1.3",
            "released": "2026-08-28",
            "seenAt": "2026-11-04T20:40:31.655591855Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.PSPDFKit/nutrient-dws-mcp-server",
            "version": "0.1.3",
            "seenAt": "2026-10-17T05:11:56.292414565Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.nutrient/mcp",
            "version": "2.0.0",
            "seenAt": "2026-11-04T17:11:44.552009456Z"
          },
          {
            "registry": "npm",
            "name": "@nutrient-sdk/dws-client-typescript",
            "version": "3.0.0",
            "seenAt": "2026-11-04T20:40:30.750966835Z"
          },
          {
            "registry": "npm",
            "name": "@nutrient-sdk/dws-mcp-server",
            "version": "0.1.3",
            "seenAt": "2026-10-17T02:05:31.589466999Z"
          },
          {
            "registry": "pypi",
            "name": "nutrient-dws",
            "version": "3.1.0",
            "released": "2026-05-27",
            "seenAt": "2026-11-04T20:40:31.263904994Z"
          }
        ],
        "githubStars": 71,
        "npmWeekly": 3494,
        "pypiWeekly": 2422,
        "securityTxt": {
          "url": "https://nutrient.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:42.660137621Z"
        },
        "llmsTxt": {
          "url": "https://www.nutrient.io/guides/dws-processor/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-04T15:23:40.329927941Z"
        },
        "domain": {
          "domain": "nutrient.io",
          "checkedAt": "2026-11-01T14:27:29.720335664Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/PSPDFKit/nutrient-dws-mcp-server/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-04T08:32:04.223748585Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8a1c5e1c4c5e"
          },
          {
            "url": "https://www.nutrient.io/api/pricing/processor-api/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-04T08:42:55.120067901Z",
            "changedAt": "2026-11-03T08:08:46.955451188Z",
            "fingerprint": "1619ad7c7031"
          },
          {
            "url": "https://www.nutrient.io/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-04T08:42:59.3957802Z",
            "changedAt": "2026-10-29T05:25:33.66720737Z",
            "fingerprint": "624850a3279c"
          },
          {
            "url": "https://www.nutrient.io/legal/cloud-terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-04T08:42:57.568493809Z",
            "changedAt": "2026-10-29T05:25:31.23575275Z",
            "fingerprint": "c9aeae64cf01"
          }
        ],
        "github": {
          "repo": "pspdfkit/nutrient-dws-mcp-server",
          "checkedAt": "2026-11-02T09:18:54.141337901Z",
          "stars": 71,
          "archived": true,
          "issuesEnabled": true,
          "pushedAt": "2026-10-14T20:03:16Z",
          "openIssues": 1,
          "openPRs": 0,
          "issuesOpened90d": 1,
          "issuesClosed90d": 1,
          "prsMerged90d": 8,
          "ci": {
            "branch": "main",
            "runs": 15,
            "success": 15,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-08-28T00:03:53Z"
          },
          "replies": {
            "sampled": 3,
            "unanswered": 1,
            "medianDays": 0.4
          }
        },
        "updatedAt": "2026-11-04T20:47:03.421168229Z"
      }
    },
    "edges": [
      {
        "by": 62,
        "category": "maintenance",
        "leads": "nutrient-dws-processor",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read as a closed service with open-source clients. The last dated product change found is the changelog entry of 5 September 2023, and the client libraries were last tagged in 2023 (docraptor-python 3.1.0 on 19 July 2023, npm docraptor 1.0.1 on 28 December 2023); the about and security pages were rewritten after the October 2025 acquisition but carry no dated API change (0). No releases in the last 90 days (0). Support by email, site chat and a help centre with stated hours, and a per-document help request from the dashboard; GitHub issue replies couldn't be read (8 of 15). Official clients in six languages exist and still match the API, but none has shipped since 2023 (10). The Python client pins 2023 dependencies and its test suite runs through tox with no CI workflow in the repository (3). 0 + 0 + 8 + 10 + 3 = 21.",
          "b": "The hosted Nutrient MCP server was published to the official registry as `io.nutrient/mcp` 2.0.0 on 14 October 2026, still the latest version on 1 November (30). Local MCP releases 0.1.1 and 0.1.2 (24 August) and 0.1.3 (27 August), the TypeScript client 3.0.0 (23 August, per the 17 October check) and the hosted 2.0.0 fall in the 90 days (20). The local server's repository is now reference-only with no further updates or fixes, so its open issues and pull requests won't be answered. For the hosted service there is no public changelog, and support answers through a form with a stated target of one business day (10). `io.nutrient/mcp` sits in the official registry under Nutrient's own domain namespace (15). The TypeScript and Python clients are current (the Python repository had a commit on 22 October 2026, unreleased), and the deprecated npm package carries a deprecation message pointing to the hosted server (8). 30+20+10+15+8 = 83."
        },
        "scores": {
          "a": 21,
          "b": 83
        }
      },
      {
        "by": 27,
        "category": "security",
        "leads": "nutrient-dws-processor",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "One API key per account with no scopes, sent as the HTTP Basic username, and the docs offer `user_credentials` in the query string as a second method, which costs the 10 points for a secret in a URL (0 of 30). Test mode limits spend but there is no read-only key, and the destructive action, expiring a hosted document, needs no confirmation (6). The API renders the caller's HTML and returns a PDF or spreadsheet, not text for the model to read (10). The dashboard's document log records each job with input, output and log when the account's retention allows, and an IP listing API exists; no per-key audit log (8). SOC 2 Type II, HIPAA BAAs, annual third-party penetration tests, a vulnerability disclosure policy with security@docraptor.com and DPF registration, but no security.txt (17). 0 + 6 + 10 + 8 + 17 = 41.",
          "b": "OAuth at api.nutrient.io with PKCE (S256), dynamic client registration, a revocation endpoint and per-product scopes; the hosted MCP server asks for `mcp:invoke` and accepts `product:processor`, `product:data_extraction` and others. Live keys can be scoped, and `POST /tokens` issues JWTs limited to named operations and origins, expiring within 24 hours and revocable. The base key can only be regenerated. No query-string credential is documented (28). Scoped keys, operation-limited JWTs and product scopes on OAuth, but no confirmation step. The supported MCP route is now hosted and reads no local paths, so the local server's unrestricted file access without `SANDBOX_PATH` no longer applies (15, up from 13). Document text comes back as untrusted content, and no prompt-injection guidance was found (4). Each response reports credit cost and remaining credits with a request id, a usage endpoint exists, and extraction runs from the MCP server land in a run history the person can review. No audit log was found (6). SOC 2 Type 2 and SOC 3 per the trust centre, annual penetration testing by Prescient Security, and a vulnerability disclosure policy with a report page, per the 8 October check. security.txt is still a 404 and no bounty was established (15). 28+15+4+6+15 = 68."
        },
        "scores": {
          "a": 41,
          "b": 68
        }
      },
      {
        "by": 20,
        "category": "schema",
        "leads": "nutrient-dws-processor",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "An OpenAPI 3.0 description, docraptor.yaml with seven operations and a Doc schema, is public in the client repositories and generates the libraries, but it is not served from docraptor.com (18). No llms.txt and no Markdown twins (0). The API parameters page describes each option, when to use async, how pipelines map to Prince and JavaScript engines, and why both JavaScript engines shouldn't be enabled together (14). Options are listed with their allowed values and defaults, and the OpenAPI Doc schema types them, though nested `prince_options` are documented in prose (11). Examples in seven languages, a status-code page, an XML error example and the async failure body (11). Pipelines are versioned with a dated changelog, but its last entry is 5 September 2023 and the API path carries no version (8). 18 + 0 + 14 + 11 + 11 + 8 = 62.",
          "b": "A public OpenAPI 3.1.0 document, now version 1.20.0 per the API reference page, with 17 operations and 203 schemas per the 8 October check of 1.19.0, not re-read on 1 November (25). llms.txt at site and product level with topic indexes, and a Markdown twin of each guide (10). Tag descriptions explain the Build API, async jobs and authorisation at length. The tool descriptions of the hosted MCP server couldn't be read first-hand, since `tools/list` needs an OAuth token (15, kept from 8 October). 102 of 203 schemas use enums and build actions are discriminated by `type`, per the 8 October check (13). Guides carry samples in six languages, and the errors guide and async tables document the response bodies (14). The spec is versioned, but the only changelog was the local MCP server's, which stopped with that server on 14 October, and the hosted server 2.0.0 has none. No public API changelog was found, and the move from 1.19.0 to 1.20.0 is undated (5). 25+10+15+13+14+5 = 82."
        },
        "scores": {
          "a": 62,
          "b": 82
        }
      },
      {
        "by": 16,
        "category": "ergonomics",
        "leads": "nutrient-dws-processor",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Responses are the document bytes or a small JSON status, with `X-DocRaptor-Num-Pages` on PDFs, and test mode avoids spending quota (18). The document listing takes `page` and `per_page` (default 100); there is nothing else to page (12). XML error messages state the cause, the status-code page maps 400, 401, 403 and 422 to causes, and JavaScript errors are returned with the failure (14). No idempotency key and no safe-retry guidance; a retried POST makes a second document, and only test documents are free (4). Two parameters make a document, defaults are sensible, and official clients exist in Ruby, Python, Node, PHP, Java and C# (15). 18 + 12 + 14 + 4 + 15 = 63.",
          "b": "API responses are files or `json-content` with switches for plain text, structured text, key-value pairs and tables. Smithery's copy of the hosted MCP server's tool list shows 14 tools and about 60,000 characters of names, descriptions and input schemas, which we couldn't confirm first-hand. That puts it in the 11 to 30 band with no toolsets or read-only subset, read as openmetadata (16 tools, 49,602 characters) and plane (30 tools, about 67,000) are (15). Page ranges per part and output switches. Nothing to paginate (15). Errors carry `failingPaths` in JSONPath form, a `requestId`, and `error.reason` codes with recommended handling for async jobs (18). `Idempotency-Key` on async `/build` only. In Smithery's copy every hosted tool carries readOnlyHint, destructiveHint and idempotentHint, and `process_document` requires an `idempotency_key` (17). Single-purpose endpoints such as `/processor/generate_pdf` need one file, `/build` chains actions, and official clients exist for TypeScript (3.0.0) and Python (3.1.0) (14). 15+15+18+17+14 = 79."
        },
        "scores": {
          "a": 63,
          "b": 79
        }
      },
      {
        "by": 10,
        "category": "reliability",
        "leads": "nutrient-dws-processor",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the hosted lines. status.docraptor.com is an Atlassian Statuspage with components (20). Its front page reported no incidents on any of the days it lists, the history page needs JavaScript our reader lacks, and history.rss redirects to an inactive feed, so the record is clean for the days we could read and unread beyond them (20). The limits page gives numbers, 60 seconds synchronous, 600 asynchronous, 30 simultaneous requests and 100 MB hosted output (15). Too many simultaneous requests answer 403 with no Retry-After or backoff guidance, callbacks are retried up to three times, and there is no idempotency key (3). No SLA found; the about page's 99.99 per cent uptime is a marketing figure and the terms are unread (0). GA (10). 20 + 20 + 15 + 3 + 0 + 10 = 68.",
          "b": "Graded with the hosted lines. Status page at www.nutrientstatus.com on Better Stack with a Processor API component and 90 days of daily history (20). The JSON feed read on 1 November 2026 covers 3 August to 1 November. The Processor API was down on five days, the longest 451 seconds on 6 August and the latest 205 seconds on 30 October. DWS Platform was down 45 seconds on 23 August and 154 seconds on 7 September, and the Data Extraction API 1,763 seconds (about 29 minutes) on 1 September. Nothing reaches an hour, so minor only (20). The feed has no component for the hosted MCP server. The pricing guide and the product page FAQ give 100 requests a minute per key on all plans, and 10 a minute for test keys (15). It recommends exponential backoff, async admission returns `Retry-After`, and `Idempotency-Key` covers async builds only, so 13 of 15. The product page mentions guaranteed SLAs on custom plans, but no SLA document is published and the terms disclaim availability (0). GA, at spec version 1.20.0 (10). 20+20+15+13+0+10 = 78."
        },
        "scores": {
          "a": 68,
          "b": 78
        }
      },
      {
        "by": 7,
        "category": "transparency",
        "leads": "nutrient-dws-processor",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service; the terms render through a script and were not read, the client libraries are MIT (12). The security FAQ states retention options, that logs hold metadata only, that content isn't used for model training and that metadata may be used for analytics, and the privacy policy on artifex.com of 19 November 2025 names the entities; the sub-processor list is a help-centre page that rendered empty for our reader (18). Pipelines 1 to 7 were deprecated with a dated notice in 2020 and pipeline versions are selectable, but there is no written notice period (12). AWS us-east-1 is named as the processing location and the FAQ says customers are emailed when the sub-processor list changes, though the list itself was unread (12). 12 + 18 + 12 + 12 = 54.",
          "b": "The API is closed under a dated licence agreement (October 2026) naming PSPDFKit GmbH, and the TypeScript and Python clients are MIT, as is the now unsupported local MCP server, so between the two bands (20). The privacy policy has a Processor API section, the terms carry data processing terms in section 9, and files are deleted within 24 hours on plans without retention. The MCP page says the server keeps nothing, uploads expire after 24 hours, and extraction runs stay in the run history until deleted. Plans with retention enabled let Nutrient keep files and train models on them, and no public page says which plans those are. The October 2026 terms add that free-tier settings apply to Enterprise evaluations unless Nutrient disables retention, and that a paid plan switched to retention needs the customer's acceptance while a free plan needs only advance notice (20). No deprecation policy, and the terms allow changes at any time. The local MCP server's end of support is dated 14 October 2026 in the repository and on npm, with the hosted server named as the replacement, but it took effect the day it was announced (8, up from 4). The trust centre lists 51 sub-processors with locations, updated 8 September 2026, and the status page names Frankfurt and Oregon processing regions, per the 8 October check (18). 20+20+8+18 = 66."
        },
        "scores": {
          "a": 69,
          "b": 76
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "DocRaptor, LLC (Artifex Software)",
        "b": "Nutrient (PSPDFKit GmbH)",
        "name": "Vendor"
      },
      {
        "a": "https://api.docraptor.com/docs",
        "b": "https://api.nutrient.io",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (client libraries)",
        "b": "Proprietary service under the Nutrient DWS API licence agreement. The MCP server and the TypeScript and Python clients are MIT",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "14",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.nutrient/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2023-09-05",
        "b": "2026-10-14",
        "name": "Last release"
      },
      {
        "a": "2026-06-03",
        "b": "2026-09-01",
        "name": "Terms last updated"
      },
      {
        "a": "2025-11-19",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "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": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "17k npm/wk",
        "b": "71 stars, 2.7k npm/wk, 2.2k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Nutrient DWS Processor API scores 71.6 (BB) on agent readiness against DocRaptor's 53.3 (D), and leads in every scored category.",
        "question": "Which is better for AI agents, DocRaptor or Nutrient DWS Processor API?"
      },
      {
        "answer": "DocRaptor needs an API key. Nutrient DWS Processor API takes an API key or an OAuth sign-in.",
        "question": "Do DocRaptor and Nutrient DWS Processor API need an API key?"
      },
      {
        "answer": "Yes. DocRaptor has a hosted endpoint at https://api.docraptor.com/docs and Nutrient DWS Processor API at https://api.nutrient.io.",
        "question": "Can an agent call DocRaptor and Nutrient DWS Processor API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Agents that already have HTML and CSS and need print-quality PDFs with Prince's paged-media support, or an XLSX from an HTML table.",
        "slug": "docraptor",
        "watchFor": "One API key per account with no scopes, and the docs still offer it as the `user_credentials` query parameter"
      },
      {
        "aheadOn": [
          "Reliability, 78 against 68",
          "Schema \u0026 documentation, 82 against 62",
          "Agent ergonomics, 79 against 63",
          "Security \u0026 auth, 68 against 41",
          "Payments \u0026 pricing, 40 against 35",
          "Maintenance \u0026 community, 83 against 21",
          "Transparency \u0026 trust, 76 against 69"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "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, and assistants that want those tools plus extraction through one hosted MCP URL.",
        "slug": "nutrient-dws-processor",
        "watchFor": "The local MCP server lost support on 14 October 2026, the day the change was announced"
      }
    ],
    "history": {
      "docraptor": null,
      "nutrient-dws-processor": [
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-28",
          "delta": 0.1,
          "from": 71.5,
          "fromGrade": "BB",
          "to": 71.6,
          "toGrade": "BB"
        },
        {
          "causes": [
            "product",
            "event",
            "time"
          ],
          "date": "2026-10-17",
          "delta": 2.8,
          "from": 68.7,
          "fromGrade": "B",
          "to": 71.5,
          "toGrade": "BB"
        }
      ]
    },
    "job": {
      "capability": "pdf.generate",
      "name": "Pdf generate"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/cloudconvert-vs-docraptor.json",
        "title": "CloudConvert API vs DocRaptor",
        "url": "https://www.anchorterminal.com/compare/cloudconvert-vs-docraptor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudconvert-vs-nutrient-dws-processor.json",
        "title": "CloudConvert API vs Nutrient DWS Processor API",
        "url": "https://www.anchorterminal.com/compare/cloudconvert-vs-nutrient-dws-processor"
      },
      {
        "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/iloveapi-vs-nutrient-dws-processor.json",
        "title": "iLoveAPI vs Nutrient DWS Processor API",
        "url": "https://www.anchorterminal.com/compare/iloveapi-vs-nutrient-dws-processor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.json",
        "title": "Nutrient DWS Processor API vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfrest.json",
        "title": "Nutrient DWS Processor API vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfrest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docraptor-vs-foxit-pdf-services.json",
        "title": "DocRaptor vs Foxit PDF Services API",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-foxit-pdf-services"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docraptor-vs-iloveapi.json",
        "title": "DocRaptor vs iLoveAPI",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-iloveapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docraptor-vs-pdf-co.json",
        "title": "DocRaptor vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey.json",
        "title": "DocRaptor vs PDFMonkey",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docraptor-vs-pdfrest.json",
        "title": "DocRaptor vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-pdfrest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfmonkey.json",
        "title": "Nutrient DWS Processor API vs PDFMonkey",
        "url": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfmonkey"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 10,
        "docraptor": 68,
        "edge": "nutrient-dws-processor",
        "key": "reliability",
        "name": "Reliability",
        "nutrient-dws-processor": 78,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 20,
        "docraptor": 62,
        "edge": "nutrient-dws-processor",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "nutrient-dws-processor": 82,
        "weight": 13
      },
      {
        "by": 16,
        "docraptor": 63,
        "edge": "nutrient-dws-processor",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "nutrient-dws-processor": 79,
        "weight": 13
      },
      {
        "by": 27,
        "docraptor": 41,
        "edge": "nutrient-dws-processor",
        "key": "security",
        "name": "Security \u0026 auth",
        "nutrient-dws-processor": 68,
        "weight": 14
      },
      {
        "by": 5,
        "docraptor": 35,
        "edge": "nutrient-dws-processor",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "nutrient-dws-processor": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 62,
        "docraptor": 21,
        "edge": "nutrient-dws-processor",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "nutrient-dws-processor": 83,
        "weight": 7
      },
      {
        "by": 7,
        "docraptor": 69,
        "edge": "nutrient-dws-processor",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "nutrient-dws-processor": 76,
        "weight": 7
      }
    ],
    "summary": "Nutrient DWS Processor API scores 71.6 (BB) on agent readiness against DocRaptor's 53.3 (D), and leads in every scored category. Both do pdf generate.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "docraptor": "One POST turns HTML into a print-quality PDF or an Excel file, with published limits, free watermarked test documents and clients in seven languages. The single key can travel in a query string, there is no idempotency key, the terms page needs JavaScript our reader lacks, and nothing dated has changed since 2023.",
      "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 local MCP server lost support the day a hosted one replaced it, and the terms let plans with data retention train models on submitted files."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/docraptor-vs-nutrient-dws-processor",
    "json": "https://www.anchorterminal.com/compare/docraptor-vs-nutrient-dws-processor.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/docraptor-vs-nutrient-dws-processor.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/docraptor-vs-nutrient-dws-processor.min.md"
  },
  "markdown": "Nutrient DWS Processor API scores 71.6 (BB) on agent readiness against DocRaptor's 53.3 (D), and leads in every scored category. Both do pdf generate.\n\n- DocRaptor: grade D, 53.3/100, rank #841 of 1349. Markdown https://www.anchorterminal.com/tools/docraptor.md · JSON https://www.anchorterminal.com/api/v1/tools/docraptor.json\n- Nutrient DWS Processor API: grade BB, 71.6/100, rank #135 of 1349. Markdown https://www.anchorterminal.com/tools/nutrient-dws-processor.md · JSON https://www.anchorterminal.com/api/v1/tools/nutrient-dws-processor.json\n- Best PDF manipulation and conversion APIs for AI agents: https://www.anchorterminal.com/best/pdf-tools/index.md\n- All 43 pdf comparisons: https://www.anchorterminal.com/compare/pdf-tools/index.md\n\n## Which one, for what\n\n### DocRaptor (D)\n\nGood for: Agents that already have HTML and CSS and need print-quality PDFs with Prince's paged-media support, or an XLSX from an HTML table.\n\nWatch for: One API key per account with no scopes, and the docs still offer it as the `user_credentials` query parameter\n\n### Nutrient DWS Processor API (BB)\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, and assistants that want those tools plus extraction through one hosted MCP URL.\n\nAhead on:\n- Reliability, 78 against 68\n- Schema \u0026 documentation, 82 against 62\n- Agent ergonomics, 79 against 63\n- Security \u0026 auth, 68 against 41\n- Payments \u0026 pricing, 40 against 35\n- Maintenance \u0026 community, 83 against 21\n- Transparency \u0026 trust, 76 against 69\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: The local MCP server lost support on 14 October 2026, the day the change was announced\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Nutrient DWS Processor API +62\n\n- DocRaptor (21): Read as a closed service with open-source clients. The last dated product change found is the changelog entry of 5 September 2023, and the client libraries were last tagged in 2023 (docraptor-python 3.1.0 on 19 July 2023, npm docraptor 1.0.1 on 28 December 2023); the about and security pages were rewritten after the October 2025 acquisition but carry no dated API change (0). No releases in the last 90 days (0). Support by email, site chat and a help centre with stated hours, and a per-document help request from the dashboard; GitHub issue replies couldn't be read (8 of 15). Official clients in six languages exist and still match the API, but none has shipped since 2023 (10). The Python client pins 2023 dependencies and its test suite runs through tox with no CI workflow in the repository (3). 0 + 0 + 8 + 10 + 3 = 21.\n- Nutrient DWS Processor API (83): The hosted Nutrient MCP server was published to the official registry as `io.nutrient/mcp` 2.0.0 on 14 October 2026, still the latest version on 1 November (30). Local MCP releases 0.1.1 and 0.1.2 (24 August) and 0.1.3 (27 August), the TypeScript client 3.0.0 (23 August, per the 17 October check) and the hosted 2.0.0 fall in the 90 days (20). The local server's repository is now reference-only with no further updates or fixes, so its open issues and pull requests won't be answered. For the hosted service there is no public changelog, and support answers through a form with a stated target of one business day (10). `io.nutrient/mcp` sits in the official registry under Nutrient's own domain namespace (15). The TypeScript and Python clients are current (the Python repository had a commit on 22 October 2026, unreleased), and the deprecated npm package carries a deprecation message pointing to the hosted server (8). 30+20+10+15+8 = 83.\n\n### Security \u0026 auth: Nutrient DWS Processor API +27\n\n- DocRaptor (41): One API key per account with no scopes, sent as the HTTP Basic username, and the docs offer `user_credentials` in the query string as a second method, which costs the 10 points for a secret in a URL (0 of 30). Test mode limits spend but there is no read-only key, and the destructive action, expiring a hosted document, needs no confirmation (6). The API renders the caller's HTML and returns a PDF or spreadsheet, not text for the model to read (10). The dashboard's document log records each job with input, output and log when the account's retention allows, and an IP listing API exists; no per-key audit log (8). SOC 2 Type II, HIPAA BAAs, annual third-party penetration tests, a vulnerability disclosure policy with security@docraptor.com and DPF registration, but no security.txt (17). 0 + 6 + 10 + 8 + 17 = 41.\n- Nutrient DWS Processor API (68): OAuth at api.nutrient.io with PKCE (S256), dynamic client registration, a revocation endpoint and per-product scopes; the hosted MCP server asks for `mcp:invoke` and accepts `product:processor`, `product:data_extraction` and others. Live keys can be scoped, and `POST /tokens` issues JWTs limited to named operations and origins, expiring within 24 hours and revocable. The base key can only be regenerated. No query-string credential is documented (28). Scoped keys, operation-limited JWTs and product scopes on OAuth, but no confirmation step. The supported MCP route is now hosted and reads no local paths, so the local server's unrestricted file access without `SANDBOX_PATH` no longer applies (15, up from 13). Document text comes back as untrusted content, and no prompt-injection guidance was found (4). Each response reports credit cost and remaining credits with a request id, a usage endpoint exists, and extraction runs from the MCP server land in a run history the person can review. No audit log was found (6). SOC 2 Type 2 and SOC 3 per the trust centre, annual penetration testing by Prescient Security, and a vulnerability disclosure policy with a report page, per the 8 October check. security.txt is still a 404 and no bounty was established (15). 28+15+4+6+15 = 68.\n\n### Schema \u0026 documentation: Nutrient DWS Processor API +20\n\n- DocRaptor (62): An OpenAPI 3.0 description, docraptor.yaml with seven operations and a Doc schema, is public in the client repositories and generates the libraries, but it is not served from docraptor.com (18). No llms.txt and no Markdown twins (0). The API parameters page describes each option, when to use async, how pipelines map to Prince and JavaScript engines, and why both JavaScript engines shouldn't be enabled together (14). Options are listed with their allowed values and defaults, and the OpenAPI Doc schema types them, though nested `prince_options` are documented in prose (11). Examples in seven languages, a status-code page, an XML error example and the async failure body (11). Pipelines are versioned with a dated changelog, but its last entry is 5 September 2023 and the API path carries no version (8). 18 + 0 + 14 + 11 + 11 + 8 = 62.\n- Nutrient DWS Processor API (82): A public OpenAPI 3.1.0 document, now version 1.20.0 per the API reference page, with 17 operations and 203 schemas per the 8 October check of 1.19.0, not re-read on 1 November (25). llms.txt at site and product level with topic indexes, and a Markdown twin of each guide (10). Tag descriptions explain the Build API, async jobs and authorisation at length. The tool descriptions of the hosted MCP server couldn't be read first-hand, since `tools/list` needs an OAuth token (15, kept from 8 October). 102 of 203 schemas use enums and build actions are discriminated by `type`, per the 8 October check (13). Guides carry samples in six languages, and the errors guide and async tables document the response bodies (14). The spec is versioned, but the only changelog was the local MCP server's, which stopped with that server on 14 October, and the hosted server 2.0.0 has none. No public API changelog was found, and the move from 1.19.0 to 1.20.0 is undated (5). 25+10+15+13+14+5 = 82.\n\n### Agent ergonomics: Nutrient DWS Processor API +16\n\n- DocRaptor (63): Responses are the document bytes or a small JSON status, with `X-DocRaptor-Num-Pages` on PDFs, and test mode avoids spending quota (18). The document listing takes `page` and `per_page` (default 100); there is nothing else to page (12). XML error messages state the cause, the status-code page maps 400, 401, 403 and 422 to causes, and JavaScript errors are returned with the failure (14). No idempotency key and no safe-retry guidance; a retried POST makes a second document, and only test documents are free (4). Two parameters make a document, defaults are sensible, and official clients exist in Ruby, Python, Node, PHP, Java and C# (15). 18 + 12 + 14 + 4 + 15 = 63.\n- Nutrient DWS Processor API (79): API responses are files or `json-content` with switches for plain text, structured text, key-value pairs and tables. Smithery's copy of the hosted MCP server's tool list shows 14 tools and about 60,000 characters of names, descriptions and input schemas, which we couldn't confirm first-hand. That puts it in the 11 to 30 band with no toolsets or read-only subset, read as openmetadata (16 tools, 49,602 characters) and plane (30 tools, about 67,000) are (15). Page ranges per part and output switches. Nothing to paginate (15). Errors carry `failingPaths` in JSONPath form, a `requestId`, and `error.reason` codes with recommended handling for async jobs (18). `Idempotency-Key` on async `/build` only. In Smithery's copy every hosted tool carries readOnlyHint, destructiveHint and idempotentHint, and `process_document` requires an `idempotency_key` (17). Single-purpose endpoints such as `/processor/generate_pdf` need one file, `/build` chains actions, and official clients exist for TypeScript (3.0.0) and Python (3.1.0) (14). 15+15+18+17+14 = 79.\n\n### Reliability: Nutrient DWS Processor API +10\n\n- DocRaptor (68): Read with the hosted lines. status.docraptor.com is an Atlassian Statuspage with components (20). Its front page reported no incidents on any of the days it lists, the history page needs JavaScript our reader lacks, and history.rss redirects to an inactive feed, so the record is clean for the days we could read and unread beyond them (20). The limits page gives numbers, 60 seconds synchronous, 600 asynchronous, 30 simultaneous requests and 100 MB hosted output (15). Too many simultaneous requests answer 403 with no Retry-After or backoff guidance, callbacks are retried up to three times, and there is no idempotency key (3). No SLA found; the about page's 99.99 per cent uptime is a marketing figure and the terms are unread (0). GA (10). 20 + 20 + 15 + 3 + 0 + 10 = 68.\n- Nutrient DWS Processor API (78): Graded with the hosted lines. Status page at www.nutrientstatus.com on Better Stack with a Processor API component and 90 days of daily history (20). The JSON feed read on 1 November 2026 covers 3 August to 1 November. The Processor API was down on five days, the longest 451 seconds on 6 August and the latest 205 seconds on 30 October. DWS Platform was down 45 seconds on 23 August and 154 seconds on 7 September, and the Data Extraction API 1,763 seconds (about 29 minutes) on 1 September. Nothing reaches an hour, so minor only (20). The feed has no component for the hosted MCP server. The pricing guide and the product page FAQ give 100 requests a minute per key on all plans, and 10 a minute for test keys (15). It recommends exponential backoff, async admission returns `Retry-After`, and `Idempotency-Key` covers async builds only, so 13 of 15. The product page mentions guaranteed SLAs on custom plans, but no SLA document is published and the terms disclaim availability (0). GA, at spec version 1.20.0 (10). 20+20+15+13+0+10 = 78.\n\n### Transparency \u0026 trust: Nutrient DWS Processor API +7\n\n- DocRaptor (69): Closed service; the terms render through a script and were not read, the client libraries are MIT (12). The security FAQ states retention options, that logs hold metadata only, that content isn't used for model training and that metadata may be used for analytics, and the privacy policy on artifex.com of 19 November 2025 names the entities; the sub-processor list is a help-centre page that rendered empty for our reader (18). Pipelines 1 to 7 were deprecated with a dated notice in 2020 and pipeline versions are selectable, but there is no written notice period (12). AWS us-east-1 is named as the processing location and the FAQ says customers are emailed when the sub-processor list changes, though the list itself was unread (12). 12 + 18 + 12 + 12 = 54.\n- Nutrient DWS Processor API (76): The API is closed under a dated licence agreement (October 2026) naming PSPDFKit GmbH, and the TypeScript and Python clients are MIT, as is the now unsupported local MCP server, so between the two bands (20). The privacy policy has a Processor API section, the terms carry data processing terms in section 9, and files are deleted within 24 hours on plans without retention. The MCP page says the server keeps nothing, uploads expire after 24 hours, and extraction runs stay in the run history until deleted. Plans with retention enabled let Nutrient keep files and train models on them, and no public page says which plans those are. The October 2026 terms add that free-tier settings apply to Enterprise evaluations unless Nutrient disables retention, and that a paid plan switched to retention needs the customer's acceptance while a free plan needs only advance notice (20). No deprecation policy, and the terms allow changes at any time. The local MCP server's end of support is dated 14 October 2026 in the repository and on npm, with the hosted server named as the replacement, but it took effect the day it was announced (8, up from 4). The trust centre lists 51 sub-processors with locations, updated 8 September 2026, and the status page names Frankfurt and Oregon processing regions, per the 8 October check (18). 20+20+8+18 = 66.\n\n## Score by category\n\n| Category | Weight | DocRaptor | Nutrient DWS Processor API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 78 | Nutrient DWS Processor API +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 62 | 82 | Nutrient DWS Processor API +20 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 79 | Nutrient DWS Processor API +16 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 68 | Nutrient DWS Processor API +27 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 40 | Nutrient DWS Processor API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 21 | 83 | Nutrient DWS Processor API +62 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 69 | 76 | Nutrient DWS Processor API +7 |\n| Negative events | ≤15 | 0 | -1 | |\n| **Total** | | **53.3 · D** | **71.6 · BB** | |\n\n## Facts side by side\n\n| Fact | DocRaptor | Nutrient DWS Processor API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | DocRaptor, LLC (Artifex Software) | Nutrient (PSPDFKit GmbH) |\n| Hosted endpoint | `https://api.docraptor.com/docs` | `https://api.nutrient.io` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT (client libraries) | Proprietary service under the Nutrient DWS API licence agreement. The MCP server and the TypeScript and Python clients are MIT |\n| Tools exposed | none | 14 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `io.nutrient/mcp` |\n| Last release | 2023-09-05 | 2026-10-14 |\n| Terms last updated | 2026-06-03 | 2026-09-01 |\n| Privacy policy last updated | 2025-11-19 | no date given |\n| Customer content may train models | not found in the text | yes, with an opt-out |\n| Terms restrict automated access | yes | 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 | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 17k npm/wk | 71 stars, 2.7k npm/wk, 2.2k PyPI/wk |\n| Agent reviews | none | 3.3/5 (4) |\n\n## How the scores have moved\n\n### DocRaptor\n\nNo score change since it was listed.\n\n### Nutrient DWS Processor API\n\n- +0.1 on 28 October 2026: new evidence\n- +2.8 on 17 October 2026 (B to BB): product, negative event, time\n\n## Verdicts\n\n**DocRaptor.** One POST turns HTML into a print-quality PDF or an Excel file, with published limits, free watermarked test documents and clients in seven languages. The single key can travel in a query string, there is no idempotency key, the terms page needs JavaScript our reader lacks, and nothing dated has changed since 2023.\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 local MCP server lost support the day a hosted one replaced it, and the terms let plans with data retention train models on submitted files.\n\n## Before you call either\n\n### DocRaptor\n\n1. Send the key as the HTTP Basic username with a blank password, never as `user_credentials` in the URL, and send `test: true` while iterating since test documents are free and watermarked\n2. Use `async: true` for documents that may take more than 60 seconds, then poll `/status/{status_id}` until `completed` and fetch `download_url` within the account's retention period\n3. Treat a 403 as either a permission problem or more than 30 simultaneous requests; back off and retry rather than fail the task\n4. JavaScript errors and, on pipelines before 7, console messages fail the document; set `javascript: true` only when the HTML needs it and define `docraptorJavaScriptFinished()` for async scripts\n5. Do not retry a synchronous POST blindly after a timeout; check the document log or listing first, since each success counts against the monthly quota\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. Use the hosted MCP at https://mcp.nutrient.io/mcp, not `@nutrient-sdk/dws-mcp-server`, which gets no fixes after 14 October 2026\n5. Ask for a lighter parse mode on simple PDFs. The hosted MCP reads documents in agentic mode by default, at 18 credits a page\n6. Turn on pay-as-you-go or use Processor tools only on a free plan, since free plans include no Data Extraction credits and the hosted MCP reads documents with them\n\n## Questions\n\n### Which is better for AI agents, DocRaptor or Nutrient DWS Processor API?\n\nNutrient DWS Processor API scores 71.6 (BB) on agent readiness against DocRaptor's 53.3 (D), and leads in every scored category.\n\n### Do DocRaptor and Nutrient DWS Processor API need an API key?\n\nDocRaptor needs an API key. Nutrient DWS Processor API takes an API key or an OAuth sign-in.\n\n### Can an agent call DocRaptor and Nutrient DWS Processor API without installing anything?\n\nYes. DocRaptor has a hosted endpoint at https://api.docraptor.com/docs and Nutrient DWS Processor API at https://api.nutrient.io.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/docraptor-vs-nutrient-dws-processor.json, and with the fewest tokens: https://www.anchorterminal.com/compare/docraptor-vs-nutrient-dws-processor.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"docraptor\", \"b\": \"nutrient-dws-processor\"}`. From a terminal: `anchor compare docraptor nutrient-dws-processor`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/docraptor.json and https://www.anchorterminal.com/api/v1/tools/nutrient-dws-processor.json\n\n## Other comparisons with DocRaptor or Nutrient DWS Processor API\n\n- [CloudConvert API vs DocRaptor](https://www.anchorterminal.com/compare/cloudconvert-vs-docraptor.md)\n- [CloudConvert API vs Nutrient DWS Processor API](https://www.anchorterminal.com/compare/cloudconvert-vs-nutrient-dws-processor.md)\n- [Foxit PDF Services API vs Nutrient DWS Processor API](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-nutrient-dws-processor.md)\n- [iLoveAPI vs Nutrient DWS Processor API](https://www.anchorterminal.com/compare/iloveapi-vs-nutrient-dws-processor.md)\n- [Nutrient DWS Processor API vs PDF.co API + MCP](https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.md)\n- [Nutrient DWS Processor API vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfrest.md)\n- [DocRaptor vs Foxit PDF Services API](https://www.anchorterminal.com/compare/docraptor-vs-foxit-pdf-services.md)\n- [DocRaptor vs iLoveAPI](https://www.anchorterminal.com/compare/docraptor-vs-iloveapi.md)\n- [DocRaptor vs PDF.co API + MCP](https://www.anchorterminal.com/compare/docraptor-vs-pdf-co.md)\n- [DocRaptor vs PDFMonkey](https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey.md)\n- [DocRaptor vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/docraptor-vs-pdfrest.md)\n- [Nutrient DWS Processor API vs PDFMonkey](https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfmonkey.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "DocRaptor vs Nutrient DWS Processor API",
        "url": ""
      }
    ],
    "description": "Nutrient DWS Processor scores 71.6 (BB) to DocRaptor's 53.3 (D) for pdf generate. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "DocRaptor D 53.3",
      "Nutrient DWS Processor API BB 71.6",
      "scores"
    ],
    "h1": "DocRaptor vs Nutrient DWS Processor API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/docraptor-vs-nutrient-dws-processor",
    "published": "2026-10-01",
    "section": "tools",
    "title": "DocRaptor vs Nutrient DWS Processor for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/docraptor-vs-nutrient-dws-processor"
  },
  "tokens": {
    "markdown": 5550,
    "slim": 3730
  },
  "version": 1
}
