Website screenshots
Turn any public URL into a permanently hosted PNG — desktop or mobile, viewport or full page, captured from the country you choose.
Website screenshots
One call takes a public URL and hands back a hosted PNG that never expires. Nothing to run, nothing to store, nothing to clean up.
What you can call
One operation, reached at POST /v1/live-fetch/webpage/screenshot:
| Operation | What it does | Reference |
|---|---|---|
| Website screenshot | Captures a public URL as a hosted PNG | webpageScreenshot |
Its request fields:
| Field | What it does |
|---|---|
url | The page to capture. Bare domains work too — stripe.com is treated as https://stripe.com |
fullPage | false (default) captures the visible viewport; true captures the entire scrollable page |
format | desktop (default, widescreen viewport) or mobile (phone-sized viewport) |
country | Optional ISO 3166-1 alpha-3 code (USA, GBR, DEU) for a geo-located capture; omitted = US-based |
What comes back:
| Field | What it is |
|---|---|
screenshotUrl | Hosted PNG of the capture — the URL is permanent |
pageUrl | The final URL after redirects — may differ from what you sent |
pageTitle | The page's HTML title, when available |
imageMediaType | Always image/png |
capturedAt | ISO 8601 capture timestamp |
Capture options that matter
- Full page vs viewport. Viewport shots are what a visitor sees above the fold; full-page shots scroll the whole document — long pricing pages, entire blog posts.
- Desktop vs mobile. The same page often ships different layouts;
format: "mobile"shows you the phone experience. - Geo-located capture. Pass
countryand the page is fetched from that region (localized pricing, region-gated content, and geo-targeted banners appear the way a visitor there sees them).
Behavior to know
- Public pages only. Private, internal, and non-HTTP(S) addresses are rejected with a clear error.
- Redirects are followed and the response tells you where you landed —
compare
pageUrlto your input when tracking moved pages. - Login-walled pages show what a logged-out visitor sees. We don't sign in on your behalf, so a page behind a login captures its login or paywall screen.
- One URL per call. There's no bulk endpoint; for many pages, run calls in parallel within the rate limit.
- Images are PNGs sized to the chosen viewport (
desktopormobile), or the full page height withfullPage: true; there's no custom width or height. - Rate limit: 60 requests/minute. Heavy pages can take a while to render, so give the call up to 60 seconds before timing out client-side.
Using it effectively
- Store the URL, not the image. The hosted link is permanent, so your database only needs the string.
- Record
pageUrl, not just your input: it's the page you actually captured. - Use
countrydeliberately when a target localizes; a US capture of a geo-aware page can be the wrong evidence.
Use cases
Visual context on company records from search, landing-page snapshots when a tracker signal fires, and timestamped page archives that don't rot.
Credits
2 credits per successful screenshot. Every failure (blocked URL,
render error, anything) is automatically refunded, so you pay only for
images you receive. chargeInfo on the response is the authoritative
record. See Billing & credits. Credit amounts are defaults — custom pricing is available for bulk use cases.