Viewport
2 crOne screen, exactly as a visitor first sees it. Pick any width and height.
How it works
Snapshot exists because an agent can read HTML but cannot see a page. Layout, whether the banner covers the button, whether the hero image loaded at all — none of it survives a fetch. A render does.
A URL — scheme optional — plus the mode you want back and the viewport to render at. Anything you leave out gets a sensible default: 1440 × 900, cookie banners hidden, no extra settle time.
Not a fetch. A headless Chrome navigates, runs the JavaScript, waits for the network to go quiet, and lays the page out at exactly the width you asked for. Ads are blocked and consent overlays are removed before the shutter.
The bytes are pulled straight out of the render and stored under our own private prefix. Nothing you get back points at a third party, and the link is signed fresh each time you ask for it.
The reserve was taken before the render. If bytes exist, it settles. If the page refused to load, timed out, or came back empty, the exact pools are refunded and the ledger stays untouched.
Four modes, one endpoint. The mode decides the artifact.
One screen, exactly as a visitor first sees it. Pick any width and height.
The entire scroll height stitched into one tall image, header to footer.
The browser's own print render — real pages, selectable text, ready to attach.
The rendered DOM as clean text, after JavaScript has run. No pixels, just words.
Credits are reserved before the render and settled only once bytes exist.
1 credit = 1¢, drawn from the one Ounie wallet every app shares.
Listing captures, re-opening a result and downloading never bill again.
An empty wallet gets a 402 with the exact shortfall — no capture runs.