Screenshot APIs are one of the most quietly overpriced corners of dev tooling. The big ones charge $250–500/mo — for what is, underneath, a headless browser opening a page and handing back the bytes. I wanted to know how cheap it could be, so I built one.
The one trick: reuse the browser
The naive way to build a screenshot API is one browser launch per request. Launching Chromium costs ~2–5 seconds and a chunk of RAM every single time — that's where the cost (and the pricing) comes from.
rasterly keeps one Chromium instance alive and opens a fresh context per request:
- Cold start (first request): ~5s
- Warm render: ~1s of CPU
A warm render costing about a second of CPU means the real per-render cost is cents, not dollars. So I price on that: from $0.90 per 1,000, versus ~$5/1,000 at the pricier incumbents.
Don't skip the SSRF guard
A screenshot API takes a URL from a stranger and opens it from your server. Without a guard, someone points it at http://169.254.169.254/… and reads your cloud metadata.
Every target is DNS-resolved first and refused if it lands on localhost, a private range, link-local, or cloud metadata. Enforced, not a setting.
PDF is basically free
Once you have a page open in Chromium, page.pdf() is right there — so PDF is a first-class format at the same endpoint and price as an image:
curl "https://api.rasterly.dev/v1/screenshot?url=https://stripe.com&format=pdf" \
-H "X-Api-Key: ..." -o page.pdf
Try it — no signup
There's a live box on the landing page: paste a URL, and it hits the real API and streams the screenshot right back. Here it is rendering Hacker News in ~1.7s:
Go break it yourself → rasterly.dev
It's brand new and I'm a solo dev, so I'd love feedback — especially on the security side and on formats you'd actually need.
Prices and features mentioned were observed in August 2026 and are shown for comparison only; rasterly is an independent product, not affiliated with any other tool named.