Skip to content
Snapshot
Eyes for AI agents

Give it a URL.
Get back what the
page actually looks like.

A viewport screenshot, a full-page capture, a print-style PDF, or the rendered page text — at any width you name, after the JavaScript has run. One call, one credit charge, a signed link back.

No subscription — pay in Ounie credits, from 2 credits a capture.

https://any-page.com1440 × 900

Four ways to see a page

Pick what you need back.

Same call, same URL — the mode decides what lands in your hands.

Viewport

2 cr

One screen, exactly as a visitor first sees it. Pick any width and height.

Full page

3 cr

The entire scroll height stitched into one tall image, header to footer.

PDF

3 cr

The browser's own print render — real pages, selectable text, ready to attach.

Page text

2 cr

The rendered DOM as clean text, after JavaScript has run. No pixels, just words.

Any viewport

A responsive page is four pages.

Width and height are real inputs, honoured exactly — from 320 up to 3840, at one or two times the pixel density. Shoot the breakpoint you care about.

Phone
390×844
Tablet
834×1112
Laptop
1440×900
Wide
2560×1440

For developers & AI agents

An agent can read a page. It can’t see one.

Snapshot is the eye. Four rails reach it, all drawing the same wallet, all refusing rather than overdrawing.

  • REST

    One POST. Session cookie, snp_live_ Bearer, or ?api_key= when your host can't set headers.

  • MCP

    capture_url, get_capture, list_captures, get_credit_balance, get_pricing, whoami — in Claude, Cursor or the Ounie AI Team.

  • x402

    No account at all. Pay per call in USDC on Base. We render before we settle, so a failed capture costs nothing.

  • Dashboard

    Mint keys, watch spend, and re-open every capture you've taken. Reads are always free.

one capture
curl -X POST https://snapshot.ounie.com/api/captures \
  -H "Authorization: Bearer snp_live_…" \
  -H "Content-Type: application/json" \
  -d '{"url":"stripe.com","mode":"fullpage","width":1440}'

# → 201
# {
#   "id": "3f9c…",
#   "url": "https://…signed…",     # valid 24h
#   "width": 1440, "height": 7362,
#   "bytes": 1841203,
#   "credits_spent": 3
# }

Pricing

Two credits. Three for the heavy ones.

A credit is one cent. That is the whole pricing page, but there’s a longer one if you want the math.

What a capture costs you

Credits are reserved before the render and settled only once bytes exist.

RESERVE2 crRENDERthe pageSETTLE2 crcame back emptyREFUND0 cr billed
  • 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.

Questions worth asking first

What exactly do I get back?
A URL you can fetch for 24 hours, plus the measurements: final URL after redirects, page title, byte size, and the pixel dimensions of the image (or the page count of the PDF). Text mode also returns the text inline in the response, so an agent never needs a second round trip.
Is the result public?
No. Every artifact is private and served through a freshly signed link minted per request, never a stored one. A link that leaks stops working within a day, and every read re-checks that the capture is yours.
Does dark mode really work?
Best-effort, and worth saying plainly: nothing inside a page can change the operating system’s 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.
What happens if the page won't load?
You get an error and your credits back. The reserve is refunded to the exact pools it came from before the response is written — a capture with no bytes is never billed, on any rail.
Can I capture a page behind a login?
Not today. Snapshot renders as an anonymous visitor, so it sees what a logged-out person sees. Anything gated will come back as the login wall, which is an honest capture of that URL.
Do I need an Ounie account?
For the credit rail, yes — one Ounie account, one wallet, shared with every other Ounie app. For the x402 rail, no: an agent with a funded USDC wallet on Base can call the endpoint with no account at all.
Is there a subscription?
No. There are no plans, no seats and no monthly minimum. You pay per capture in Ounie credits and nothing else, and unused reserves come straight back.

Point it at a page.

Your first capture takes about as long as reading this sentence.