The screenshot API that develops in the dark.
One GET request in, a pixel-perfect PNG out. backshot keeps a warm Chromium running so your renders start in milliseconds, and the same render is never billed twice.
curl "https://backshot.dev/v1/screenshot?url=https://stripe.com&key=YOUR_KEY" -o shot.png
demo key · 50 credits, refills hourly · 10 renders/min
An API you can read in one sitting.
Auth is a Bearer header or a ?key= query param, which means a
screenshot URL can go straight into an <img> tag. Responses are the image
bytes themselves; add response=json if you want metadata instead.
HTTP/1.1 200 OK
Content-Type: image/png
X-Backshot-Cache: HIT
X-Backshot-Credits-Remaining: 1993
X-Backshot-Render-Ms: 1
X-RateLimit-Remaining: 58
// cache hits are free.
// the meter only runs when
// Chromium actually works.
The spec sheet.
Everything below is implemented and testable right now; no roadmap items dressed up as features.
Warm Chromium
One long-lived browser, a fresh isolated context per render. No cold starts, no browser-per-request memory bombs. A concurrency-limited queue keeps a traffic spike from taking the box down, and a 30-second hard timeout keeps one pathological page from wedging a worker.
POST /v1/pdf
Free cache hits
Every render is content-addressed by its full parameter set and kept for 24 hours.
Ask for the same frame twice and the second one returns in a millisecond, costs nothing,
and says so in the X-Backshot-Cache header. Embed a screenshot URL in your
README and stop thinking about it.
ttl 24h
Frame control
Viewport size, device scale up to 3x, full-page capture, or a single element by CSS selector. Emulate dark mode, hide cookie-consent banners, wait for network idle or a fixed delay before the shutter fires.
full_page selector
dark_mode delay_ms
block_cookie_banners
PDF, from URL or raw HTML
Print-grade PDF with page format, landscape, margins and background control. Send a URL, or POST your own HTML (invoices, reports, certificates) and get the document back in one round trip.
landscape margin scale
print_background
SSRF armor
A URL-rendering service is a proxy into your network unless it refuses to be. backshot rejects non-HTTP schemes, resolves every hostname and blocks private and reserved ranges (cloud metadata IPs included), re-checks every redirect hop, and screens every subresource the page loads.
172.16/12 192.168/16
169.254/16 fc00::/7
file: data: chrome:
Credits, not subscriptions.
One credit is one fresh render. Cache hits, errors and blocked requests cost nothing. Credits never expire.
Honesty clause: online checkout isn't wired up yet; paid keys are issued by hand while backshot is in its first public build. The demo tier, the API, the cache and the security model are all fully live. If you want a paid key today, the docs describe exactly what you'd be buying.