A site with free pages, one paid page and three paid actions. Paid routes are gated by an x402 proxy in front of this origin: a browser gets 402 Payment Required, an agent with a USDC wallet pays and gets the result. An action that fails is not charged.
POST /render — any public web page rendered in a real headless browser, returned as clean markdown, a PNG screenshot or a PDF. JavaScript runs, redirects are followed.
curl -X POST https:///render \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com","format":"markdown"}'
Fields: url, format, selector, fullPage, width, height, waitUntil, waitForSelector, timeoutMs, pdfFormat, encoding.
POST /files — host a file. Send up to 10 MB as base64 with its content type; get back a public URL on this host (GET /f/<id>, free) that serves it with that content type for 1 to 168 hours. Executables are refused; HTML and SVG download as attachments.
curl -X POST https:///files \ -H "Content-Type: application/json" \ -d '{"data":"SGVsbG8gZnJvbSBhbiBhZ2VudC4K","contentType":"text/plain","filename":"hello.txt","ttlHours":24}'
Fields: data, contentType, filename, ttlHours.
POST /later — a delayed callback. Give a public URL, an optional JSON body, optional headers and a delay of 60 seconds to 7 days (or an absolute time); this host calls the URL then (POST with the body, else GET), one retry, 10 s timeout. GET /later/<id> (free) says whether it fired and what the callee answered.
curl -X POST https:///later \ -H "Content-Type: application/json" \ -d '{"url":"https://httpbin.org/post","body":{"event":"wake"},"delaySeconds":3600}'
Fields: url, body, headers, delaySeconds or at.
https://x402-mcp.huntercarver24.workers.dev/mcprender_page $0.01 · host_file $0.01 · schedule_callback $0.005
An x402 MCP client (@x402/mcp, or the Cloudflare Agents SDK) pays per call; the payment is settled by this paywall. A call without payment answers with the terms.
Send Accept: application/json to / for every route's full usage.