{
  "page": "https://x402-list.com/apis/pdf-api",
  "title": "PDF APIs you can pay per call",
  "answer": "As of October 26, 2026, x402-list compares 18 PDF services with priced routes that read, generate, fill or merge PDFs. The median selected call costs $0.01. Text extraction, OCR of scans and rendering a page to PDF are different purchases.",
  "date_modified": "2026-10-26",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "cite_as": "x402-list, \"PDF APIs you can pay per call\", https://x402-list.com/apis/pdf-api, data as of 2026-10-26. Licensed CC BY 4.0.",
  "how_to_cite": "Quote the number with its date and link the page URL. Data is CC BY 4.0: attribution to x402-list is required.",
  "methodology": "https://x402-list.com/methodology",
  "criteria": {
    "listed": "online, payment-ready, 30-day uptime >= 90%, known price, description >= 80 characters",
    "price": "cheapest current PDF endpoint of each service, USD per call (not its cheapest tool of any kind); services without one are left out",
    "generalist": "a gateway matching more than three unrelated capabilities: listed, never called the cheapest",
    "buyers_30d": "distinct wallets that paid the service on-chain in the last 30 days (measured floor)",
    "best": "most distinct buyers in 30 days; ties go to higher 30-day uptime"
  },
  "in_index": true,
  "stats": {
    "services": 18,
    "with_buyers_30d": 17,
    "median_price_usd": 0.01,
    "min_price_usd": 0.002,
    "max_price_usd": 0.05,
    "generalists": 8,
    "left_out_no_task_endpoint": 6
  },
  "faq": [
    {
      "question": "Is there a free PDF API here?",
      "answer": "The 18 listed services have positive per-call prices for their task endpoints. A free daily allowance, a free quote route or a free sample does not make the paid route free; check the exact request and the provider's terms."
    },
    {
      "question": "What do 100,000 PDF calls cost?",
      "answer": "At the median selected quote, 100,000 calls total $1,000.00 at $0.01 per call. This reference calculation assumes one document per call at the quoted size and excludes per-page pricing, OCR tiers and retries."
    },
    {
      "question": "Why does a PDF return no text?",
      "answer": "The file is probably a scan with no text layer. Text-layer extraction cannot recover characters from page images; send the file to an OCR route, and keep the OCR confidence with the result."
    },
    {
      "question": "Can a PDF API keep tables?",
      "answer": "Table handling depends on the output contract: Markdown or table extraction can keep simple tables, while plain text loses the structure. Test a document with merged cells and multi-page tables before relying on a route for financial statements."
    },
    {
      "question": "Is OCR output exact?",
      "answer": "No. OCR estimates characters from an image and can confuse similar glyphs, especially on low-resolution or handwritten pages. Keep confidence scores, review low-confidence pages, and verify numbers that drive a decision against the image."
    },
    {
      "question": "Does rendering a URL to PDF prove what a page said?",
      "answer": "It records what the server returned to the renderer at that moment. It is useful evidence, and it is not an independent timestamp or a legal certification; keep the capture time, URL and response details with the file."
    },
    {
      "question": "Can I fill a government form with a PDF API?",
      "answer": "Form routes can detect fields, fill them from data and read them back. Review the filled form before it is submitted, since a mapping error writes a wrong value into an official document."
    },
    {
      "question": "Does HTTP 402 establish a correct paid answer?",
      "answer": "It establishes a payment requirement for the request. A stored challenge, an observed payment and an accurate extraction or rendering are different evidence; inspect the resource and request schema before paying."
    }
  ],
  "services": [
    {
      "name": "Agent Web Access",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/agent-web-access",
      "price_usd_per_call": 0.005,
      "networks": [
        "Base"
      ],
      "uptime_30d": 99.6,
      "latency_ms": 209,
      "buyers_30d": 111,
      "last_checked_at": "2026-10-26T19:10:12.784Z",
      "what_it_does": "Provider describes a GET route that renders a live web page to PDF after running JavaScript.",
      "generalist": false,
      "price_endpoint": {
        "method": "GET",
        "path": "/pdf"
      },
      "task_endpoints": [
        {
          "method": "GET",
          "path": "/pdf",
          "price_usd_per_call": 0.005
        }
      ],
      "endpoints_listed": 4
    },
    {
      "name": "agentsvc.io",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/agentsvc-io",
      "price_usd_per_call": 0.0045,
      "networks": [
        "ARB",
        "Base",
        "POL",
        "SOL"
      ],
      "uptime_30d": 100,
      "latency_ms": 55,
      "buyers_30d": 41,
      "last_checked_at": "2026-10-26T19:03:40.655Z",
      "what_it_does": "Provider lists PDF text extraction, URL or HTML rendering to PDF and invoice extraction.",
      "generalist": true,
      "price_endpoint": {
        "method": "POST",
        "path": "/html-to-pdf"
      },
      "task_endpoints": [
        {
          "method": "POST",
          "path": "/html-to-pdf",
          "price_usd_per_call": 0.0045
        },
        {
          "method": "POST",
          "path": "/invoice-extract",
          "price_usd_per_call": 0.02
        },
        {
          "method": "POST",
          "path": "/pdf-extract",
          "price_usd_per_call": 0.0055
        }
      ],
      "endpoints_listed": 50
    },
    {
      "name": "DocEdge",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/docedge",
      "price_usd_per_call": 0.05,
      "networks": [
        "Base",
        "SOL"
      ],
      "uptime_30d": 99.9,
      "latency_ms": 1032,
      "buyers_30d": 39,
      "last_checked_at": "2026-10-26T19:03:17.296Z",
      "what_it_does": "Provider describes PDF, webpage or Google Doc conversion to Markdown with tables and an optional AI summary.",
      "generalist": false,
      "price_endpoint": {
        "method": "POST",
        "path": "/convert"
      },
      "task_endpoints": [
        {
          "method": "POST",
          "path": "/convert",
          "price_usd_per_call": 0.05
        }
      ],
      "endpoints_listed": 1
    },
    {
      "name": "agentutility",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/agentutility",
      "price_usd_per_call": 0.0025,
      "networks": [
        "Base",
        "SOL"
      ],
      "uptime_30d": 99.8,
      "latency_ms": 1502,
      "buyers_30d": 36,
      "last_checked_at": "2026-10-26T19:03:33.967Z",
      "what_it_does": "Provider describes layout-aware PDF to Markdown, HTML or JSON on the Datalab Marker engine.",
      "generalist": true,
      "price_endpoint": {
        "method": "POST",
        "path": "/pdf-to-markdown"
      },
      "task_endpoints": [
        {
          "method": "POST",
          "path": "/pdf-to-markdown",
          "price_usd_per_call": 0.0025
        }
      ],
      "endpoints_listed": 9
    },
    {
      "name": "WebberSites x402 Data API",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/webbersites-x402-data-api",
      "price_usd_per_call": 0.02,
      "networks": [
        "Base"
      ],
      "uptime_30d": 100,
      "latency_ms": 186,
      "buyers_30d": 33,
      "last_checked_at": "2026-10-26T19:03:49.630Z",
      "what_it_does": "Provider describes PDF, DOCX or CSV extraction by URL to Markdown and JSON, flagging scanned PDFs.",
      "generalist": true,
      "price_endpoint": {
        "method": "GET",
        "path": "/api/extract"
      },
      "task_endpoints": [
        {
          "method": "GET",
          "path": "/api/extract",
          "price_usd_per_call": 0.02
        }
      ],
      "endpoints_listed": 37
    },
    {
      "name": "Tanod",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/tanod",
      "price_usd_per_call": 0.005,
      "networks": [
        "ARB",
        "Base",
        "POL",
        "SOL"
      ],
      "uptime_30d": 100,
      "latency_ms": 463,
      "buyers_30d": 26,
      "last_checked_at": "2026-10-26T19:10:06.486Z",
      "what_it_does": "Provider describes text, page count and metadata from a PDF at a public URL.",
      "generalist": true,
      "price_endpoint": {
        "method": "GET",
        "path": "/v1/pdf"
      },
      "task_endpoints": [
        {
          "method": "GET",
          "path": "/v1/pdf",
          "price_usd_per_call": 0.005
        }
      ],
      "endpoints_listed": 6
    },
    {
      "name": "Relaystation",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/relaystation",
      "price_usd_per_call": 0.01,
      "networks": [
        "Base"
      ],
      "uptime_30d": 100,
      "latency_ms": 257,
      "buyers_30d": 15,
      "last_checked_at": "2026-10-26T19:03:14.003Z",
      "what_it_does": "Provider describes merging PDFs into one file in a chosen order.",
      "generalist": false,
      "price_endpoint": {
        "method": "POST",
        "path": "/v1/pdf/merge"
      },
      "task_endpoints": [
        {
          "method": "POST",
          "path": "/v1/pdf/merge",
          "price_usd_per_call": 0.01
        }
      ],
      "endpoints_listed": 4
    },
    {
      "name": "Mart402",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/mart402",
      "price_usd_per_call": 0.01,
      "networks": [
        "Base"
      ],
      "uptime_30d": 100,
      "latency_ms": 275,
      "buyers_30d": 14,
      "last_checked_at": "2026-10-26T19:05:01.230Z",
      "what_it_does": "Provider lists PDF to structured Markdown with OCR for scans, plus an invoice pipeline.",
      "generalist": true,
      "price_endpoint": {
        "method": "GET",
        "path": "/v1/parse"
      },
      "task_endpoints": [
        {
          "method": "POST",
          "path": "/v1/document-pipeline",
          "price_usd_per_call": 0.05
        },
        {
          "method": "GET",
          "path": "/v1/parse",
          "price_usd_per_call": 0.01
        }
      ],
      "endpoints_listed": 11
    },
    {
      "name": "Busker",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/busker",
      "price_usd_per_call": 0.002,
      "networks": [
        "Base"
      ],
      "uptime_30d": 100,
      "latency_ms": 763,
      "buyers_30d": 13,
      "last_checked_at": "2026-10-26T19:03:35.785Z",
      "what_it_does": "Provider lists text-layer PDF to Markdown and Tesseract OCR for scanned PDFs.",
      "generalist": true,
      "price_endpoint": {
        "method": "POST",
        "path": "/pdf"
      },
      "task_endpoints": [
        {
          "method": "POST",
          "path": "/ocr",
          "price_usd_per_call": 0.01
        },
        {
          "method": "POST",
          "path": "/ocr-deep",
          "price_usd_per_call": 0.03
        },
        {
          "method": "POST",
          "path": "/pdf",
          "price_usd_per_call": 0.002
        }
      ],
      "endpoints_listed": 17
    },
    {
      "name": "AgentWork Web Evidence",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/agentwork-web-evidence",
      "price_usd_per_call": 0.01,
      "networks": [
        "Base"
      ],
      "uptime_30d": 99.8,
      "latency_ms": 295,
      "buyers_30d": 8,
      "last_checked_at": "2026-10-26T19:01:03.054Z",
      "what_it_does": "Provider describes text from a public digital PDF into page-numbered JSON, without OCR.",
      "generalist": false,
      "price_endpoint": {
        "method": "POST",
        "path": "/v1/pdf/read"
      },
      "task_endpoints": [
        {
          "method": "POST",
          "path": "/v1/pdf/read",
          "price_usd_per_call": 0.01
        }
      ],
      "endpoints_listed": 3
    },
    {
      "name": "url2md",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/url2md",
      "price_usd_per_call": 0.005,
      "networks": [
        "Base"
      ],
      "uptime_30d": 100,
      "latency_ms": 1317,
      "buyers_30d": 6,
      "last_checked_at": "2026-10-26T19:03:44.690Z",
      "what_it_does": "Provider describes one conversion route for PDFs, JavaScript pages and HTML to Markdown.",
      "generalist": false,
      "price_endpoint": {
        "method": "GET",
        "path": "/v1/md"
      },
      "task_endpoints": [
        {
          "method": "GET",
          "path": "/v1/md",
          "price_usd_per_call": 0.005
        }
      ],
      "endpoints_listed": 1
    },
    {
      "name": "Scribe",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/scribe",
      "price_usd_per_call": 0.01,
      "networks": [
        "Base",
        "SOL"
      ],
      "uptime_30d": 99.7,
      "latency_ms": 275,
      "buyers_30d": 6,
      "last_checked_at": "2026-10-26T19:01:02.376Z",
      "what_it_does": "Provider lists PDF to text inside a document converter and browser rendering of a URL or HTML to PDF.",
      "generalist": true,
      "price_endpoint": {
        "method": "GET",
        "path": "/v1/convert"
      },
      "task_endpoints": [
        {
          "method": "GET",
          "path": "/v1/convert",
          "price_usd_per_call": 0.01
        },
        {
          "method": "GET",
          "path": "/v1/render",
          "price_usd_per_call": 0.02
        }
      ],
      "endpoints_listed": 4
    },
    {
      "name": "PageProof",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/pageproof",
      "price_usd_per_call": 0.005,
      "networks": [
        "Base"
      ],
      "uptime_30d": 99.7,
      "latency_ms": 2187,
      "buyers_30d": 3,
      "last_checked_at": "2026-10-26T19:10:09.238Z",
      "what_it_does": "Provider describes embedded-text extraction into page-numbered JSON with SHA-256 hashes, without OCR.",
      "generalist": false,
      "price_endpoint": {
        "method": "POST",
        "path": "/v1/pdf/extract"
      },
      "task_endpoints": [
        {
          "method": "POST",
          "path": "/v1/pdf/extract",
          "price_usd_per_call": 0.005
        }
      ],
      "endpoints_listed": 1
    },
    {
      "name": "Emboss",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/emboss",
      "price_usd_per_call": 0.01,
      "networks": [
        "ARB",
        "AVX",
        "Base",
        "POL"
      ],
      "uptime_30d": 99.9,
      "latency_ms": 171,
      "buyers_30d": 2,
      "last_checked_at": "2026-10-26T18:54:22.299Z",
      "what_it_does": "Provider describes making PDF forms fillable, filling them and reading filled values back.",
      "generalist": false,
      "price_endpoint": {
        "method": "GET",
        "path": "/pay/read"
      },
      "task_endpoints": [
        {
          "method": "GET",
          "path": "/pay/fax",
          "price_usd_per_call": 0.03
        },
        {
          "method": "GET",
          "path": "/pay/fill",
          "price_usd_per_call": 0.07
        },
        {
          "method": "GET",
          "path": "/pay/fill-with-context",
          "price_usd_per_call": 0.08
        },
        {
          "method": "GET",
          "path": "/pay/make-fillable",
          "price_usd_per_call": 0.05
        },
        {
          "method": "GET",
          "path": "/pay/read",
          "price_usd_per_call": 0.01
        }
      ],
      "endpoints_listed": 5
    },
    {
      "name": "Kenward payable API",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/kenward-payable-api",
      "price_usd_per_call": 0.02,
      "networks": [
        "Base"
      ],
      "uptime_30d": 99.8,
      "latency_ms": 1275,
      "buyers_30d": 2,
      "last_checked_at": "2026-10-26T19:03:18.568Z",
      "what_it_does": "Provider describes the text layer of a PDF URL page by page, with up to five URLs per call.",
      "generalist": false,
      "price_endpoint": {
        "method": "GET",
        "path": "/v1/pdf"
      },
      "task_endpoints": [
        {
          "method": "GET",
          "path": "/v1/pdf",
          "price_usd_per_call": 0.02
        }
      ],
      "endpoints_listed": 7
    },
    {
      "name": "makesPDF",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/makespdf",
      "price_usd_per_call": 0.01,
      "networks": [
        "Base"
      ],
      "uptime_30d": 100,
      "latency_ms": 1045,
      "buyers_30d": 1,
      "last_checked_at": "2026-10-26T19:03:35.170Z",
      "what_it_does": "Provider describes tagged PDF/UA and PDF/A output from Markdown or template data.",
      "generalist": false,
      "price_endpoint": {
        "method": "GET",
        "path": "/api/v1/markdown"
      },
      "task_endpoints": [
        {
          "method": "GET",
          "path": "/api/v1/markdown",
          "price_usd_per_call": 0.01
        },
        {
          "method": "GET",
          "path": "/api/v1/render",
          "price_usd_per_call": 0.02
        }
      ],
      "endpoints_listed": 2
    },
    {
      "name": "x402.eleeth.com",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/x402-eleeth-com",
      "price_usd_per_call": 0.02,
      "networks": [
        "Base"
      ],
      "uptime_30d": 100,
      "latency_ms": 153,
      "buyers_30d": 1,
      "last_checked_at": "2026-10-26T19:03:12.581Z",
      "what_it_does": "Provider describes asynchronous PDF text extraction: a job ticket, then a download after about a minute.",
      "generalist": true,
      "price_endpoint": {
        "method": "POST",
        "path": "/api/pdftext"
      },
      "task_endpoints": [
        {
          "method": "POST",
          "path": "/api/pdftext",
          "price_usd_per_call": 0.02
        }
      ],
      "endpoints_listed": 34
    },
    {
      "name": "Basalt",
      "reseller_of_brand_via": null,
      "url": "https://x402-list.com/services/basalt",
      "price_usd_per_call": 0.01,
      "networks": [
        "Base"
      ],
      "uptime_30d": 94.5,
      "latency_ms": 384,
      "buyers_30d": 0,
      "last_checked_at": "2026-10-26T18:54:30.102Z",
      "what_it_does": "Provider describes text extraction from a PDF given its URL.",
      "generalist": false,
      "price_endpoint": {
        "method": "POST",
        "path": "/pdf-extract"
      },
      "task_endpoints": [
        {
          "method": "POST",
          "path": "/pdf-extract",
          "price_usd_per_call": 0.01
        }
      ],
      "endpoints_listed": 8
    }
  ]
}