{
  "data": {
    "a": {
      "slug": "pdf-co",
      "name": "PDF.co API + MCP",
      "vendor": "PDF.co (Artifex Software)",
      "vendorUrl": "https://pdf.co",
      "kind": "http-api",
      "category": "pdf-tools",
      "summary": "Credit-billed REST API for merging, splitting, converting, filling and securing PDFs, plus PDF to text, CSV, JSON and Excel, template parsing and an AI invoice parser.",
      "url": "https://www.anchorterminal.com/tools/pdf-co",
      "markdownUrl": "https://www.anchorterminal.com/tools/pdf-co.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pdf-co.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pdf-co.json",
      "dns": "pdf-co.grade.anchorterminal.com",
      "repo": "https://github.com/pdfdotco/pdfco-mcp",
      "license": "MIT (MCP server)",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.pdf.co/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "pdfco-mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "`x-api-key` header. The MCP server reads the key from X_API_KEY.",
      "pricing": "paid",
      "pricingNotes": "Credit subscriptions. Basic $9.99 a month ($8.99 billed yearly) for 16,500 credits, Personal $24.99 ($22.49) for 37,000, Business 1 $49.99 ($44.99) for 80,500, Business 2 $99.99 ($89.99) for 159,850, Business 3 $300 ($270) for 483,000, Enterprise above 500,000. Monthly prices worked out from the yearly totals. Credits per page or per call vary by endpoint, e.g. merge 2 a page, PDF to text 21, Document Parser 42, AI invoice parser 100. A free trial exists but its size isn't on the page (https://pdf.co/pricing).",
      "priceSummary": "$9.99 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 in docs, MCP README or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 38,
      "popularity": {
        "githubStars": 9,
        "npmWeekly": null,
        "pypiWeekly": 20,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developer.pdf.co",
      "llmsTxt": "https://developer.pdf.co/llms.txt",
      "openapi": "https://developer.pdf.co/openapi.json",
      "capabilities": [
        "pdf.convert",
        "pdf.merge",
        "pdf.forms",
        "pdf.generate",
        "pdf.extract",
        "docs.ocr",
        "docs.tables",
        "docs.extract"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "async-jobs",
        "webhooks",
        "python"
      ],
      "lastRelease": "2026-07-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 38.1,
        "grade": "E",
        "agentReady": false,
        "rank": 1234,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 34,
          "payments": 20,
          "reliability": 20,
          "schema": 74,
          "security": 23,
          "transparency": 53
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs. No status page. status.pdf.co redirects to betterstack.com/uptime.",
        "bestFor": "An agent that needs many PDF operations from one vendor and can handle files by URL.",
        "strengths": [
          "OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs",
          "Credit cost of each endpoint published per page or per call, from 2 for merge to 100 for the AI invoice parser",
          "Manipulation and extraction in one API, with 38 MCP tools covering both",
          "Output links expire after one hour by default and can be cut to one minute"
        ],
        "weaknesses": [
          "No status page. status.pdf.co redirects to betterstack.com/uptime",
          "Rate limits moved to per-minute windows in June 2026 but the numbers aren't published, and 429 carries no documented Retry-After",
          "No SLA, no security.txt, and terms that allow changes without notice",
          "MCP server has no tool annotations, no read-only mode and no tests, and `upload_file` reads any absolute path",
          "Trial size and card requirement aren't stated anywhere we looked"
        ],
        "agentNotes": [
          "Upload local files with `upload_file` or the presigned upload first, then pass the returned URL",
          "Read the `content` field, not `status`. The MCP server says `working` even when the API returned an error",
          "Call `wait_job_completion` after each job. Every MCP call runs async and returns a job id",
          "Download results within the hour. Output links expire after 60 minutes by default",
          "Keep the key in `X_API_KEY` and leave the `api_key` argument empty"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 38.1
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 34,
          "payments": 20,
          "reliability": 20,
          "schema": 74,
          "security": 23,
          "transparency": 42
        },
        "provenanceScore": 63,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-01",
            "maintenance": "2026-10-01",
            "payments": "2026-10-01",
            "reliability": "2026-10-01",
            "schema": "2026-10-01",
            "security": "2026-10-01",
            "transparency": "2026-10-01"
          },
          "last": "2026-10-01",
          "lastMoved": "2026-10-27",
          "oldest": "2026-10-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.pdf.co/v1/pdf/convert/to/text-simple \\\n  -H \"x-api-key: $PDFCO_API_KEY\" -H \"content-type: application/json\" \\\n  -d '{\"url\":\"https://pdfco-test-files.s3.us-west-2.amazonaws.com/pdf-to-csv/sample.pdf\",\"inline\":true}'",
        "claudeCode": "claude mcp add pdfco -e X_API_KEY=$PDFCO_API_KEY -- uvx pdfco-mcp",
        "config": {
          "mcpServers": {
            "pdfco": {
              "args": [
                "pdfco-mcp"
              ],
              "command": "uvx",
              "env": {
                "X_API_KEY": "${PDFCO_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/pdf.convert",
        "tool": "https://letme.dev/pdf-co"
      },
      "alsoIn": [
        "document-extraction"
      ],
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Basic",
          "unit": "month",
          "usd": 9.99,
          "note": "16,500 credits. $8.99 a month billed yearly"
        },
        {
          "item": "Personal",
          "unit": "month",
          "usd": 24.99,
          "note": "37,000 credits. $22.49 a month billed yearly"
        },
        {
          "item": "Business 1",
          "unit": "month",
          "usd": 49.99,
          "note": "80,500 credits. $44.99 a month billed yearly"
        },
        {
          "item": "Business 3",
          "unit": "month",
          "usd": 300,
          "note": "483,000 credits. $270 a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Artifex Software, Inc.",
        "domain": "pdf.co",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://pdf.co/resources/legal/terms",
        "privacy": "https://pdf.co/resources/legal/privacy",
        "statusPage": "",
        "changelog": "https://developer.pdf.co/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "RDAP has no service for .co, so the registration date is unread",
          "status.pdf.co redirects to betterstack.com/uptime rather than a status page"
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pdf-co.json",
      "live": {
        "slug": "pdf-co",
        "probe": {
          "target": "https://api.pdf.co/v1",
          "method": "get",
          "lastAt": "2026-11-04T20:47:06.889174469Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 475,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 460,
          "p95ms24h": 574,
          "samples24h": 246,
          "samples30d": 8081,
          "days": [
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 214,
              "ok": 214
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "pdfdotco/pdfco-mcp",
            "version": "0.0.11",
            "released": "2026-10-22",
            "seenAt": "2026-11-04T20:45:05.598166226Z"
          },
          {
            "registry": "pypi",
            "name": "pdfco-mcp",
            "version": "0.0.11",
            "released": "2026-10-22",
            "seenAt": "2026-11-04T20:45:05.231508961Z"
          }
        ],
        "githubStars": 9,
        "pypiWeekly": 60,
        "securityTxt": {
          "url": "https://pdf.co/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:11.43818148Z"
        },
        "llmsTxt": {
          "url": "https://developer.pdf.co/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-04T15:23:54.349300002Z"
        },
        "domain": {
          "domain": "pdf.co",
          "checkedAt": "2026-11-01T14:16:18.464894721Z"
        },
        "pages": [
          {
            "url": "https://developer.pdf.co/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-04T08:18:22.667509978Z",
            "changedAt": "2026-11-04T08:18:22.667509978Z",
            "fingerprint": "861f2ce6d833"
          },
          {
            "url": "https://pdf.co/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-04T08:29:30.61071082Z",
            "changedAt": "2026-10-21T00:31:36.004400882Z",
            "fingerprint": "21789544a16b"
          },
          {
            "url": "https://pdf.co/resources/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-04T08:29:32.772650613Z",
            "changedAt": "2026-10-21T00:31:38.267568996Z",
            "fingerprint": "135207656672"
          },
          {
            "url": "https://pdf.co/resources/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-04T08:29:34.816538225Z",
            "changedAt": "2026-10-21T00:31:40.235648787Z",
            "fingerprint": "6af634bd15fd"
          }
        ],
        "github": {
          "repo": "pdfdotco/pdfco-mcp",
          "checkedAt": "2026-11-02T09:15:22.868377701Z",
          "stars": 9,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-23T05:40:34Z",
          "openIssues": 0,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 8,
          "ci": {
            "branch": "main",
            "runs": 8,
            "success": 8,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-23T05:40:49Z"
          }
        },
        "updatedAt": "2026-11-04T20:47:06.889174469Z"
      }
    },
    "answer": "PDFMonkey scores 59.3 (C) on agent readiness against PDF.co API + MCP's 38.1 (E), and leads in 6 of 7 scored categories. PDF.co API + MCP leads on schema \u0026 documentation.",
    "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": 47,
        "category": "maintenance",
        "leads": "pdfmonkey",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "MCP server 0.0.9 on 2026-07-28, 65 days before this check (20). Two releases in the last 90 days, 0.0.8 on 2026-07-08 and 0.0.9, and both only repoint documentation links. The API changelog's last entry is June 2026, outside the window (0). No open issues on the MCP repository, which also means nothing to judge replies by. Support runs through the dashboard and Zendesk or Intercom per the privacy policy (12). Not in the official MCP registry. The only `pdfco` entry there is a third-party wrapper from mcparmory (0). The only CI workflow publishes releases. No tests, and the lock file dates from June 2025 (2).",
          "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": 34,
          "b": 81
        }
      },
      {
        "by": 40,
        "category": "reliability",
        "leads": "pdfmonkey",
        "name": "Reliability",
        "reasons": {
          "a": "status.pdf.co answers 302 to betterstack.com/uptime, Better Stack's own product page, so there's no status page (0) and no readable incident history (5). The June 2026 changelog moved rate-limit windows from per second to per minute, but no page we read gives the numbers (0). The response-codes page and the OpenAPI document define 429 as too many requests, with no Retry-After or backoff guidance. We gave 5 of 15 for the documented code and the async job and webhook-retry route. No SLA in the terms of 24 March 2026, which reserve the right to change or stop the service without notice (0). GA (10).",
          "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": 20,
          "b": 60
        }
      },
      {
        "by": 26,
        "category": "ergonomics",
        "leads": "pdfmonkey",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "38 MCP tools from about 78 KB of source with no toolset switch, which is the more-than-30 band (5). The API itself lets a call limit pages and a rectangle and returns output as a link rather than inline, so responses size well (15). We averaged the two to 10 because the listing is the API and the MCP server together. Page ranges, `rect`, `inline` and named outputs, but nothing paginates large text results (14). Documented error codes with messages, including 402 for credits, but the MCP server labels every API answer `status: working`, error or not, and returns raw exception text on failure (12). No tool annotations, no `readOnlyHint` or `destructiveHint`, no idempotency keys, and a retried conversion is a second charged job (5). Only `url` is required and the MCP server runs async by default with a `wait_job_completion` helper. We didn't confirm official SDK packages beyond code samples (8).",
          "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": 49,
          "b": 75
        }
      },
      {
        "by": 25,
        "category": "transparency",
        "leads": "pdfmonkey",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The MCP server is MIT. The API is closed with dated terms, so between the two bands (20). The privacy policy (25 August 2026) names Artifex Software, Inc. and says processing happens in the US, but states no document retention. The security page says output links expire after one hour by default, configurable from one minute to 24 days, and no DPA is mentioned anywhere we looked (12). No deprecation policy, and the terms allow changes without notice (0). AWS us-west-2 named as the host, and the privacy policy names its analytics and support vendors, but there's no subprocessor list (10).",
          "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": 53,
          "b": 78
        }
      },
      {
        "by": 20,
        "category": "payments",
        "leads": "pdfmonkey",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Plan prices are public and the credit cost of each endpoint is published per page or per call, so per-unit cost is readable without a login (20). A sign-up trial exists per the 30 September check, but neither the pricing page nor the terms state its size or whether a card is needed, so we scored it absent (0). A person signs up in a browser to get a key (0).",
          "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": 20,
          "b": 40
        }
      },
      {
        "by": 13,
        "category": "schema",
        "leads": "pdf-co",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.0.1 at developer.pdf.co/openapi.json, header-only `x-api-key` scheme, and the 38 MCP tools carry typed JSON Schema from Pydantic (25). llms.txt and Markdown twins of every docs page (10). Tool docstrings state purpose and link the endpoint reference, and the URL field tells the model to use `upload_file` for local files, but none says when not to use a tool (10). No enums anywhere, since the server dropped `Literal` types for Gemini compatibility in May 2025. Page ranges, paper sizes and `line_grouping` are free strings, and the annotation and field arrays are `List[Any]` (6). The OpenAPI document describes errors 400, 401, 402, 403, 429 and 441 to 454 with a structured body, and every endpoint has samples (13). A monthly API changelog, but its last entry is June 2026, and the MCP server has tags and no changelog (10).",
          "b": "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."
        },
        "scores": {
          "a": 74,
          "b": 61
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "PDF.co (Artifex Software)",
        "b": "PDFMonkey",
        "name": "Vendor"
      },
      {
        "a": "https://api.pdf.co/v1",
        "b": "https://api.pdfmonkey.io/api/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (MCP server)",
        "b": "MIT (MCP server, CLI and SDKs)",
        "name": "Licence"
      },
      {
        "a": "38",
        "b": "11",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.pdfmonkey/pdfmonkey-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-07-28",
        "b": "2026-10-26",
        "name": "Last release"
      },
      {
        "a": "2026-03-24",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "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": "not found in the text",
        "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": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "9 stars, 20 PyPI/wk",
        "b": "97 npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "PDFMonkey scores 59.3 (C) on agent readiness against PDF.co API + MCP's 38.1 (E), and leads in 6 of 7 scored categories. PDF.co API + MCP leads on schema \u0026 documentation.",
        "question": "Which is better for AI agents, PDF.co API + MCP or PDFMonkey?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do PDF.co API + MCP and PDFMonkey need an API key?"
      },
      {
        "answer": "Yes. PDF.co API + MCP has a hosted endpoint at https://api.pdf.co/v1 and PDFMonkey at https://api.pdfmonkey.io/api/v1.",
        "question": "Can an agent call PDF.co API + MCP and PDFMonkey without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 74 against 61"
        ],
        "also": null,
        "goodFor": "An agent that needs many PDF operations from one vendor and can handle files by URL.",
        "slug": "pdf-co",
        "watchFor": "No status page. status.pdf.co redirects to betterstack.com/uptime"
      },
      {
        "aheadOn": [
          "Reliability, 60 against 20",
          "Agent ergonomics, 75 against 49",
          "Security \u0026 auth, 36 against 23",
          "Payments \u0026 pricing, 40 against 20",
          "Maintenance \u0026 community, 81 against 34",
          "Transparency \u0026 trust, 78 against 53"
        ],
        "also": [
          "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": {
      "pdf-co": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 37.9,
          "fromGrade": "F",
          "to": 38.1,
          "toGrade": "E"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.3,
          "from": 38.2,
          "fromGrade": "E",
          "to": 37.9,
          "toGrade": "F"
        }
      ],
      "pdfmonkey": null
    },
    "job": {
      "capability": "pdf.generate",
      "name": "Pdf generate"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/cloudconvert-vs-pdf-co.json",
        "title": "CloudConvert API vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudconvert-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdf-co.json",
        "title": "Foxit PDF Services API vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/iloveapi-vs-pdf-co.json",
        "title": "iLoveAPI vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/iloveapi-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.json",
        "title": "Nutrient DWS Processor API vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/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-pdf-co.json",
        "title": "DocRaptor vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey.json",
        "title": "DocRaptor vs PDFMonkey",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey"
      },
      {
        "json": "https://www.anchorterminal.com/compare/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/pdfmonkey-vs-pdfrest.json",
        "title": "PDFMonkey vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 40,
        "edge": "pdfmonkey",
        "key": "reliability",
        "name": "Reliability",
        "pdf-co": 20,
        "pdfmonkey": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "pdf-co",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pdf-co": 74,
        "pdfmonkey": 61,
        "weight": 13
      },
      {
        "by": 26,
        "edge": "pdfmonkey",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pdf-co": 49,
        "pdfmonkey": 75,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "pdfmonkey",
        "key": "security",
        "name": "Security \u0026 auth",
        "pdf-co": 23,
        "pdfmonkey": 36,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "pdfmonkey",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pdf-co": 20,
        "pdfmonkey": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 47,
        "edge": "pdfmonkey",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pdf-co": 34,
        "pdfmonkey": 81,
        "weight": 7
      },
      {
        "by": 25,
        "edge": "pdfmonkey",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pdf-co": 53,
        "pdfmonkey": 78,
        "weight": 7
      }
    ],
    "summary": "PDFMonkey scores 59.3 (C) on agent readiness against PDF.co API + MCP's 38.1 (E), and leads in 6 of 7 scored categories. PDF.co API + MCP leads on schema \u0026 documentation. Both do pdf generate.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "pdf-co": "OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs. No status page. status.pdf.co redirects to betterstack.com/uptime.",
      "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/pdf-co-vs-pdfmonkey",
    "json": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey.min.md"
  },
  "markdown": "PDFMonkey scores 59.3 (C) on agent readiness against PDF.co API + MCP's 38.1 (E), and leads in 6 of 7 scored categories. PDF.co API + MCP leads on schema \u0026 documentation. Both do pdf generate.\n\n- PDF.co API + MCP: grade E, 38.1/100, rank #1234 of 1349. Markdown https://www.anchorterminal.com/tools/pdf-co.md · JSON https://www.anchorterminal.com/api/v1/tools/pdf-co.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- Best document parsing, OCR and extraction APIs for AI agents: https://www.anchorterminal.com/best/document-extraction/index.md\n- All 148 documents comparisons: https://www.anchorterminal.com/compare/document-extraction/index.md\n\n## Which one, for what\n\n### PDF.co API + MCP (E)\n\nGood for: An agent that needs many PDF operations from one vendor and can handle files by URL.\n\nAhead on:\n- Schema \u0026 documentation, 74 against 61\n\nWatch for: No status page. status.pdf.co redirects to betterstack.com/uptime\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- Reliability, 60 against 20\n- Agent ergonomics, 75 against 49\n- Security \u0026 auth, 36 against 23\n- Payments \u0026 pricing, 40 against 20\n- Maintenance \u0026 community, 81 against 34\n- Transparency \u0026 trust, 78 against 53\n\nAlso in its favour:\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 +47\n\n- PDF.co API + MCP (34): MCP server 0.0.9 on 2026-07-28, 65 days before this check (20). Two releases in the last 90 days, 0.0.8 on 2026-07-08 and 0.0.9, and both only repoint documentation links. The API changelog's last entry is June 2026, outside the window (0). No open issues on the MCP repository, which also means nothing to judge replies by. Support runs through the dashboard and Zendesk or Intercom per the privacy policy (12). Not in the official MCP registry. The only `pdfco` entry there is a third-party wrapper from mcparmory (0). The only CI workflow publishes releases. No tests, and the lock file dates from June 2025 (2).\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### Reliability: PDFMonkey +40\n\n- PDF.co API + MCP (20): status.pdf.co answers 302 to betterstack.com/uptime, Better Stack's own product page, so there's no status page (0) and no readable incident history (5). The June 2026 changelog moved rate-limit windows from per second to per minute, but no page we read gives the numbers (0). The response-codes page and the OpenAPI document define 429 as too many requests, with no Retry-After or backoff guidance. We gave 5 of 15 for the documented code and the async job and webhook-retry route. No SLA in the terms of 24 March 2026, which reserve the right to change or stop the service without notice (0). GA (10).\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### Agent ergonomics: PDFMonkey +26\n\n- PDF.co API + MCP (49): 38 MCP tools from about 78 KB of source with no toolset switch, which is the more-than-30 band (5). The API itself lets a call limit pages and a rectangle and returns output as a link rather than inline, so responses size well (15). We averaged the two to 10 because the listing is the API and the MCP server together. Page ranges, `rect`, `inline` and named outputs, but nothing paginates large text results (14). Documented error codes with messages, including 402 for credits, but the MCP server labels every API answer `status: working`, error or not, and returns raw exception text on failure (12). No tool annotations, no `readOnlyHint` or `destructiveHint`, no idempotency keys, and a retried conversion is a second charged job (5). Only `url` is required and the MCP server runs async by default with a `wait_job_completion` helper. We didn't confirm official SDK packages beyond code samples (8).\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 +25\n\n- PDF.co API + MCP (53): The MCP server is MIT. The API is closed with dated terms, so between the two bands (20). The privacy policy (25 August 2026) names Artifex Software, Inc. and says processing happens in the US, but states no document retention. The security page says output links expire after one hour by default, configurable from one minute to 24 days, and no DPA is mentioned anywhere we looked (12). No deprecation policy, and the terms allow changes without notice (0). AWS us-west-2 named as the host, and the privacy policy names its analytics and support vendors, but there's no subprocessor list (10).\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### Payments \u0026 pricing: PDFMonkey +20\n\n- PDF.co API + MCP (20): No x402, MPP or L402 (0). Plan prices are public and the credit cost of each endpoint is published per page or per call, so per-unit cost is readable without a login (20). A sign-up trial exists per the 30 September check, but neither the pricing page nor the terms state its size or whether a card is needed, so we scored it absent (0). A person signs up in a browser to get a key (0).\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### Schema \u0026 documentation: PDF.co API + MCP +13\n\n- PDF.co API + MCP (74): OpenAPI 3.0.1 at developer.pdf.co/openapi.json, header-only `x-api-key` scheme, and the 38 MCP tools carry typed JSON Schema from Pydantic (25). llms.txt and Markdown twins of every docs page (10). Tool docstrings state purpose and link the endpoint reference, and the URL field tells the model to use `upload_file` for local files, but none says when not to use a tool (10). No enums anywhere, since the server dropped `Literal` types for Gemini compatibility in May 2025. Page ranges, paper sizes and `line_grouping` are free strings, and the annotation and field arrays are `List[Any]` (6). The OpenAPI document describes errors 400, 401, 402, 403, 429 and 441 to 454 with a structured body, and every endpoint has samples (13). A monthly API changelog, but its last entry is June 2026, and the MCP server has tags and no changelog (10).\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\n## Score by category\n\n| Category | Weight | PDF.co API + MCP | PDFMonkey | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 20 | 60 | PDFMonkey +40 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 74 | 61 | PDF.co API + MCP +13 |\n| Agent ergonomics | 13% (16.2 this run) | 49 | 75 | PDFMonkey +26 |\n| Security \u0026 auth | 14% (17.5 this run) | 23 | 36 | PDFMonkey +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 40 | PDFMonkey +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 34 | 81 | PDFMonkey +47 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 53 | 78 | PDFMonkey +25 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **38.1 · E** | **59.3 · C** | |\n\n## Facts side by side\n\n| Fact | PDF.co API + MCP | PDFMonkey |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | PDF.co (Artifex Software) | PDFMonkey |\n| Hosted endpoint | `https://api.pdf.co/v1` | `https://api.pdfmonkey.io/api/v1` |\n| Transports | HTTP, stdio | stdio |\n| Auth | API key | API key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | MIT (MCP server) | MIT (MCP server, CLI and SDKs) |\n| Tools exposed | 38 | 11 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.pdfmonkey/pdfmonkey-mcp` |\n| Last release | 2026-07-28 | 2026-10-26 |\n| Terms last updated | 2026-03-24 | couldn't be read |\n| Privacy policy last updated | no date given | couldn't be read |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | not found in the text | 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 | yes | couldn't be read |\n| Popularity | 9 stars, 20 PyPI/wk | 97 npm/wk |\n| Agent reviews | 3/5 (2) | none |\n\n## How the scores have moved\n\n### PDF.co API + MCP\n\n- +0.2 on 27 October 2026 (F to E): checklist\n- -0.3 on 8 October 2026 (E to F): checklist\n\n### PDFMonkey\n\nNo score change since it was listed.\n\n## Verdicts\n\n**PDF.co API + MCP.** OpenAPI 3.0.1 document with structured error bodies for 400 to 454, plus llms.txt and Markdown docs. No status page. status.pdf.co redirects to betterstack.com/uptime.\n\n**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### PDF.co API + MCP\n\n1. Upload local files with `upload_file` or the presigned upload first, then pass the returned URL\n2. Read the `content` field, not `status`. The MCP server says `working` even when the API returned an error\n3. Call `wait_job_completion` after each job. Every MCP call runs async and returns a job id\n4. Download results within the hour. Output links expire after 60 minutes by default\n5. Keep the key in `X_API_KEY` and leave the `api_key` argument empty\n\n### 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, PDF.co API + MCP or PDFMonkey?\n\nPDFMonkey scores 59.3 (C) on agent readiness against PDF.co API + MCP's 38.1 (E), and leads in 6 of 7 scored categories. PDF.co API + MCP leads on schema \u0026 documentation.\n\n### Do PDF.co API + MCP and PDFMonkey need an API key?\n\nBoth need an API key.\n\n### Can an agent call PDF.co API + MCP and PDFMonkey without installing anything?\n\nYes. PDF.co API + MCP has a hosted endpoint at https://api.pdf.co/v1 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/pdf-co-vs-pdfmonkey.json, and with the fewest tokens: https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"pdf-co\", \"b\": \"pdfmonkey\"}`. From a terminal: `anchor compare pdf-co pdfmonkey`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/pdf-co.json and https://www.anchorterminal.com/api/v1/tools/pdfmonkey.json\n\n## Other comparisons with PDF.co API + MCP or PDFMonkey\n\n- [CloudConvert API vs PDF.co API + MCP](https://www.anchorterminal.com/compare/cloudconvert-vs-pdf-co.md)\n- [Foxit PDF Services API vs PDF.co API + MCP](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdf-co.md)\n- [iLoveAPI vs PDF.co API + MCP](https://www.anchorterminal.com/compare/iloveapi-vs-pdf-co.md)\n- [Nutrient DWS Processor API vs PDF.co API + MCP](https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.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 PDF.co API + MCP](https://www.anchorterminal.com/compare/docraptor-vs-pdf-co.md)\n- [DocRaptor vs PDFMonkey](https://www.anchorterminal.com/compare/docraptor-vs-pdfmonkey.md)\n- [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- [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": "PDF.co API + MCP vs PDFMonkey",
        "url": ""
      }
    ],
    "description": "PDFMonkey scores 59.3 (C) to PDF.co's 38.1 (E) for pdf generate. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "PDF.co API + MCP E 38.1",
      "PDFMonkey C 59.3",
      "scores"
    ],
    "h1": "PDF.co API + MCP vs PDFMonkey",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/pdf-co-vs-pdfmonkey",
    "published": "2026-10-01",
    "section": "tools",
    "title": "PDF.co vs PDFMonkey for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey"
  },
  "tokens": {
    "markdown": 4600,
    "slim": 3080
  },
  "version": 1
}
