url2image Start a batch
url2image

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 list

Questions

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.

Starter
$5
2,500 shots · $0.002 each

Enough to shoot a competitor set, a client portfolio, or a sitemap crawl.

Scale
$75
75,000 shots · $0.001 each

For monitoring pipelines and agent fleets that render around the clock.

Bulk
$250
350,000 shots · $0.000714 each

Archive work, whole-market sweeps, and anything with a seven figure URL list.

See what a credit covers