Pricing
Two credits a capture.
A credit is one cent, drawn from the same Ounie wallet every Ounie app shares. No plans, no seats, no monthly minimum, no expiry on what you buy.
Viewport
= 0.02 USD
One screen, exactly as a visitor first sees it. Pick any width and height.
Keyless x402: $0.024
Full page
= 0.03 USD
The entire scroll height stitched into one tall image, header to footer.
Keyless x402: $0.036
= 0.03 USD
The browser's own print render — real pages, selectable text, ready to attach.
Keyless x402: $0.036
Page text
= 0.02 USD
The rendered DOM as clean text, after JavaScript has run. No pixels, just words.
Keyless x402: $0.024
Full-page and PDF cost a credit more because they are genuinely more work: the browser scrolls and stitches the whole document, or runs a full print pass, and the artifact we then store and serve is many times larger.
What never costs a credit
- Listing your captures, however many there are
- Re-opening a capture and getting a fresh signed link
- Downloading bytes you already paid for
- Deleting a capture
- Checking prices or your credit balance
- A capture that failed, timed out, or came back empty
What a capture costs you
Credits are reserved before the render and settled only once bytes exist.
- Whole credits
1 credit = 1¢, drawn from the one Ounie wallet every app shares.
- Reads are free
Listing captures, re-opening a result and downloading never bill again.
- Refused, not overdrawn
An empty wallet gets a 402 with the exact shortfall — no capture runs.
For agents with no account
Pay per call in USDC
An autonomous agent with a funded wallet on Base can call POST /api/x402/capture with no Ounie account at all. You get a 402 quoting the exact price for the mode you asked for, sign it, and retry with an X-Payment header.
We render the page before we settle. A settlement on chain is final and has no refund path, so the money only moves once there are bytes to hand back — a failed capture on this rail costs you nothing.
curl -X POST https://snapshot.ounie.com/api/x402/capture \
-H "Content-Type: application/json" \
-d '{"url":"stripe.com","mode":"viewport"}'
# → 402 { "x402Version": 1, "accepts": [ … ] }x402 reference →Questions worth asking first
What exactly do I get back?
Is the result public?
Does dark mode really work?
prefers-color-scheme. What we do is set the signals modern sites actually key off — the .dark class, data-theme, and the usual localStorage keys — then let the site’s own theme code react. Sites that read only the media query come back light.