Website screenshots without cookie banners or half-loaded images.
Capture a full page, one element or a 1200×630 social card as PNG, JPEG or WebP. Ads and consent pop-ups are removed, and lazy images load before the shot. 25,000 screenshots for $15 a month.
Free plan: 100 renders a month with every feature. No card needed.
Try it on any site
Your result appears here. Ads and cookie banners are removed in this demo.
Get this from your own code. The same request as an API call:
What you get
Clean captures
Cookie banners, ads and chat widgets removed. Hide anything else with a CSS selector.
Full page or one element
Lazy images load first. Or pass a selector to capture just a chart or a pricing table.
Social cards from HTML
Design a 1200×630 card in HTML and CSS and get a PNG back.
Retina and dark mode
device_scale_factor up to 3, and prefers-color-scheme: dark.
One request
The response body is the file. Errors come back as JSON with a code you can switch on.
curl https://rendersbolt.com/v1/screenshot \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://stripe.com","full_page":true,"format":"webp","block_ads":true,"block_cookie_banners":true}' \
-o stripe.webp
const res = await fetch('https://rendersbolt.com/v1/screenshot', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ url: 'https://stripe.com', full_page: true, format: 'webp', block_cookie_banners: true }),
});
const image = Buffer.from(await res.arrayBuffer());
r = requests.post(
"https://rendersbolt.com/v1/screenshot",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={"url": "https://stripe.com", "full_page": True, "format": "webp", "block_cookie_banners": True},
)
open("stripe.webp", "wb").write(r.content)
What 1,000 renders cost
We run on our own hardware, so the price per render is a fraction of what most hosted APIs charge.
| Service | Plan | Per 1,000 | Per month | Included |
|---|---|---|---|---|
| render-bolt Starter | Starter | $0.60 | $15 | 25,000 renders |
| render-bolt Growth | Growth | $0.39 | $39 | 100,000 renders |
| ScreenshotOne Basic | Basic | $8.50 | $17 | 2,000 screenshots |
| ScreenshotOne Growth | Growth | $7.90 | $79 | 10,000 screenshots |
| Urlbox Hi-Fi | Hi-Fi | $9.80 | $49 | 5,000 renders |
| Urlbox Ultra | Ultra | $6.60 | $99 | 15,000 renders |
List prices from each provider's public pages, checked October 2026: ScreenshotOne, Urlbox. All plans
Questions
Can I use it in an img tag?
Yes, with GET and access_key. Only do that on pages you alone see, because the key is visible in the URL.
Which sites can't be captured?
Pages behind a login and sites that show an interactive bot challenge.
Are failed screenshots charged?
No. Timeouts, unreachable sites and invalid parameters are free.
Read next
Render your first page in a minute
100 free renders every month. Upgrade only when you need more.