{
  "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": "PDFMonkey scores 59.3 (C) on agent readiness against DocRaptor's 53.3 (D), and leads in 4 of 7 scored categories. DocRaptor leads on reliability and security \u0026 auth.",
    "b": {
      "slug": "pdfmonkey",
      "name": "PDFMonkey",
      "vendor": "PDFMonkey",
      "vendorUrl": "https://pdfmonkey.io",
      "kind": "http-api",
      "category": "pdf-tools",
      "summary": "PDFMonkey is a hosted service from a Paris company that generates PDFs and images from Liquid or Builder templates and JSON data, through a REST API, a CLI, Ruby and Node.js SDKs, and a local MCP server.",
      "url": "https://www.anchorterminal.com/tools/pdfmonkey",
      "markdownUrl": "https://www.anchorterminal.com/tools/pdfmonkey.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pdfmonkey.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pdfmonkey.json",
      "dns": "pdfmonkey.grade.anchorterminal.com",
      "repo": "https://github.com/pdfmonkey/pdfmonkey-mcp",
      "license": "MIT (MCP server, CLI and SDKs)",
      "transports": [
        "stdio"
      ],
      "remoteUrl": "https://api.pdfmonkey.io/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "pdfmonkey-mcp-server"
        },
        {
          "registry": "npm",
          "name": "@pdfmonkey/cli"
        },
        {
          "registry": "npm",
          "name": "pdfmonkey"
        },
        {
          "registry": "rubygems",
          "name": "pdfmonkey"
        }
      ],
      "auth": "api-key",
      "authNotes": "One secret API key per account, sent as `Authorization: Bearer`, found on the dashboard's API Key page after a browser signup. The key carries the whole account's privileges. Rotate API key issues a new key while the old one keeps working for 2 days, or is revoked at once. The MCP server and CLI read PDFMONKEY_API_KEY.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 20 documents a month and a 30-day Pro trial with 300 documents, no card. Starter €5 a month for 300 documents, Pro €15 for 3,000, Pro+ €60 for 5,000, Premium €300 for 60,000, 10 per cent off yearly. Pay-as-you-go overage from €0.008 to €0.005 a document, Boost Packs €5 per 1,000 documents (https://pdfmonkey.io/pricing/).",
      "priceSummary": "$5.59 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, llms-full.txt, pricing page or MCP server source (checked 2026-11-03). Quota overruns are billed to the plan's card through the dashboard.",
        "endpoints": []
      },
      "toolCount": 11,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 97,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://pdfmonkey.io/docs/",
      "llmsTxt": "https://pdfmonkey.io/llms.txt",
      "registryName": "io.github.pdfmonkey/pdfmonkey-mcp",
      "capabilities": [
        "pdf.generate",
        "pdf.forms"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "free-tier",
        "mcp",
        "mcp-registry",
        "llms-txt",
        "cli",
        "webhooks",
        "async-jobs",
        "typescript",
        "ruby",
        "eu",
        "mit",
        "closed-source"
      ],
      "lastRelease": "2026-10-26",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.3,
        "grade": "C",
        "agentReady": false,
        "rank": 637,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 3,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 81,
          "payments": 40,
          "reliability": 60,
          "schema": 61,
          "security": 36,
          "transparency": 78
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "An agent gets 11 compact MCP tools, a scriptable CLI and a sync endpoint, with public euro prices and a free plan. The one account-wide key has no scopes, document creation has no idempotency key, and there is no OpenAPI document, SLA or security disclosure policy.",
        "bestFor": "Agents that fill known templates with JSON to produce invoices, reports, forms and images, and teams that want an agent to author templates through the CLI.",
        "strengths": [
          "11 compact MCP tools with typed inputs, and a CLI whose management commands all take `--json` and exit non-zero on error",
          "`POST /api/v1/documents/sync` returns the finished document in one request, waiting up to 6 minutes",
          "Plan prices, per-document overage rates and Boost Pack prices are public in euros, with a Free plan and a 30-day trial that need no card",
          "Key rotation keeps the old key alive for 2 days, and payloads are stored encrypted in EU data centres with a published DPA",
          "MCP server, CLI, Node.js SDK and Ruby gem are MIT and in the official MCP registry under a verified namespace"
        ],
        "weaknesses": [
          "One secret key with the whole account's privileges, no scopes and no read-only key",
          "No OpenAPI document, no changelog page and no written rate limits beyond the monthly quota",
          "No idempotency key on document creation, so a retried create queues and bills a second document",
          "No SLA, no security.txt, no disclosure policy and no SOC 2 or ISO 27001, which the docs state plainly",
          "The MCP server has no tool annotations and includes a permanent `delete_document`"
        ],
        "agentNotes": [
          "Use `POST /api/v1/documents/sync` or the MCP `generate_document` tool for one document; for batches create with `status: pending` and poll `document_cards` or take the webhook",
          "Fetch the template first (`get_template` or `pdfmonkey template get --json`) to learn the payload shape; a mismatched payload generates a blank or wrong document, not an error",
          "Download within the hour; `download_url` returns 403 after 60 minutes, and fetching the document again gives a fresh link",
          "Do not retry a create on a timeout without checking `list_documents` first; there is no idempotency key and each generation counts against the quota",
          "Expect a 422 with field names when a required field is missing, and a rejected create at 100 per cent of the monthly quota unless pay-as-you-go is on"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.3
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 81,
          "payments": 40,
          "reliability": 60,
          "schema": 61,
          "security": 36,
          "transparency": 70
        },
        "provenanceScore": 86,
        "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": "npm install -g @pdfmonkey/cli",
        "http": "curl https://api.pdfmonkey.io/api/v1/current_user -H \"Authorization: Bearer $PDFMONKEY_API_KEY\"",
        "claudeCode": "claude mcp add pdfmonkey -e PDFMONKEY_API_KEY=your-api-key -- npx -y pdfmonkey-mcp-server",
        "config": {
          "mcpServers": {
            "pdfmonkey": {
              "args": [
                "-y",
                "pdfmonkey-mcp-server"
              ],
              "command": "npx",
              "env": {
                "PDFMONKEY_API_KEY": "your-api-key"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/pdf.generate",
        "tool": "https://letme.dev/pdfmonkey"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 5.59,
          "note": "€5, 300 documents a month, converted at the ECB rate of 3 November 2026 (1.1179). €4.50 billed yearly"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 16.77,
          "note": "€15, 3,000 documents a month. €13.50 billed yearly"
        },
        {
          "item": "Pro+",
          "unit": "month",
          "usd": 67.07,
          "note": "€60, 5,000 documents a month. €54 billed yearly"
        },
        {
          "item": "Premium",
          "unit": "month",
          "usd": 335.37,
          "note": "€300, 60,000 documents a month. €270 billed yearly"
        },
        {
          "item": "Pay-as-you-go document on Starter",
          "unit": "tx",
          "usd": 0.0089,
          "note": "€0.008 a document beyond the quota. Pro €0.007, Pro+ €0.006, Premium €0.005"
        },
        {
          "item": "Boost Pack",
          "unit": "tx",
          "usd": 5.59,
          "note": "€5 for 1,000 extra documents, expiring at the monthly quota reset"
        }
      ],
      "provenance": {
        "legalEntity": "PDFMonkey",
        "domain": "pdfmonkey.io",
        "domainRegistered": "2016-05-07",
        "endpointOnVendorDomain": true,
        "terms": "https://pdfmonkey.io/terms-and-conditions",
        "privacy": "https://pdfmonkey.io/privacy-policy",
        "statusPage": "https://status.pdfmonkey.io",
        "changelog": "https://pdfmonkey.io/blog/",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "The terms and privacy policy are iubenda documents embedded on pdfmonkey.io (iubenda ids 72376615). They name the owner as PDFMonkey at 49 rue de Ponthieu, Lot 41, 75008 Paris, with no company form or registration number. The privacy policy was last updated 16 September 2026.",
          "The terms forbid accounts registered by bots or automated methods and contain no clause on automated reading of the website. pdfmonkey.io/robots.txt allows all crawlers.",
          "status.pdfmonkey.io is an updown.io page with six checks (API, dashboard, preview, website, generation latency, queue size) showing one month of rolling uptime per check and no incident write-ups.",
          "RDAP gives pdfmonkey.io a registration date of 7 May 2016. The oldest blog post is dated 9 December 2019, used for firstReleased.",
          "/.well-known/security.txt and /security.txt return 404. There is no changelog page; product changes are announced on the blog."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pdfmonkey.json",
      "live": {
        "slug": "pdfmonkey",
        "probe": {
          "target": "https://api.pdfmonkey.io/api/v1",
          "method": "get",
          "lastAt": "2026-11-04T20:47:06.90801329Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 543,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 159,
          "p95ms24h": 714,
          "samples24h": 55,
          "samples30d": 55,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 55,
              "ok": 55
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.pdfmonkey.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T15:32:28.217450512Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.pdfmonkey/pdfmonkey-mcp",
            "version": "1.0.1",
            "seenAt": "2026-11-04T17:11:44.552009456Z"
          },
          {
            "registry": "npm",
            "name": "@pdfmonkey/cli",
            "version": "2.1.0",
            "seenAt": "2026-11-04T20:45:09.966897237Z"
          },
          {
            "registry": "npm",
            "name": "pdfmonkey",
            "version": "1.4.0",
            "seenAt": "2026-11-04T20:45:11.419031923Z"
          },
          {
            "registry": "npm",
            "name": "pdfmonkey-mcp-server",
            "version": "1.0.1",
            "seenAt": "2026-11-04T20:45:09.158965958Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 83,
        "securityTxt": {
          "url": "https://pdfmonkey.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:14.692797875Z"
        },
        "updatedAt": "2026-11-04T20:47:06.90801329Z"
      }
    },
    "edges": [
      {
        "by": 60,
        "category": "maintenance",
        "leads": "pdfmonkey",
        "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": "Read as a closed service with open-source clients. pdfmonkey-mcp-server 1.0.1 on 26 October 2026, @pdfmonkey/cli 2.1.0 on 15 October and docs pages updated 2 November (30). Node SDK 1.1.0 to 1.4.0 between 2 and 5 October, CLI 2.0.0 and 2.1.0 on 13 and 15 October, MCP 1.0.1 on 26 October (20). Blog posts announce changes, and support answers by in-app chat and email within a few hours in CET business hours per the docs; GitHub issue replies couldn't be read (10 of 15). io.github.pdfmonkey/pdfmonkey-mcp in the official registry, 1.0.1 latest (15). The MCP server has unit tests, a release workflow on tags and a prepublish test step, but no CI on pull requests and a loose `^1.0.4` pin on the MCP SDK (6). 30 + 20 + 10 + 15 + 6 = 81."
        },
        "scores": {
          "a": 21,
          "b": 81
        }
      },
      {
        "by": 12,
        "category": "ergonomics",
        "leads": "pdfmonkey",
        "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": "11 compact MCP tools from a 17 KB tools.ts, and API responses are cards without payload or logs on list and sync endpoints, while a full template fetch is large and the SDK docs warn about it (22). `page[number]`, `q[status]`, `q[document_template_id]`, `q[updated_since]` and `q[search]` on document cards, `q[folders]` on templates and snippets, a `meta` block with pagination, and the CLI's `--json` (18). 401 and 422 bodies name the problem, 403 on an expired download URL is explained, and a quota overrun rejects the create rather than making a draft; the MCP server returns the API's error text (14). No idempotency key on create, so a retried create queues and bills a second document; webhooks are at least once with idempotency guidance; the MCP server sets no readOnlyHint or destructiveHint and `delete_document` is permanent, which the docs leave to the client to confirm (6). Only `document_template_id` and `payload` are needed, and official SDKs exist in two languages (Node.js and Ruby) plus the CLI (15). 22 + 18 + 14 + 6 + 15 = 75."
        },
        "scores": {
          "a": 63,
          "b": 75
        }
      },
      {
        "by": 9,
        "category": "transparency",
        "leads": "pdfmonkey",
        "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": "Closed service with iubenda terms that name the owner only as PDFMonkey at a Paris address, while the MCP server, CLI, Node SDK and Ruby gem are MIT (20). Retention statements agree across the plans page, the retention page and the data storage page (per-template TTL, 1 day, 7 days or unlimited by plan), the DPA and DsPA of 15 October 2026 are downloadable, and the privacy policy of 16 September 2026 names its processors, though it still lists Heroku where the docs name Fly.io (24). Engine deprecations were announced with a promised heads-up in 2023 and key rotation has a 2-day overlap, but there is no written deprecation policy with notice periods (8). Data locations are named (Paris and Frankfurt) and the DPA carries the approved sub-processor list (18). 20 + 24 + 8 + 18 = 70."
        },
        "scores": {
          "a": 69,
          "b": 78
        }
      },
      {
        "by": 8,
        "category": "reliability",
        "leads": "docraptor",
        "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": "Read with the hosted lines. status.pdfmonkey.io is an updown.io page with six checks (API, dashboard, preview, website, generation latency, queue size) and one month of rolling uptime per check, but no incident write-ups (15). The readable record is the uptime figures (API 99.98 per cent and queue 99.97 per cent since 3 October 2026) and the one incident the vendor wrote up, a slowdown of a little under an hour on 29 September 2026 with a post-mortem on 1 October; the 90-day list itself isn't published, so minor incidents only (20). The docs say there is no hard rate limit, only the monthly quota, so no request-rate numbers (5 for the quota numbers). The Node.js SDK retries 408, 429 and 5xx with backoff and honours Retry-After, and the webhook docs say delivery is at least once and to make handlers idempotent, but document creation has no idempotency key (10). No SLA found in the terms or pricing (0). GA (10). 15 + 20 + 5 + 10 + 0 + 10 = 60."
        },
        "scores": {
          "a": 68,
          "b": 60
        }
      },
      {
        "by": 5,
        "category": "security",
        "leads": "docraptor",
        "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": "One secret key per account with the whole account's privileges, sent as a Bearer header; it can be rotated with a 2-day overlap and the old key revoked at once, but there are no scopes, no second key and no read-only key (12). No least-privilege mode; the MCP server exposes `delete_document`, the CLI asks before deletions unless `-y`, and the MCP docs say most clients ask before running a delete (6). The tools return the account's own templates, documents and quota, not third-party content (10). Each document carries generation logs and the dashboard shows usage, but no audit log or per-key activity view was found (3). No security.txt (404), no disclosure policy and no bug bounty; the compliance page says there is no SOC 2 or ISO 27001, and sets against that EU hosting, encrypted payloads and a DPA dated 15 October 2026 (5). 12 + 6 + 10 + 3 + 5 = 36."
        },
        "scores": {
          "a": 41,
          "b": 36
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "pdfmonkey",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Plan prices are public and the plans page says overage is a per-document price by plan, with the per-document figures shown through a plan selector that our reader saw only for the Free plan (15). The Free plan has 5 documents a month and unlimited watermarked test documents, but the signup form shows card fields and no page says whether the Free plan needs a card (10). A person signs up in a browser (0). 0 + 15 + 10 + 0 = 35.",
          "b": "No x402, MPP or L402 (0). Plan prices in euros, per-document pay-as-you-go rates and the Boost Pack price are on the public pricing page and in the docs (20). A Free plan of 20 documents a month and a 30-day Pro trial of 300 documents, no card (20). Signup is a browser flow and the key is minted in the dashboard (0). 0 + 20 + 20 + 0 = 40."
        },
        "scores": {
          "a": 35,
          "b": 40
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "DocRaptor, LLC (Artifex Software)",
        "b": "PDFMonkey",
        "name": "Vendor"
      },
      {
        "a": "https://api.docraptor.com/docs",
        "b": "https://api.pdfmonkey.io/api/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (client libraries)",
        "b": "MIT (MCP server, CLI and SDKs)",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "11",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.pdfmonkey/pdfmonkey-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2023-09-05",
        "b": "2026-10-26",
        "name": "Last release"
      },
      {
        "a": "2026-06-03",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2025-11-19",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "17k npm/wk",
        "b": "97 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "PDFMonkey scores 59.3 (C) on agent readiness against DocRaptor's 53.3 (D), and leads in 4 of 7 scored categories. DocRaptor leads on reliability and security \u0026 auth.",
        "question": "Which is better for AI agents, DocRaptor or PDFMonkey?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do DocRaptor and PDFMonkey need an API key?"
      },
      {
        "answer": "Yes. DocRaptor has a hosted endpoint at https://api.docraptor.com/docs and PDFMonkey at https://api.pdfmonkey.io/api/v1.",
        "question": "Can an agent call DocRaptor and PDFMonkey without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 68 against 60",
          "Security \u0026 auth, 41 against 36"
        ],
        "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": [
          "Agent ergonomics, 75 against 63",
          "Payments \u0026 pricing, 40 against 35",
          "Maintenance \u0026 community, 81 against 21",
          "Transparency \u0026 trust, 78 against 69"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "Agents that fill known templates with JSON to produce invoices, reports, forms and images, and teams that want an agent to author templates through the CLI.",
        "slug": "pdfmonkey",
        "watchFor": "One secret key with the whole account's privileges, no scopes and no read-only key"
      }
    ],
    "history": null,
    "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-pdfmonkey.json",
        "title": "CloudConvert API vs PDFMonkey",
        "url": "https://www.anchorterminal.com/compare/cloudconvert-vs-pdfmonkey"
      },
      {
        "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-nutrient-dws-processor.json",
        "title": "DocRaptor vs Nutrient DWS Processor API",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-nutrient-dws-processor"
      },
      {
        "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-pdfrest.json",
        "title": "DocRaptor vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-pdfrest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdfmonkey.json",
        "title": "Foxit PDF Services API vs PDFMonkey",
        "url": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdfmonkey"
      },
      {
        "json": "https://www.anchorterminal.com/compare/iloveapi-vs-pdfmonkey.json",
        "title": "iLoveAPI vs PDFMonkey",
        "url": "https://www.anchorterminal.com/compare/iloveapi-vs-pdfmonkey"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey.json",
        "title": "PDF.co API + MCP vs PDFMonkey",
        "url": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest.json",
        "title": "PDFMonkey vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 8,
        "docraptor": 68,
        "edge": "docraptor",
        "key": "reliability",
        "name": "Reliability",
        "pdfmonkey": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "docraptor": 62,
        "edge": "docraptor",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pdfmonkey": 61,
        "weight": 13
      },
      {
        "by": 12,
        "docraptor": 63,
        "edge": "pdfmonkey",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pdfmonkey": 75,
        "weight": 13
      },
      {
        "by": 5,
        "docraptor": 41,
        "edge": "docraptor",
        "key": "security",
        "name": "Security \u0026 auth",
        "pdfmonkey": 36,
        "weight": 14
      },
      {
        "by": 5,
        "docraptor": 35,
        "edge": "pdfmonkey",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pdfmonkey": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 60,
        "docraptor": 21,
        "edge": "pdfmonkey",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pdfmonkey": 81,
        "weight": 7
      },
      {
        "by": 9,
        "docraptor": 69,
        "edge": "pdfmonkey",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pdfmonkey": 78,
        "weight": 7
      }
    ],
    "summary": "PDFMonkey scores 59.3 (C) on agent readiness against DocRaptor's 53.3 (D), and leads in 4 of 7 scored categories. DocRaptor leads on reliability and security \u0026 auth. 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.",
      "pdfmonkey": "An agent gets 11 compact MCP tools, a scriptable CLI and a sync endpoint, with public euro prices and a free plan. The one account-wide key has no scopes, document creation has no idempotency key, and there is no OpenAPI document, SLA or security disclosure policy."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey",
    "json": "https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey.min.md"
  },
  "markdown": "PDFMonkey scores 59.3 (C) on agent readiness against DocRaptor's 53.3 (D), and leads in 4 of 7 scored categories. DocRaptor leads on reliability and security \u0026 auth. 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- PDFMonkey: grade C, 59.3/100, rank #637 of 1349. Markdown https://www.anchorterminal.com/tools/pdfmonkey.md · JSON https://www.anchorterminal.com/api/v1/tools/pdfmonkey.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\nAhead on:\n- Reliability, 68 against 60\n- Security \u0026 auth, 41 against 36\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### PDFMonkey (C)\n\nGood for: Agents that fill known templates with JSON to produce invoices, reports, forms and images, and teams that want an agent to author templates through the CLI.\n\nAhead on:\n- Agent ergonomics, 75 against 63\n- Payments \u0026 pricing, 40 against 35\n- Maintenance \u0026 community, 81 against 21\n- Transparency \u0026 trust, 78 against 69\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: One secret key with the whole account's privileges, no scopes and no read-only key\n\n\n## Why the edge\n\n### Maintenance \u0026 community: PDFMonkey +60\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- PDFMonkey (81): Read as a closed service with open-source clients. pdfmonkey-mcp-server 1.0.1 on 26 October 2026, @pdfmonkey/cli 2.1.0 on 15 October and docs pages updated 2 November (30). Node SDK 1.1.0 to 1.4.0 between 2 and 5 October, CLI 2.0.0 and 2.1.0 on 13 and 15 October, MCP 1.0.1 on 26 October (20). Blog posts announce changes, and support answers by in-app chat and email within a few hours in CET business hours per the docs; GitHub issue replies couldn't be read (10 of 15). io.github.pdfmonkey/pdfmonkey-mcp in the official registry, 1.0.1 latest (15). The MCP server has unit tests, a release workflow on tags and a prepublish test step, but no CI on pull requests and a loose `^1.0.4` pin on the MCP SDK (6). 30 + 20 + 10 + 15 + 6 = 81.\n\n### Agent ergonomics: PDFMonkey +12\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- PDFMonkey (75): 11 compact MCP tools from a 17 KB tools.ts, and API responses are cards without payload or logs on list and sync endpoints, while a full template fetch is large and the SDK docs warn about it (22). `page[number]`, `q[status]`, `q[document_template_id]`, `q[updated_since]` and `q[search]` on document cards, `q[folders]` on templates and snippets, a `meta` block with pagination, and the CLI's `--json` (18). 401 and 422 bodies name the problem, 403 on an expired download URL is explained, and a quota overrun rejects the create rather than making a draft; the MCP server returns the API's error text (14). No idempotency key on create, so a retried create queues and bills a second document; webhooks are at least once with idempotency guidance; the MCP server sets no readOnlyHint or destructiveHint and `delete_document` is permanent, which the docs leave to the client to confirm (6). Only `document_template_id` and `payload` are needed, and official SDKs exist in two languages (Node.js and Ruby) plus the CLI (15). 22 + 18 + 14 + 6 + 15 = 75.\n\n### Transparency \u0026 trust: PDFMonkey +9\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- PDFMonkey (78): Closed service with iubenda terms that name the owner only as PDFMonkey at a Paris address, while the MCP server, CLI, Node SDK and Ruby gem are MIT (20). Retention statements agree across the plans page, the retention page and the data storage page (per-template TTL, 1 day, 7 days or unlimited by plan), the DPA and DsPA of 15 October 2026 are downloadable, and the privacy policy of 16 September 2026 names its processors, though it still lists Heroku where the docs name Fly.io (24). Engine deprecations were announced with a promised heads-up in 2023 and key rotation has a 2-day overlap, but there is no written deprecation policy with notice periods (8). Data locations are named (Paris and Frankfurt) and the DPA carries the approved sub-processor list (18). 20 + 24 + 8 + 18 = 70.\n\n### Reliability: DocRaptor +8\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- PDFMonkey (60): Read with the hosted lines. status.pdfmonkey.io is an updown.io page with six checks (API, dashboard, preview, website, generation latency, queue size) and one month of rolling uptime per check, but no incident write-ups (15). The readable record is the uptime figures (API 99.98 per cent and queue 99.97 per cent since 3 October 2026) and the one incident the vendor wrote up, a slowdown of a little under an hour on 29 September 2026 with a post-mortem on 1 October; the 90-day list itself isn't published, so minor incidents only (20). The docs say there is no hard rate limit, only the monthly quota, so no request-rate numbers (5 for the quota numbers). The Node.js SDK retries 408, 429 and 5xx with backoff and honours Retry-After, and the webhook docs say delivery is at least once and to make handlers idempotent, but document creation has no idempotency key (10). No SLA found in the terms or pricing (0). GA (10). 15 + 20 + 5 + 10 + 0 + 10 = 60.\n\n### Security \u0026 auth: DocRaptor +5\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- PDFMonkey (36): One secret key per account with the whole account's privileges, sent as a Bearer header; it can be rotated with a 2-day overlap and the old key revoked at once, but there are no scopes, no second key and no read-only key (12). No least-privilege mode; the MCP server exposes `delete_document`, the CLI asks before deletions unless `-y`, and the MCP docs say most clients ask before running a delete (6). The tools return the account's own templates, documents and quota, not third-party content (10). Each document carries generation logs and the dashboard shows usage, but no audit log or per-key activity view was found (3). No security.txt (404), no disclosure policy and no bug bounty; the compliance page says there is no SOC 2 or ISO 27001, and sets against that EU hosting, encrypted payloads and a DPA dated 15 October 2026 (5). 12 + 6 + 10 + 3 + 5 = 36.\n\n### Payments \u0026 pricing: PDFMonkey +5\n\n- DocRaptor (35): No x402, MPP or L402 (0). Plan prices are public and the plans page says overage is a per-document price by plan, with the per-document figures shown through a plan selector that our reader saw only for the Free plan (15). The Free plan has 5 documents a month and unlimited watermarked test documents, but the signup form shows card fields and no page says whether the Free plan needs a card (10). A person signs up in a browser (0). 0 + 15 + 10 + 0 = 35.\n- PDFMonkey (40): No x402, MPP or L402 (0). Plan prices in euros, per-document pay-as-you-go rates and the Boost Pack price are on the public pricing page and in the docs (20). A Free plan of 20 documents a month and a 30-day Pro trial of 300 documents, no card (20). Signup is a browser flow and the key is minted in the dashboard (0). 0 + 20 + 20 + 0 = 40.\n\n## Score by category\n\n| Category | Weight | DocRaptor | PDFMonkey | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 60 | DocRaptor +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 62 | 61 | DocRaptor +1 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 75 | PDFMonkey +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 36 | DocRaptor +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 40 | PDFMonkey +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 21 | 81 | PDFMonkey +60 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 69 | 78 | PDFMonkey +9 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **53.3 · D** | **59.3 · C** | |\n\n## Facts side by side\n\n| Fact | DocRaptor | PDFMonkey |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | DocRaptor, LLC (Artifex Software) | PDFMonkey |\n| Hosted endpoint | `https://api.docraptor.com/docs` | `https://api.pdfmonkey.io/api/v1` |\n| Transports | HTTP | stdio |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT (client libraries) | MIT (MCP server, CLI and SDKs) |\n| Tools exposed | none | 11 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `io.github.pdfmonkey/pdfmonkey-mcp` |\n| Last release | 2023-09-05 | 2026-10-26 |\n| Terms last updated | 2026-06-03 | couldn't be read |\n| Privacy policy last updated | 2025-11-19 | couldn't be read |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | yes | couldn't be read |\n| Terms restrict benchmarking | not found in the text | couldn't be read |\n| Terms or service can change without notice | yes | couldn't be read |\n| Arbitration or class-action waiver | not found in the text | couldn't be read |\n| Popularity | 17k npm/wk | 97 npm/wk |\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**PDFMonkey.** An agent gets 11 compact MCP tools, a scriptable CLI and a sync endpoint, with public euro prices and a free plan. The one account-wide key has no scopes, document creation has no idempotency key, and there is no OpenAPI document, SLA or security disclosure policy.\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### PDFMonkey\n\n1. Use `POST /api/v1/documents/sync` or the MCP `generate_document` tool for one document; for batches create with `status: pending` and poll `document_cards` or take the webhook\n2. Fetch the template first (`get_template` or `pdfmonkey template get --json`) to learn the payload shape; a mismatched payload generates a blank or wrong document, not an error\n3. Download within the hour; `download_url` returns 403 after 60 minutes, and fetching the document again gives a fresh link\n4. Do not retry a create on a timeout without checking `list_documents` first; there is no idempotency key and each generation counts against the quota\n5. Expect a 422 with field names when a required field is missing, and a rejected create at 100 per cent of the monthly quota unless pay-as-you-go is on\n\n## Questions\n\n### Which is better for AI agents, DocRaptor or PDFMonkey?\n\nPDFMonkey scores 59.3 (C) on agent readiness against DocRaptor's 53.3 (D), and leads in 4 of 7 scored categories. DocRaptor leads on reliability and security \u0026 auth.\n\n### Do DocRaptor and PDFMonkey need an API key?\n\nBoth need an API key.\n\n### Can an agent call DocRaptor and PDFMonkey without installing anything?\n\nYes. DocRaptor has a hosted endpoint at https://api.docraptor.com/docs and PDFMonkey at https://api.pdfmonkey.io/api/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey.json, and with the fewest tokens: https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"docraptor\", \"b\": \"pdfmonkey\"}`. From a terminal: `anchor compare docraptor pdfmonkey`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/docraptor.json and https://www.anchorterminal.com/api/v1/tools/pdfmonkey.json\n\n## Other comparisons with DocRaptor or PDFMonkey\n\n- [CloudConvert API vs DocRaptor](https://www.anchorterminal.com/compare/cloudconvert-vs-docraptor.md)\n- [CloudConvert API vs PDFMonkey](https://www.anchorterminal.com/compare/cloudconvert-vs-pdfmonkey.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 Nutrient DWS Processor API](https://www.anchorterminal.com/compare/docraptor-vs-nutrient-dws-processor.md)\n- [DocRaptor vs PDF.co API + MCP](https://www.anchorterminal.com/compare/docraptor-vs-pdf-co.md)\n- [DocRaptor vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/docraptor-vs-pdfrest.md)\n- [Foxit PDF Services API vs PDFMonkey](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdfmonkey.md)\n- [iLoveAPI vs PDFMonkey](https://www.anchorterminal.com/compare/iloveapi-vs-pdfmonkey.md)\n- [Nutrient DWS Processor API vs PDFMonkey](https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfmonkey.md)\n- [PDF.co API + MCP vs PDFMonkey](https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey.md)\n- [PDFMonkey vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest.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 PDFMonkey",
        "url": ""
      }
    ],
    "description": "PDFMonkey scores 59.3 (C) to DocRaptor's 53.3 (D) for pdf generate. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "DocRaptor D 53.3",
      "PDFMonkey C 59.3",
      "scores"
    ],
    "h1": "DocRaptor vs PDFMonkey",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/docraptor-vs-pdfmonkey",
    "published": "2026-10-01",
    "section": "tools",
    "title": "DocRaptor vs PDFMonkey for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey"
  },
  "tokens": {
    "markdown": 4650,
    "slim": 3080
  },
  "version": 1
}
