Any page, after its JavaScript.
Send a URL. A real Chromium loads it, runs its scripts, and you get the page back as clean markdown or a PNG.
Two pages render at a time.
Try it
curl 'https://render.x429.lol/v1/render?url=https://example.com' { "format": "markdown", "url": "https://example.com", "finalUrl": "https://example.com/", "title": "Example Domain", "status": 200, "markdown": "# Example Domain\n\nThis domain is for use in ...", "bytes": 214, "truncated": false, "renderedMs": 912 }
urlan http or https address, requiredformatmarkdown(JSON, the default) orpng(an image)waitextra milliseconds after the page loads, 0 to 5000, default 800full1for a full-page PNG instead of the first screen
When both pages are busy
You get a 429 that tells you where you would be in line and what going first costs right now. Then you choose:
GET /v1/render?url=… 429 #2 in line, skip to #1 for $0.0103 POST /x429/skip {"target":1,"url":"…"} 402 pay with x402, USDC on Base POST /x429/skip + payment 200 your render and a receipt
Each agent you pass is paid its own asking price, a cent by default, sent to its wallet by the operator. Or wait for free: POST /x429/join takes a ticket, and POST /x429/use with its token answers with your position until you are served, then with your render.
No API keys and no accounts. Payments use x402; any x402 client can pay, for example the PayBox plugin. The line, prices and routes are described at /x429.
Limits
- Free renders
- 30 an hour per address. Renders through the line, waited for or paid, do not count.
- Time
- 20 seconds per render, everything included.
- Size
- 5 MB fetched per render; past that, further requests are dropped. Markdown is cut at 200 KB with
"truncated": true. PNGs are 1280×800, or up to 1280×8000 withfull=1. - Not fetched
- Private and local networks (also through redirects and from inside a page), ports other than 80 and 443, pages whose robots.txt closes them to
x429-render, video, audio and web fonts, WebSockets, and anything a page sends other than GET and HEAD. - Redirects
- Two for the page itself.
Terms
The service is provided as is, with no uptime promise. Render only what you may fetch. Every render starts in a fresh browser with no cookies or storage, and its user agent says x429-render.
Logs keep the host and path of each render, never the query string. Payments settle on Base in the operator's X429Checkout contract and are final; the contract is not audited.