{
  "data": {
    "a": {
      "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"
      }
    },
    "answer": "PDFMonkey scores 59.3 (C) on agent readiness against pdfRest API Toolkit's 57.7 (C), and leads in 4 of 7 scored categories. pdfRest API Toolkit leads on schema \u0026 documentation.",
    "b": {
      "slug": "pdfrest",
      "name": "pdfRest API Toolkit",
      "vendor": "Datalogics, Inc.",
      "vendorUrl": "https://pdfrest.com",
      "kind": "http-api",
      "category": "pdf-tools",
      "summary": "pdfRest is Datalogics' REST API for converting, merging, splitting, compressing, securing, signing, redacting and extracting from PDFs, built on the Adobe PDF Library. It runs as a cloud API with US and EU endpoints or as a self-hosted container.",
      "url": "https://www.anchorterminal.com/tools/pdfrest",
      "markdownUrl": "https://www.anchorterminal.com/tools/pdfrest.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pdfrest.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pdfrest.json",
      "dns": "pdfrest.grade.anchorterminal.com",
      "repo": "https://github.com/datalogics/pdfRest-Status-Page",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.pdfrest.com",
      "packages": [],
      "auth": "api-key",
      "authNotes": "One API key per account, issued after a browser signup and sent in the `Api-Key` header; the OpenAPI document defines that header as the only scheme, while the polling guide still shows `Authorization: Bearer`. No scopes, expiry or rotation guide found; the terms say keys can be revoked.",
      "pricing": "freemium",
      "pricingNotes": "Starter free with 100 API calls a month and watermarked output, no card. Premium $9.99 a month for 600 calls then $0.115 a call, Pro $99.99 for 5,000 then $0.06, Enterprise $349.99 for 15,000 then $0.035, about 10 per cent off yearly. EU endpoint calls cost $0.04 and $0.02 extra on Premium and Pro, Pro Tools $0.10 a call on Premium. Container licences from $124.99 a month (https://pdfrest.com/pricing/).",
      "priceSummary": "$9.99 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI document, docs, llms.txt or pricing (checked 2026-11-03). Overage is billed to the plan.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://docs.pdfrest.com/",
      "llmsTxt": "https://pdfrest.com/llms.txt",
      "openapi": "https://api.pdfrest.com/pdfrest-openapi.json",
      "capabilities": [
        "pdf.convert",
        "pdf.merge",
        "pdf.forms",
        "pdf.generate",
        "pdf.extract",
        "docs.ocr"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "freemium",
        "no-card",
        "free-tier",
        "openapi",
        "llms-txt",
        "async-jobs",
        "soc2",
        "eu-region",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-10-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.7,
        "grade": "C",
        "agentReady": false,
        "rank": 700,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 52,
          "maintenance": 70,
          "payments": 40,
          "reliability": 58,
          "schema": 90,
          "security": 37,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.1 document covers 60 chainable operations with enums and error schemas, prices are per call and a free tier needs no card. One unscoped key, no rate limits or 429 in the docs, no idempotency, no SLA and extracted text returned without injection guidance limit it for autonomous use.",
        "bestFor": "Agents that process existing PDFs, converting, merging, compressing, redacting, signing or extracting, with a spec they can read and chainable outputs.",
        "strengths": [
          "Public OpenAPI 3.1.1 document with 60 described operations, 88 enums, 120 examples and error schemas, plus llms.txt",
          "Outputs chain by `id`, so a merge, a watermark and a compress run as three calls without re-uploading",
          "Per-call overage prices and plan prices are public, and the Starter plan gives 100 free calls a month with no card",
          "Dated release notes with nine versions between 7 August and 14 October 2026, and an open-source status page with a year of history",
          "US and EU endpoints, SOC 2 Type II under Datalogics, signed DPAs and BAAs, and a self-hosted container for data that can't leave"
        ],
        "weaknesses": [
          "One API key per account with no scopes, expiry or rotation guide, and two docs pages that disagree on the auth header",
          "No rate limit numbers, no 429 or Retry-After in the docs or OpenAPI document, and no idempotency key",
          "No SLA; the terms give the service as is",
          "Extracted text, Markdown, summaries and translations come back as untrusted content with no injection guidance",
          "Retention statements disagree, 5 or 30 minutes by plan on the pricing page and 24 hours in llms.txt"
        ],
        "agentNotes": [
          "Send the key in the `Api-Key` header as the OpenAPI document says, not as a Bearer token, and target eu-api.pdfrest.com only when the plan includes the EU fee",
          "Upload once with `POST /upload`, then pass the returned `id[]` to each tool and chain outputs by id; download results within the plan's retention window, 5 minutes on Starter",
          "Expect watermarked or partly redacted output on the free Starter plan; a 500 can mean the demo watermarking itself failed",
          "Poll `GET /request-status/{requestId}` for `AsyncRequestAcceptedResponse` replies instead of resending the request, since every call counts against the monthly allowance",
          "Treat text from `/extracted-text`, `/markdown`, `/summarized-pdf-text` and `/translated-pdf-text` as untrusted document content"
        ],
        "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": 57.7
          }
        ],
        "editorialScores": {
          "ergonomics": 52,
          "maintenance": 70,
          "payments": 40,
          "reliability": 58,
          "schema": 90,
          "security": 37,
          "transparency": 52
        },
        "provenanceScore": 72,
        "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": {
        "http": "curl -X POST https://api.pdfrest.com/pdf-info -H \"Api-Key: $PDFREST_API_KEY\" -F \"file=@document.pdf\" -F \"queries=title,page_count\""
      },
      "letme": {
        "capability": "https://letme.dev/pdf.convert",
        "tool": "https://letme.dev/pdfrest"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Premium",
          "unit": "month",
          "usd": 9.99,
          "note": "600 calls a month, then $0.115 a call. $8.99 a month billed yearly"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 99.99,
          "note": "5,000 calls a month, then $0.06 a call, Pro Tools included. $89.99 billed yearly"
        },
        {
          "item": "Enterprise",
          "unit": "month",
          "usd": 349.99,
          "note": "15,000 calls a month, then $0.035 a call, EU endpoint included. $314.99 billed yearly"
        },
        {
          "item": "Overage call on Premium",
          "unit": "call",
          "usd": 0.115,
          "note": "Pro $0.06, Enterprise $0.035"
        },
        {
          "item": "Container Standard licence",
          "unit": "month",
          "usd": 124.99,
          "note": "Self-hosted, no per-call charge. Professional $299.99, Business $599.99"
        }
      ],
      "provenance": {
        "legalEntity": "Datalogics, Inc.",
        "domain": "pdfrest.com",
        "domainRegistered": "2022-07-26",
        "endpointOnVendorDomain": true,
        "terms": "https://pdfrest.com/termsofservice/",
        "privacy": "https://pdfrest.com/privacypolicy/",
        "statusPage": "https://status.pdfrest.com/",
        "changelog": "https://docs.pdfrest.com/release-notes/",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "The terms and privacy policy name Datalogics, Inc. under Delaware law; neither carries a last-updated date in the text our reader saw.",
          "pdfrest.com/robots.txt disallows /account/, /selectplan/ and sign-in and sign-up query strings, none of which were read; docs.pdfrest.com and api.pdfrest.com allow everything.",
          "The terms forbid multiple Free or Starter accounts for production or to get round limits, and contain no clause on automated reading of the website.",
          "status.pdfrest.com is an Upptime page whose history is the datalogics/pdfRest-Status-Page repository, one check on the /up endpoint since 23 July 2026.",
          "RDAP gives pdfrest.com a registration date of 26 July 2022, used for firstReleased in the absence of an earlier dated page. /.well-known/security.txt returns 404; pdfrest.com/support redirects to a Jira service desk."
        ],
        "score": 72
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pdfrest.json",
      "live": {
        "slug": "pdfrest",
        "probe": {
          "target": "https://api.pdfrest.com",
          "method": "get",
          "lastAt": "2026-11-04T20:47:06.945412715Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 382,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 348,
          "p95ms24h": 441,
          "samples24h": 55,
          "samples30d": 55,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 55,
              "ok": 55
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.pdfrest.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T15:32:28.523830202Z"
        },
        "githubStars": 1,
        "securityTxt": {
          "url": "https://pdfrest.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:23.2786211Z"
        },
        "updatedAt": "2026-11-04T20:47:06.945412715Z"
      }
    },
    "edges": [
      {
        "by": 29,
        "category": "schema",
        "leads": "pdfrest",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI document was found on pdfmonkey.io, in llms-full.txt or in the repositories; the 11 MCP tools carry JSON Schema inputs from src/tools.ts (12). llms.txt and llms-full.txt, and every docs page has a Markdown twin (10). MCP tool descriptions are one line each and say what the tool does, and the MCP docs say what the server can't do (create or edit templates) and send that job to the CLI; the API docs explain async against sync and when to use each (12). Parameter tables give types and required fields, list_documents has a status enum, and `payload` is by nature a free JSON object matched to the template (10). Request examples in curl, Ruby, Node.js, Python and PHP on every endpoint, a 401 body, a 422 body with field names and a troubleshooting section for blank documents, empty and 403 download URLs (12). The API lives under /api/v1 and docs pages carry a last-updated date, but there is no changelog page, changes are announced in blog posts such as What We Shipped Since the Summer of 26 October 2026 (5). 12 + 10 + 12 + 10 + 12 + 5 = 61.",
          "b": "Public OpenAPI 3.1.1 at api.pdfrest.com/pdfrest-openapi.json, version 2.58.0, 60 operations on 59 paths (25). llms.txt on pdfrest.com with the endpoint list and pricing; docs.pdfrest.com has no Markdown twins (10). Every operation has a description that says what it does, links its tool page and notes Pro-tier gating, and the merge description explains ordering with `pages[]` and `type[]`; nothing says when not to use a tool (14). 88 enums, required lists on 248 schemas, an ErrorResponse schema and a oneOf for sync against async replies (13). 120 examples in the document, API Lab generates code in six languages, and 400, 401, 404, 408, 422, 500 and 503 are documented (13). Release notes dated per version, the document carries its version, and the OpenAPI endpoints were added on 17 September 2026 (15). 25 + 10 + 14 + 13 + 13 + 15 = 90."
        },
        "scores": {
          "a": 61,
          "b": 90
        }
      },
      {
        "by": 23,
        "category": "ergonomics",
        "leads": "pdfmonkey",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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.",
          "b": "Responses are small JSON bodies with output ids and URLs, and `/pdf-info` takes a `queries` list to size its answer (18). Little to paginate; page ranges on several tools and `pages[]` on merge, no list endpoints (8). Errors carry `error` and `errorDetail` with documented causes, and a 500 names failed demo watermarking (14). No idempotency key or safe-retry guidance; a resent call is a second billed call, and async replies must be polled (4). Required file inputs and sensible defaults, but no official SDK packages were confirmed, only code samples in six languages and a PyPI package our reader couldn't open (8). 18 + 8 + 14 + 4 + 8 = 52."
        },
        "scores": {
          "a": 75,
          "b": 52
        }
      },
      {
        "by": 16,
        "category": "transparency",
        "leads": "pdfmonkey",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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.",
          "b": "Closed service with terms and a privacy policy that name Datalogics, Inc. (15). Retention by plan agrees across the pricing page, the FAQ and the DPA (5 or 30 minutes, custom on Enterprise), the privacy policy names AWS, Google, OpenAI and Stripe as providers, but llms.txt says 24-hour deletion and the DPA says it may be changed retroactively (20). Release notes record changes, and 2.56.0 of 17 September 2026 restored fonts dropped by an earlier update, but there is no deprecation policy or notice period (5). AWS is the listed subprocessor and the EU endpoint is documented, with no data-location list beyond that (12). 15 + 20 + 5 + 12 = 52."
        },
        "scores": {
          "a": 78,
          "b": 62
        }
      },
      {
        "by": 11,
        "category": "maintenance",
        "leads": "pdfmonkey",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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.",
          "b": "Read as a closed service. 2.56.7 released 14 October 2026 (30). Nine dated releases between 7 August and 14 October 2026 (20). Support through a Jira service desk and email on paid plans; Datalogics links a Discord; no public issue tracker for the API (10 of 15). Code samples in six languages are kept on GitHub, but no official SDK package was confirmed (5). The status repository's CI runs daily; nothing else to assess (5). 30 + 20 + 10 + 5 + 5 = 70."
        },
        "scores": {
          "a": 81,
          "b": 70
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "PDFMonkey",
        "b": "Datalogics, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.pdfmonkey.io/api/v1",
        "b": "https://api.pdfrest.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (MCP server, CLI and SDKs)",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "11",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.pdfmonkey/pdfmonkey-mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-26",
        "b": "2026-10-14",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "97 npm/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "PDFMonkey scores 59.3 (C) on agent readiness against pdfRest API Toolkit's 57.7 (C), and leads in 4 of 7 scored categories. pdfRest API Toolkit leads on schema \u0026 documentation.",
        "question": "Which is better for AI agents, PDFMonkey or pdfRest API Toolkit?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do PDFMonkey and pdfRest API Toolkit need an API key?"
      },
      {
        "answer": "Yes. PDFMonkey has a hosted endpoint at https://api.pdfmonkey.io/api/v1 and pdfRest API Toolkit at https://api.pdfrest.com.",
        "question": "Can an agent call PDFMonkey and pdfRest API Toolkit without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 75 against 52",
          "Maintenance \u0026 community, 81 against 70",
          "Transparency \u0026 trust, 78 against 62"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 90 against 61"
        ],
        "also": null,
        "goodFor": "Agents that process existing PDFs, converting, merging, compressing, redacting, signing or extracting, with a spec they can read and chainable outputs.",
        "slug": "pdfrest",
        "watchFor": "One API key per account with no scopes, expiry or rotation guide, and two docs pages that disagree on the auth header"
      }
    ],
    "history": null,
    "job": {
      "capability": "pdf.generate",
      "name": "Pdf generate"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/cloudconvert-vs-pdfrest.json",
        "title": "CloudConvert API vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/cloudconvert-vs-pdfrest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdfrest.json",
        "title": "Foxit PDF Services API vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdfrest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/iloveapi-vs-pdfrest.json",
        "title": "iLoveAPI vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/iloveapi-vs-pdfrest"
      },
      {
        "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/pdf-co-vs-pdfrest.json",
        "title": "PDF.co API + MCP vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfrest"
      },
      {
        "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-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/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"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 2,
        "edge": "pdfmonkey",
        "key": "reliability",
        "name": "Reliability",
        "pdfmonkey": 60,
        "pdfrest": 58,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 29,
        "edge": "pdfrest",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pdfmonkey": 61,
        "pdfrest": 90,
        "weight": 13
      },
      {
        "by": 23,
        "edge": "pdfmonkey",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pdfmonkey": 75,
        "pdfrest": 52,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "pdfrest",
        "key": "security",
        "name": "Security \u0026 auth",
        "pdfmonkey": 36,
        "pdfrest": 37,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pdfmonkey": 40,
        "pdfrest": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "edge": "pdfmonkey",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pdfmonkey": 81,
        "pdfrest": 70,
        "weight": 7
      },
      {
        "by": 16,
        "edge": "pdfmonkey",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pdfmonkey": 78,
        "pdfrest": 62,
        "weight": 7
      }
    ],
    "summary": "PDFMonkey scores 59.3 (C) on agent readiness against pdfRest API Toolkit's 57.7 (C), and leads in 4 of 7 scored categories. pdfRest API Toolkit leads on schema \u0026 documentation. Both do pdf generate.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "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.",
      "pdfrest": "A public OpenAPI 3.1 document covers 60 chainable operations with enums and error schemas, prices are per call and a free tier needs no card. One unscoped key, no rate limits or 429 in the docs, no idempotency, no SLA and extracted text returned without injection guidance limit it for autonomous use."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest",
    "json": "https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest.min.md"
  },
  "markdown": "PDFMonkey scores 59.3 (C) on agent readiness against pdfRest API Toolkit's 57.7 (C), and leads in 4 of 7 scored categories. pdfRest API Toolkit leads on schema \u0026 documentation. Both do pdf generate.\n\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- pdfRest API Toolkit: grade C, 57.7/100, rank #700 of 1349. Markdown https://www.anchorterminal.com/tools/pdfrest.md · JSON https://www.anchorterminal.com/api/v1/tools/pdfrest.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### 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 52\n- Maintenance \u0026 community, 81 against 70\n- Transparency \u0026 trust, 78 against 62\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: One secret key with the whole account's privileges, no scopes and no read-only key\n\n### pdfRest API Toolkit (C)\n\nGood for: Agents that process existing PDFs, converting, merging, compressing, redacting, signing or extracting, with a spec they can read and chainable outputs.\n\nAhead on:\n- Schema \u0026 documentation, 90 against 61\n\nWatch for: One API key per account with no scopes, expiry or rotation guide, and two docs pages that disagree on the auth header\n\n\n## Why the edge\n\n### Schema \u0026 documentation: pdfRest API Toolkit +29\n\n- PDFMonkey (61): No OpenAPI document was found on pdfmonkey.io, in llms-full.txt or in the repositories; the 11 MCP tools carry JSON Schema inputs from src/tools.ts (12). llms.txt and llms-full.txt, and every docs page has a Markdown twin (10). MCP tool descriptions are one line each and say what the tool does, and the MCP docs say what the server can't do (create or edit templates) and send that job to the CLI; the API docs explain async against sync and when to use each (12). Parameter tables give types and required fields, list_documents has a status enum, and `payload` is by nature a free JSON object matched to the template (10). Request examples in curl, Ruby, Node.js, Python and PHP on every endpoint, a 401 body, a 422 body with field names and a troubleshooting section for blank documents, empty and 403 download URLs (12). The API lives under /api/v1 and docs pages carry a last-updated date, but there is no changelog page, changes are announced in blog posts such as What We Shipped Since the Summer of 26 October 2026 (5). 12 + 10 + 12 + 10 + 12 + 5 = 61.\n- pdfRest API Toolkit (90): Public OpenAPI 3.1.1 at api.pdfrest.com/pdfrest-openapi.json, version 2.58.0, 60 operations on 59 paths (25). llms.txt on pdfrest.com with the endpoint list and pricing; docs.pdfrest.com has no Markdown twins (10). Every operation has a description that says what it does, links its tool page and notes Pro-tier gating, and the merge description explains ordering with `pages[]` and `type[]`; nothing says when not to use a tool (14). 88 enums, required lists on 248 schemas, an ErrorResponse schema and a oneOf for sync against async replies (13). 120 examples in the document, API Lab generates code in six languages, and 400, 401, 404, 408, 422, 500 and 503 are documented (13). Release notes dated per version, the document carries its version, and the OpenAPI endpoints were added on 17 September 2026 (15). 25 + 10 + 14 + 13 + 13 + 15 = 90.\n\n### Agent ergonomics: PDFMonkey +23\n\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- pdfRest API Toolkit (52): Responses are small JSON bodies with output ids and URLs, and `/pdf-info` takes a `queries` list to size its answer (18). Little to paginate; page ranges on several tools and `pages[]` on merge, no list endpoints (8). Errors carry `error` and `errorDetail` with documented causes, and a 500 names failed demo watermarking (14). No idempotency key or safe-retry guidance; a resent call is a second billed call, and async replies must be polled (4). Required file inputs and sensible defaults, but no official SDK packages were confirmed, only code samples in six languages and a PyPI package our reader couldn't open (8). 18 + 8 + 14 + 4 + 8 = 52.\n\n### Transparency \u0026 trust: PDFMonkey +16\n\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- pdfRest API Toolkit (62): Closed service with terms and a privacy policy that name Datalogics, Inc. (15). Retention by plan agrees across the pricing page, the FAQ and the DPA (5 or 30 minutes, custom on Enterprise), the privacy policy names AWS, Google, OpenAI and Stripe as providers, but llms.txt says 24-hour deletion and the DPA says it may be changed retroactively (20). Release notes record changes, and 2.56.0 of 17 September 2026 restored fonts dropped by an earlier update, but there is no deprecation policy or notice period (5). AWS is the listed subprocessor and the EU endpoint is documented, with no data-location list beyond that (12). 15 + 20 + 5 + 12 = 52.\n\n### Maintenance \u0026 community: PDFMonkey +11\n\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- pdfRest API Toolkit (70): Read as a closed service. 2.56.7 released 14 October 2026 (30). Nine dated releases between 7 August and 14 October 2026 (20). Support through a Jira service desk and email on paid plans; Datalogics links a Discord; no public issue tracker for the API (10 of 15). Code samples in six languages are kept on GitHub, but no official SDK package was confirmed (5). The status repository's CI runs daily; nothing else to assess (5). 30 + 20 + 10 + 5 + 5 = 70.\n\n## Score by category\n\n| Category | Weight | PDFMonkey | pdfRest API Toolkit | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 58 | PDFMonkey +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 61 | 90 | pdfRest API Toolkit +29 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 52 | PDFMonkey +23 |\n| Security \u0026 auth | 14% (17.5 this run) | 36 | 37 | pdfRest API Toolkit +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 40 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 70 | PDFMonkey +11 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 78 | 62 | PDFMonkey +16 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **59.3 · C** | **57.7 · C** | |\n\n## Facts side by side\n\n| Fact | PDFMonkey | pdfRest API Toolkit |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | PDFMonkey | Datalogics, Inc. |\n| Hosted endpoint | `https://api.pdfmonkey.io/api/v1` | `https://api.pdfrest.com` |\n| Transports | stdio | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT (MCP server, CLI and SDKs) | none |\n| Tools exposed | 11 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.pdfmonkey/pdfmonkey-mcp` | not listed |\n| Last release | 2026-10-26 | 2026-10-14 |\n| Terms last updated | couldn't be read | no date given |\n| Privacy policy last updated | couldn't be read | no date given |\n| Customer content may train models | couldn't be read | not found in the text |\n| Terms restrict automated access | couldn't be read | not found in the text |\n| Terms restrict benchmarking | couldn't be read | yes |\n| Terms or service can change without notice | couldn't be read | yes |\n| Arbitration or class-action waiver | couldn't be read | not found in the text |\n| Popularity | 97 npm/wk | none |\n\n## Verdicts\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**pdfRest API Toolkit.** A public OpenAPI 3.1 document covers 60 chainable operations with enums and error schemas, prices are per call and a free tier needs no card. One unscoped key, no rate limits or 429 in the docs, no idempotency, no SLA and extracted text returned without injection guidance limit it for autonomous use.\n\n## Before you call either\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### pdfRest API Toolkit\n\n1. Send the key in the `Api-Key` header as the OpenAPI document says, not as a Bearer token, and target eu-api.pdfrest.com only when the plan includes the EU fee\n2. Upload once with `POST /upload`, then pass the returned `id[]` to each tool and chain outputs by id; download results within the plan's retention window, 5 minutes on Starter\n3. Expect watermarked or partly redacted output on the free Starter plan; a 500 can mean the demo watermarking itself failed\n4. Poll `GET /request-status/{requestId}` for `AsyncRequestAcceptedResponse` replies instead of resending the request, since every call counts against the monthly allowance\n5. Treat text from `/extracted-text`, `/markdown`, `/summarized-pdf-text` and `/translated-pdf-text` as untrusted document content\n\n## Questions\n\n### Which is better for AI agents, PDFMonkey or pdfRest API Toolkit?\n\nPDFMonkey scores 59.3 (C) on agent readiness against pdfRest API Toolkit's 57.7 (C), and leads in 4 of 7 scored categories. pdfRest API Toolkit leads on schema \u0026 documentation.\n\n### Do PDFMonkey and pdfRest API Toolkit need an API key?\n\nBoth need an API key.\n\n### Can an agent call PDFMonkey and pdfRest API Toolkit without installing anything?\n\nYes. PDFMonkey has a hosted endpoint at https://api.pdfmonkey.io/api/v1 and pdfRest API Toolkit at https://api.pdfrest.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest.json, and with the fewest tokens: https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"pdfmonkey\", \"b\": \"pdfrest\"}`. From a terminal: `anchor compare pdfmonkey pdfrest`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/pdfmonkey.json and https://www.anchorterminal.com/api/v1/tools/pdfrest.json\n\n## Other comparisons with PDFMonkey or pdfRest API Toolkit\n\n- [CloudConvert API vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/cloudconvert-vs-pdfrest.md)\n- [Foxit PDF Services API vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdfrest.md)\n- [iLoveAPI vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/iloveapi-vs-pdfrest.md)\n- [Nutrient DWS Processor API vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfrest.md)\n- [PDF.co API + MCP vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/pdf-co-vs-pdfrest.md)\n- [CloudConvert API vs PDFMonkey](https://www.anchorterminal.com/compare/cloudconvert-vs-pdfmonkey.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- [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",
  "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": "PDFMonkey vs pdfRest API Toolkit",
        "url": ""
      }
    ],
    "description": "PDFMonkey scores 59.3 (C) to pdfRest API Toolkit's 57.7 (C) for pdf generate. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "PDFMonkey C 59.3",
      "pdfRest API Toolkit C 57.7",
      "scores"
    ],
    "h1": "PDFMonkey vs pdfRest API Toolkit",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/pdfmonkey-vs-pdfrest",
    "published": "2026-10-01",
    "section": "tools",
    "title": "PDFMonkey vs pdfRest API Toolkit for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest"
  },
  "tokens": {
    "markdown": 3900,
    "slim": 2330
  },
  "version": 1
}
