{
  "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": "pdfRest API Toolkit scores 57.7 (C) on agent readiness against PDF.co API + MCP's 38.1 (E), and leads in every scored category.",
    "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": 38,
        "category": "reliability",
        "leads": "pdfrest",
        "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.pdfrest.com is an Upptime page with a single check on the /up endpoint, backed by a public repository with daily history; one component and no incident write-ups (15). The repository shows 100 per cent uptime over 7 and 30 days, 99.95 per cent over a year and no down entries in the last 200 daily history commits (30). No request rate limit is documented and the OpenAPI document defines no 429 (0). A 408 timeout is documented and `/request-status` polls async jobs, but there is no 429 handling, backoff guidance or idempotency key (3). No SLA; the terms give the service as is (0). GA (10). 15 + 30 + 0 + 3 + 0 + 10 = 58."
        },
        "scores": {
          "a": 20,
          "b": 58
        }
      },
      {
        "by": 36,
        "category": "maintenance",
        "leads": "pdfrest",
        "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. 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": 34,
          "b": 70
        }
      },
      {
        "by": 20,
        "category": "payments",
        "leads": "pdfrest",
        "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, per-call overage, EU and Pro Tools per-call fees and file-size overage are on the public pricing page and in llms.txt (20). Starter is free with 100 calls a month and no card (20). A person signs up in a browser and the key is shown in the account (0). 0 + 20 + 20 + 0 = 40."
        },
        "scores": {
          "a": 20,
          "b": 40
        }
      },
      {
        "by": 16,
        "category": "schema",
        "leads": "pdfrest",
        "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": "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": 74,
          "b": 90
        }
      },
      {
        "by": 14,
        "category": "security",
        "leads": "pdfrest",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "One API key per account in the `x-api-key` header, header only per the OpenAPI document. We found no scopes, no multiple keys and no rotation guide (10). Every MCP tool also takes `api_key` as an argument, which invites the key into the model's context. No read-only mode, no annotations, and `upload_file` reads any absolute local path and uploads it to PDF.co. The SSE and HTTP transports bind 0.0.0.0 with no authentication (0). PDF text, tables and invoice fields come back as untrusted content with no injection guidance (0). Each response reports credits used and remaining, which is a per-call cost trail. We found no audit log (5). The security page claims SOC 2 Type II and cites AWS's ISO 27001, PCI and FISMA, which are the data centre's. security.txt is a 404 and we found no disclosure policy or bounty (8).",
          "b": "One `Api-Key` header per account, revocable per the terms, with no scopes, expiry or rotation guide, and the polling guide shows a Bearer header instead (14). No read-only key; `/delete` removes uploaded files and there is no confirmation step, though demo output is watermarked (4). Extracted text, Markdown, summaries and translations return document content as text with no injection guidance (2). The container edition logs audit events; nothing documents per-call visibility for cloud accounts beyond usage counts (5). SOC 2 Type 2 through Datalogics' trust centre, HIPAA BAAs and a DPA, but no security.txt, disclosure policy or bug bounty found (12). 14 + 4 + 2 + 5 + 12 = 37."
        },
        "scores": {
          "a": 23,
          "b": 37
        }
      },
      {
        "by": 9,
        "category": "transparency",
        "leads": "pdfrest",
        "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 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": 53,
          "b": 62
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "PDF.co (Artifex Software)",
        "b": "Datalogics, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.pdf.co/v1",
        "b": "https://api.pdfrest.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP",
        "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": "none",
        "name": "Licence"
      },
      {
        "a": "38",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-07-28",
        "b": "2026-10-14",
        "name": "Last release"
      },
      {
        "a": "2026-03-24",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "9 stars, 20 PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "pdfRest API Toolkit scores 57.7 (C) on agent readiness against PDF.co API + MCP's 38.1 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, PDF.co API + MCP or pdfRest API Toolkit?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do PDF.co API + MCP and pdfRest API Toolkit need an API key?"
      },
      {
        "answer": "Yes. PDF.co API + MCP has a hosted endpoint at https://api.pdf.co/v1 and pdfRest API Toolkit at https://api.pdfrest.com.",
        "question": "Can an agent call PDF.co API + MCP and pdfRest API Toolkit without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "Runs on your own machine"
        ],
        "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, 58 against 20",
          "Schema \u0026 documentation, 90 against 74",
          "Security \u0026 auth, 37 against 23",
          "Payments \u0026 pricing, 40 against 20",
          "Maintenance \u0026 community, 70 against 34",
          "Transparency \u0026 trust, 62 against 53"
        ],
        "also": [
          "Free to start without a card"
        ],
        "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": {
      "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"
        }
      ],
      "pdfrest": null
    },
    "job": {
      "capability": "pdf.convert",
      "name": "PDF conversion"
    },
    "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/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-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/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-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/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-pdf-co.json",
        "title": "Nutrient DWS Processor API vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfrest.json",
        "title": "Nutrient DWS Processor API vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfrest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docraptor-vs-pdf-co.json",
        "title": "DocRaptor vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docraptor-vs-pdfrest.json",
        "title": "DocRaptor vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-pdfrest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey.json",
        "title": "PDF.co API + MCP vs PDFMonkey",
        "url": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest.json",
        "title": "PDFMonkey vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 38,
        "edge": "pdfrest",
        "key": "reliability",
        "name": "Reliability",
        "pdf-co": 20,
        "pdfrest": 58,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 16,
        "edge": "pdfrest",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pdf-co": 74,
        "pdfrest": 90,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "pdfrest",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pdf-co": 49,
        "pdfrest": 52,
        "weight": 13
      },
      {
        "by": 14,
        "edge": "pdfrest",
        "key": "security",
        "name": "Security \u0026 auth",
        "pdf-co": 23,
        "pdfrest": 37,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "pdfrest",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pdf-co": 20,
        "pdfrest": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 36,
        "edge": "pdfrest",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pdf-co": 34,
        "pdfrest": 70,
        "weight": 7
      },
      {
        "by": 9,
        "edge": "pdfrest",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pdf-co": 53,
        "pdfrest": 62,
        "weight": 7
      }
    ],
    "summary": "pdfRest API Toolkit scores 57.7 (C) on agent readiness against PDF.co API + MCP's 38.1 (E), and leads in every scored category. Both do pdf conversion.",
    "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.",
      "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/pdf-co-vs-pdfrest",
    "json": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfrest.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfrest.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfrest.min.md"
  },
  "markdown": "pdfRest API Toolkit scores 57.7 (C) on agent readiness against PDF.co API + MCP's 38.1 (E), and leads in every scored category. Both do pdf conversion.\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- 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- 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\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: No status page. status.pdf.co redirects to betterstack.com/uptime\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- Reliability, 58 against 20\n- Schema \u0026 documentation, 90 against 74\n- Security \u0026 auth, 37 against 23\n- Payments \u0026 pricing, 40 against 20\n- Maintenance \u0026 community, 70 against 34\n- Transparency \u0026 trust, 62 against 53\n\nAlso in its favour:\n- Free to start without a card\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### Reliability: pdfRest API Toolkit +38\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- pdfRest API Toolkit (58): Read with the hosted lines. status.pdfrest.com is an Upptime page with a single check on the /up endpoint, backed by a public repository with daily history; one component and no incident write-ups (15). The repository shows 100 per cent uptime over 7 and 30 days, 99.95 per cent over a year and no down entries in the last 200 daily history commits (30). No request rate limit is documented and the OpenAPI document defines no 429 (0). A 408 timeout is documented and `/request-status` polls async jobs, but there is no 429 handling, backoff guidance or idempotency key (3). No SLA; the terms give the service as is (0). GA (10). 15 + 30 + 0 + 3 + 0 + 10 = 58.\n\n### Maintenance \u0026 community: pdfRest API Toolkit +36\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- 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### Payments \u0026 pricing: pdfRest API Toolkit +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- pdfRest API Toolkit (40): No x402, MPP or L402 (0). Plan prices, per-call overage, EU and Pro Tools per-call fees and file-size overage are on the public pricing page and in llms.txt (20). Starter is free with 100 calls a month and no card (20). A person signs up in a browser and the key is shown in the account (0). 0 + 20 + 20 + 0 = 40.\n\n### Schema \u0026 documentation: pdfRest API Toolkit +16\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- 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### Security \u0026 auth: pdfRest API Toolkit +14\n\n- PDF.co API + MCP (23): One API key per account in the `x-api-key` header, header only per the OpenAPI document. We found no scopes, no multiple keys and no rotation guide (10). Every MCP tool also takes `api_key` as an argument, which invites the key into the model's context. No read-only mode, no annotations, and `upload_file` reads any absolute local path and uploads it to PDF.co. The SSE and HTTP transports bind 0.0.0.0 with no authentication (0). PDF text, tables and invoice fields come back as untrusted content with no injection guidance (0). Each response reports credits used and remaining, which is a per-call cost trail. We found no audit log (5). The security page claims SOC 2 Type II and cites AWS's ISO 27001, PCI and FISMA, which are the data centre's. security.txt is a 404 and we found no disclosure policy or bounty (8).\n- pdfRest API Toolkit (37): One `Api-Key` header per account, revocable per the terms, with no scopes, expiry or rotation guide, and the polling guide shows a Bearer header instead (14). No read-only key; `/delete` removes uploaded files and there is no confirmation step, though demo output is watermarked (4). Extracted text, Markdown, summaries and translations return document content as text with no injection guidance (2). The container edition logs audit events; nothing documents per-call visibility for cloud accounts beyond usage counts (5). SOC 2 Type 2 through Datalogics' trust centre, HIPAA BAAs and a DPA, but no security.txt, disclosure policy or bug bounty found (12). 14 + 4 + 2 + 5 + 12 = 37.\n\n### Transparency \u0026 trust: pdfRest API Toolkit +9\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- 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## Score by category\n\n| Category | Weight | PDF.co API + MCP | pdfRest API Toolkit | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 20 | 58 | pdfRest API Toolkit +38 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 74 | 90 | pdfRest API Toolkit +16 |\n| Agent ergonomics | 13% (16.2 this run) | 49 | 52 | pdfRest API Toolkit +3 |\n| Security \u0026 auth | 14% (17.5 this run) | 23 | 37 | pdfRest API Toolkit +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 40 | pdfRest API Toolkit +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 34 | 70 | pdfRest API Toolkit +36 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 53 | 62 | pdfRest API Toolkit +9 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **38.1 · E** | **57.7 · C** | |\n\n## Facts side by side\n\n| Fact | PDF.co API + MCP | pdfRest API Toolkit |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | PDF.co (Artifex Software) | Datalogics, Inc. |\n| Hosted endpoint | `https://api.pdf.co/v1` | `https://api.pdfrest.com` |\n| Transports | HTTP, stdio | HTTP |\n| Auth | API key | API key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | MIT (MCP server) | none |\n| Tools exposed | 38 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-07-28 | 2026-10-14 |\n| Terms last updated | 2026-03-24 | no date given |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 9 stars, 20 PyPI/wk | none |\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### pdfRest API Toolkit\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**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### 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### 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, PDF.co API + MCP or pdfRest API Toolkit?\n\npdfRest API Toolkit scores 57.7 (C) on agent readiness against PDF.co API + MCP's 38.1 (E), and leads in every scored category.\n\n### Do PDF.co API + MCP and pdfRest API Toolkit need an API key?\n\nBoth need an API key.\n\n### Can an agent call PDF.co API + MCP and pdfRest API Toolkit without installing anything?\n\nYes. PDF.co API + MCP has a hosted endpoint at https://api.pdf.co/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/pdf-co-vs-pdfrest.json, and with the fewest tokens: https://www.anchorterminal.com/compare/pdf-co-vs-pdfrest.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"pdf-co\", \"b\": \"pdfrest\"}`. From a terminal: `anchor compare pdf-co pdfrest`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/pdf-co.json and https://www.anchorterminal.com/api/v1/tools/pdfrest.json\n\n## Other comparisons with PDF.co API + MCP or pdfRest API Toolkit\n\n- [CloudConvert API vs PDF.co API + MCP](https://www.anchorterminal.com/compare/cloudconvert-vs-pdf-co.md)\n- [CloudConvert API vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/cloudconvert-vs-pdfrest.md)\n- [Foxit PDF Services API vs PDF.co API + MCP](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdf-co.md)\n- [Foxit PDF Services API vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-pdfrest.md)\n- [iLoveAPI vs PDF.co API + MCP](https://www.anchorterminal.com/compare/iloveapi-vs-pdf-co.md)\n- [iLoveAPI vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/iloveapi-vs-pdfrest.md)\n- [Nutrient DWS Processor API vs PDF.co API + MCP](https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.md)\n- [Nutrient DWS Processor API vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdfrest.md)\n- [DocRaptor vs PDF.co API + MCP](https://www.anchorterminal.com/compare/docraptor-vs-pdf-co.md)\n- [DocRaptor vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/docraptor-vs-pdfrest.md)\n- [PDF.co API + MCP vs PDFMonkey](https://www.anchorterminal.com/compare/pdf-co-vs-pdfmonkey.md)\n- [PDFMonkey vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/pdfmonkey-vs-pdfrest.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "PDF.co API + MCP vs pdfRest API Toolkit",
        "url": ""
      }
    ],
    "description": "pdfRest API Toolkit scores 57.7 (C) to PDF.co's 38.1 (E) for pdf conversion. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "PDF.co API + MCP E 38.1",
      "pdfRest API Toolkit C 57.7",
      "scores"
    ],
    "h1": "PDF.co API + MCP vs pdfRest API Toolkit",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/pdf-co-vs-pdfrest",
    "published": "2026-10-01",
    "section": "tools",
    "title": "PDF.co vs pdfRest API Toolkit for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/pdf-co-vs-pdfrest"
  },
  "tokens": {
    "markdown": 4250,
    "slim": 2630
  },
  "version": 1
}
