Website thumbnail API
Website thumbnail API for SaaS products
Show a clean, current preview next to every URL in your product. Send the URL, get a PNG, JPEG or WebP back with cookie banners and ads removed, and cache it so repeat requests cost nothing. Built for directories, bookmark tools, CRMs and dashboards.
200 free thumbnails a monthNo cardCached repeats are free

Every card in the grid looks finished
Open Graph images are missing on many sites, the wrong shape on others, and a home-grown screenshot worker catches every cookie dialog. A thumbnail API fixes all of it in one call.
-
Same size, every site
You pick the viewport and the format, so every listing gets a thumbnail with the same shape, rendered after the page's scripts run.
-
The site, not the consent dialog
Cookie banners, GDPR overlays and ads are removed by default, so the grid shows products, not pop-ups.
-
Repeat requests are free
With
cache=truethe same thumbnail comes back in under 200 ms for up to 30 days, and cached hits never count against your quota.
A thumbnail recipe that holds up
The settings directories use most, in one request.
- 1280 by 800 viewport. A desktop layout that scales down well to a card.
- WebP at quality 80. The smallest files for a page full of images.
- Cache for 30 days.
cache=truewithcache_ttl=2592000on Growth and above. - A device preset for mobile cards.
iphone_15_proorpixel_7for a phone-shaped preview. - Fill the backlog with batches. Up to 50 URLs per call, each with a download link.
curl "https://app.snap-render.com/v1/screenshot?url=https://producthunt.com&format=webp&width=1280&height=800&quality=80&cache=true&cache_ttl=2592000" \
-H "X-API-Key: sk_live_your_key_here" \
--output thumbnail.webpimport { SnapRender } from 'snaprender';
import { writeFileSync } from 'node:fs';
const snap = new SnapRender({ apiKey: 'sk_live_your_key_here' });
const thumbnail = await snap.capture({
url: 'https://producthunt.com',
format: 'webp',
width: 1280,
height: 800,
quality: 80,
cache: true,
cacheTtl: 30 * 24 * 3600,
});
writeFileSync('thumbnail.webp', thumbnail);from snaprender import SnapRender
snap = SnapRender(api_key="sk_live_your_key_here")
thumbnail = snap.capture(
"https://producthunt.com",
format="webp",
width=1280,
height=800,
quality=80,
cache=True,
cache_ttl=30 * 24 * 3600,
)
with open("thumbnail.webp", "wb") as f:
f.write(thumbnail)
Every parameter: screenshot reference.
Who uses a website thumbnail API
Any product that stores URLs and shows them to people.
-
Directories and marketplaces
A thumbnail for every listed product or site. Backfill the catalog 50 URLs at a time, then capture new listings as they arrive.
Batch screenshots -
Bookmark and read-later tools
A preview for every saved link, loaded straight into an image tag with a signed URL, so your key never reaches the browser.
Signed URLs -
CRMs and internal dashboards
A website preview on every company record, so a sales team sees who they are talking to without opening a tab.
Read the guide -
Feeds, chat and link shorteners
A preview image for links whose sites do not provide one, sized for social cards.
Link previews
Screenshots as an API call
Send a GET request, get a PNG back. Ads and cookie banners blocked by default.
200 free renders a month. Paid plans start at $9.
SnapRender or your own Puppeteer?
Self-hosting looks free until the browser needs care. Here is what moves off your plate.
| SnapRender | Self-hosted Puppeteer | |
|---|---|---|
| Setup | An API key and one request | Chromium, fonts, a server and a queue |
| Cookie banners | Removed by default | Your own rules, site by site |
| Caching | cache=true, up to 30 days | Storage and expiry you build |
| Crashes and updates | Handled for you | Memory leaks and restarts are yours |
| 10,000 thumbnails a month | $29 on Growth | A server plus your time |
The full math: the real cost of self-hosting screenshots.
Pricing that grows with your catalog
Start free with 200 thumbnails a month. Cached repeats are free on every plan.
| Plan | Price | Thumbnails a month | Captures a minute | Cache up to |
|---|---|---|---|---|
| Free | $0 | 200 | 10 | 1 day |
| Starter | $9 | 2,000 | 30 | 7 days |
| Growth | $29 | 10,000 | 60 | 30 days |
| Business | $79 | 50,000 | 120 | 30 days |
| Scale | $199 | 200,000 | 200 | 30 days |
Every plan has every feature: PNG, JPEG, WebP and PDF, device presets, batches, signed URLs and webhooks. All plans and yearly prices.
Try a thumbnail now
Paste any URL and see the capture your users would see, with the API call that made it. No sign-up.
Comparing providers? See the thumbnail API breakdown.
Try it on your URL
Live capture, no signup. You get the screenshot and the exact API call that produced it.
This is the exact API call that made the image above. Swap in your key and it runs anywhere.
200 renders a month free.
You hit the free demo limit here. The full tool can verify you are human and keep going.
Continue in the full toolQuestions
What is a website thumbnail API?
An API that turns a URL into a preview image. Instead of running your own headless browser, you send the URL and get a rendered PNG, JPEG or WebP back. Directories, bookmark managers, CRMs and listing sites use it to show what each site looks like.
How do I generate thumbnails for thousands of URLs?
Send them in batches of up to 50, or one request per URL as listings are added. Paid plans capture 30 to 200 pages a minute and include up to 200,000 renders a month.
How does caching work?
Add cache=true and SnapRender keeps the image for cache_ttl seconds: up to 1 day on Free, 7 days on Starter and 30 days on Growth and above. A cached image comes back in under 200 ms and does not count against your quota. Leave the cache off when you want a fresh capture.
Do I need to run Puppeteer or a headless browser?
No. SnapRender runs the browsers, keeps them updated and recovers from crashes. You make an HTTP request and get an image.
Are cookie banners and ads removed?
Yes, by default. Thumbnails show the site, not a consent dialog. Set block_cookie_banners=false or block_ads=false if you want the page exactly as a first-time visitor sees it.
Can I make mobile thumbnails?
Yes. Pass a device preset: iphone_14, iphone_15_pro, pixel_7, ipad_pro or macbook_pro. Each sets the screen size, pixel density and user agent of that device.