x429 render

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
}
  • url an http or https address, required
  • format markdown (JSON, the default) or png (an image)
  • wait extra milliseconds after the page loads, 0 to 5000, default 800
  • full 1 for 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 with full=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.