A screenshot API with one price and no plan to outgrow.
Two endpoints do almost everything. There is no SDK to install and no plan tier that quietly caps your resolution.
One URL, one image
The response body is the image. No job id, no polling, no second request. Use this when a person is waiting on the other end of the call.
curl -X POST https://url2image.com/api/v1/shot \
-H "Authorization: Bearer $URL2IMAGE_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://stripe.com","width":1440,"full_page":true}' \
--output stripe.png
Many URLs, one zip
Batches render in parallel and report per URL state, so a partial failure is visible rather than silently missing from the zip.
curl -X POST https://url2image.com/api/v1/batch \
-H "Authorization: Bearer $URL2IMAGE_KEY" \
-H "Content-Type: application/json" \
-d '{"urls":["https://stripe.com","https://vercel.com"],"format":"png"}'
# then
curl https://url2image.com/api/v1/jobs/$ID -H "Authorization: Bearer $URL2IMAGE_KEY"
curl -L https://url2image.com/api/v1/jobs/$ID/download -o screenshots.zip
What you can control
Viewport width and height, device pixel density up to 3x for retina output, full page or fold only, light or dark colour scheme, an extra settle delay for pages that animate in, cookie banner suppression, JPEG quality, and the output format.
What you cannot control is authentication. Only public pages render, by design.
Pricing that does not change shape as you grow
There is one unit: a rendered page. It costs the same whether it is a phone viewport PNG or a retina full page capture, whether a person or an agent asked for it, and whether it came through the REST API or the MCP server. Buying more credits lowers the unit price and nothing else changes.
Try it on your own list first.
10 screenshots a month cost nothing and need no card. If it works on your list, credits start at $0.002 each and never expire.
Paste a listQuestions
Is there a rate limit?
Requests are rate limited per IP to keep one caller from starving the render pool. Batches are the right way to submit volume, and they are not affected.
Do you have webhooks?
Not yet. Poll the batch endpoint; it is cheap and returns per URL state so you can start using early results before the batch finishes.
Can I use it without a key?
Yes, anonymously from a browser. For scripts, mint a key so your credits and batches stay attached to one account.
Pricing, in full
Per screenshot, prepaid, no expiry.
Enough to shoot a competitor set, a client portfolio, or a sitemap crawl.
The usual pick once a nightly job is running against your own URL list.
For monitoring pipelines and agent fleets that render around the clock.
Archive work, whole-market sweeps, and anything with a seven figure URL list.