Send a URL, get an image back. One GET request, binary response, no JSON envelope — so the URL drops straight into an <img src>.
curl -o website.png \
"https://api.screenshotline.com/take?url=https%3A%2F%2Fexample.com\
&access_key=YOUR_KEY\
&block_cookie_banners=true\
&full_page=true"
Render the page once, cache it, serve it. Cache hits are never billed.
Capture a list of URLs at a fixed viewport and diff them over time.
Watch a competitor page or your own checkout for visual regressions.
Embed a live view of a dashboard or a landing page into a PDF.
Most screenshot failures are not crashes. They are a 200 with the wrong picture — a consent wall, a half-loaded page, a blank frame your pipeline records as a success. These are the ones a 202-page benchmark of the real web actually found:
18 news front pages — consent walls, lazy images, heavy embeds — captured through three APIs on the same day at the same viewport.
| 18 news pages | Screenshotline | ScreenshotOne | ApiFlash |
|---|---|---|---|
| Captured | 18/18 | 17/18 | 18/18 |
| timesofindia.com | 414 KB | 261 KB | 358 KB |
Free: 500 renders a month, no credit card. Then $17 for 2,000, $79 for 10,000, $259 for 50,000 — with overage priced below the plan rate, so a spiky month costs less per render rather than more.
Failed renders and cache hits are never billed. Most APIs promise that; blank detection is what lets this one mean it literally.
The renderer is AGPL-3.0 and self-hostable — the same code that runs here, with nothing held back for the hosted version. Read it before you trust it, or run it yourself. The paid product is the hosted API: a warm browser pool, a cache, and someone else's pager.