rasterly — screenshot & PDF API
Live demo
Try it — screenshot any URL, right now.
No signup. This hits the real rasterly API and streams back a JPEG. Paste a URL and render it.
Render
try:<br>news.ycombinator.com<br>github.com<br>wikipedia.org
Public URLs only — internal, localhost and private addresses are refused by SSRF protection. Demo output is a 1280px JPEG; the API also does PNG, PDF, full-page and retina at up to 3×.
The reason to switch
Same 50,000 renders. A tenth of the bill.
The incumbents priced screenshots like an enterprise feature. It's a browser and a disk. Here's the same volume, side by side.
ScreenshotOne
$259/mo
50,000 renders · $5.18 per 1,000
vs
rasterly · Growth
$29/mo
50,000 renders · $0.58 per 1,000 · 89% less
Savings calculator
What are you overpaying?
Drag to your monthly render volume. We put you on the cheapest plan that covers it — no annual lock-in, no per-SKU add-ons.
Renders per month50,000
ScreenshotOne
$259
at $5.18 / 1,000
rasterly
$29
Growth plan
You keep $2,760 a year — a 89% cut.
One call, any stack
Copy, paste, ship.
No SDK required — it's a GET. Pass a URL, get bytes back. Full-page, viewport, retina scale and JPEG quality are query params.
curl<br>Node<br>Python
# PNG of a page, full height<br>curl "https://api.rasterly.dev/v1/screenshot?url=https://stripe.com&full_page=true" \<br>-H "X-Api-Key: sk_live_..." -o shot.png<br>const res = await fetch(<br>"https://api.rasterly.dev/v1/screenshot?url=https://stripe.com&format=pdf",<br>{ headers: { "X-Api-Key": process.env.SHOTBOLT_KEY } }<br>);<br>await writeFile("page.pdf", Buffer.from(await res.arrayBuffer()));<br>import requests<br>r = requests.get(<br>"https://api.rasterly.dev/v1/screenshot",<br>params={"url": "https://stripe.com", "format": "jpeg", "scale": 2},<br>headers={"X-Api-Key": KEY},<br>open("shot.jpg", "wb").write(r.content)
Pricing
Usage-based. Card, not a sales call.
Every plan is the full API — all formats, full-page, retina, SSRF protection. Pick by volume; upgrade when you outgrow it.
Free
$0
100 renders / mo
for kicking the tyres
All formats<br>Full-page & retina<br>Community support
Start free
Starter
$9/mo
10,000 renders
$0.90 / 1,000
Everything in Free<br>Email support<br>Overage $1.20/1k
Choose Starter
Most popular<br>Growth
$29/mo
50,000 renders
$0.58 / 1,000
Priority queue<br>Chat support<br>Overage $0.80/1k
Choose Growth
Scale
$99/mo
250,000 renders
$0.40 / 1,000
Dedicated capacity<br>SLA on request<br>Overage $0.50/1k
Choose Scale
How it stacks up
rasterly vs the incumbents
Same job — a URL in, an image or PDF out. The difference is the invoice.
50,000 renders / monthrasterlyUrlboxScreenshotOneSnapAPI
Monthly price$29 ~$99$259$79<br>Per 1,000$0.58 ~$1.98$5.18$1.58<br>PNG / JPEG / PDFAll threeAll threeAll threeScreenshots<br>Full-page & retinaYesYesYesYes<br>SSRF-guardedYesYesYesunstated<br>Sign up with a cardYesYesYesYes<br>MigrationDrop-in URL swap———
Deep dives:Best screenshot APIs 2026rasterly vs Urlboxvs ScreenshotOnevs ApiFlashvs Browserlessvs HTMLCSStoImage
Competitor prices are public list prices observed August 2026 and are shown for comparison only; check each vendor for current pricing. Urlbox has no exact 50k tier — figure interpolated from its published plans. rasterly is not affiliated with Urlbox, ScreenshotOne or SnapAPI.
Questions
The honest FAQ
How is it so much cheaper?A screenshot is a headless browser rendering a page and handing back the bytes. We reuse one browser across requests, so a warm render is about a second of CPU — cents, not dollars. The incumbents price on brand, not cost. We pass the real cost through.
Is it really drop-in for Urlbox?The request is the same shape: a base URL, an url= param, and options like full_page and format. In most codebases you change the hostname and the key. Formats and options map one-to-one for the common cases.
Can someone screenshot my internal servers through it?No. Every target URL is resolved and checked before we open a page; requests to localhost, *.local, and any address in a private, link-local or cloud-metadata range (like 169.254.169.254) are refused with a 403. This is enforced, not a setting.
What happens when I go over my plan?You keep rendering at the per-plan overage rate shown above — no hard stop mid-month, no surprise plan bump. You can set a spend cap in the dashboard.
PDF too, or just images?PDF is a first-class format — pass format=pdf and you get a print-ready A4 with backgrounds. Same endpoint, same price.