Screenshot any website with one API call
ScreenshotBee renders pixel perfect captures of any URL or raw HTML in a real browser. Full page, any device, clean output. You buy credits once, they never expire, and failed captures cost nothing.
100 free credits · No credit card · Live in minutes
One request in, one screenshot out
Send a URL or raw HTML with the options you need. We spin up a real browser, wait for the page to settle and return a pixel perfect capture.
curl -X POST \
"https://screenshotbee.com/api/capture-screenshot" \
-H "x-api-key: sb_live_9f2c..." \
-d '{
"url": "https://stripe.com",
"type": "png",
"full_page": true
}'One credit per successful capture. Failed captures are never charged.
Clean captures, exactly as your users see them
Web pages fight screenshots: lazy loading, cookie banners, fonts that load late, layouts that shift. We handle the corner cases so every capture comes back clean.
Full page capture
Scrolls the whole page, triggers lazy loaded content and stitches one seamless image.
Device emulation
Capture how any page renders on real phones, tablets and desktops, retina included.
Hello, world!
</h1>
HTML to screenshot
Send raw HTML and get back an image. Perfect for social cards, invoices and certificates.
Element screenshots
Target a CSS selector and capture just that element, nothing else.
Scheduled screenshots
Monitor pages on a schedule without writing a single cron job.
Wait conditions, timezone control, scroll easing and video recording of the capture are all one parameter away.
Works with your stack
One plain HTTP request. If your stack can POST JSON, it already works.
Easy to get started
Sign up, copy your API key and capture your first screenshot in under five minutes.
Private and secure
Your captures belong to you. API access is key scoped and served over HTTPS only.
Real tech support
Questions get answered by the people who build the product, not a bot maze.
replaces your entire capture stack
phones, tablets and desktops ready to emulate
your balance waits for you, forever
One screenshot API, a thousand jobs
Wherever someone is taking screenshots by hand, or a Puppeteer script is quietly failing, an API does it better. These are the workloads teams bring us.
Website thumbnails and link previews
Generate link previews and website thumbnails for any URL inside your product. Directories, marketplaces, portfolio grids and bookmarking tools stay current without running a browser farm.
Competitor monitoring
Capture competitor pages on a schedule and watch pricing, messaging and design changes land in your activity feed. Website change detection without a scraping stack to maintain.
Compliance archiving and digital evidence
Archive ads, disclosures and published pages with timestamps for regulatory and legal records. When someone asks what a page said last March, you have dated proof.
Price monitoring at catalog scale
Screenshot thousands of product listings for price tracking, MAP enforcement and catalog audits. Batch friendly rate limits keep large jobs moving.
Open Graph images and social cards
Render Open Graph images, Twitter cards and certificates from your own HTML templates. One template, thousands of unique images, generated on publish.
Brand monitoring and ad verification
Prove where your brand and your ads actually appeared. Capture placements, affiliate pages and partner sites on a schedule and keep a visual record of every one.
White label client reporting
Agencies deliver visual proof of published campaigns and page changes in client reports, without anyone taking screenshots by hand at month end.
Visual regression testing
Capture the same pages on every deploy and diff them to catch layout breaks before your users do. Visual testing that needs no browser infrastructure of your own.
Retire your self built screenshot system
Running Puppeteer in production means sandbox flags, memory leaks, zombie processes and Chrome updates at 2am. Teams replace all of it with one HTTP request and get their week back.
const browser = await puppeteer.launch({
args: ["--no-sandbox", "--disable-gpu"],
});
const page = await browser.newPage();
await page.setViewport({ width: 1440, height: 900 });
await page.goto(url, { waitUntil: "networkidle0" });
// dismiss cookie banners...
// scroll to trigger lazy loading...
// wait for fonts and animations...
// retry on timeout, handle crashes...
// scale it, patch Chrome, repeat forever
const buffer = await page.screenshot({ fullPage: true });
await browser.close();POST /api/capture-screenshot
{ "url": "https://example.com", "full_page": true }From signup to screenshot in minutes
Create your free account
Sign up and your API key is waiting in the dashboard, with 100 free credits already loaded. No credit card, no sales call.
Send one request
Post a URL or raw HTML with the options you need: format, viewport, device, full page, wait conditions. Most teams are live in under ten minutes.
Get a pixel perfect image back
A real browser renders the page, we handle the corner cases, and you get a clean capture back. Only successful screenshots use a credit.
Pay once. Screenshot whenever.
Most screenshot APIs sell subscriptions, gate features by tier and delete your unused quota every month. We sell credits from $9.00 per 1,000 screenshots, down to $3.50 per 1,000 at volume, and we keep four promises.
Credits never expire
Buy 10,000 screenshots today, use the last one in two years. Nothing resets, nothing vanishes at month end.
Failed captures are free
A credit is only spent when we deliver a screenshot. Errors, timeouts and blocked pages cost you nothing.
Volume discounts, no tiers
The bigger the pack, the cheaper each screenshot. You unlock the rate by buying more, not by upgrading to a plan that gates features.
No monthly bill
Screenshot workloads are bursty. Pay for the burst, pay nothing for the quiet months in between.
Frequently asked questions
Have a question that is not answered here? Reach out from the support page and a human will reply.
Create a free account, copy your API key from the dashboard and send your first request. New accounts come with 100 free credits, so there is nothing to pay and no card to enter. Most teams capture their first screenshot in under ten minutes.
Ready to capture? Start today with 100 free credits.
Ship screenshots into your product this afternoon and only pay for what you actually use.
Get your API keyNo credit card requiredScreenshot APIs, explained
New to automated screenshots? Here is what a website screenshot API does, what teams build with one, and why they stop rolling their own.
What is a screenshot API?
A screenshot API is a web service that turns a URL or a block of HTML into an image through a single HTTP request. Instead of installing headless browsers, managing Chrome versions and handling timeouts yourself, you send a request and receive a rendered PNG, JPEG or PDF back. ScreenshotBee runs real browsers behind the API, so pages render exactly the way your users see them, web fonts, JavaScript frameworks and lazy loaded content included.
From URL to image, or HTML to image
Point the API at any public URL to capture a live page, or send raw HTML to render your own templates into images. The URL path powers website thumbnails and link previews inside directories, marketplaces and bookmarking tools. The HTML to image path powers Open Graph images, Twitter cards, certificates, invoices and any graphic you want to generate programmatically. Both support full page capture, custom viewports, device emulation and element level screenshots through a CSS selector.
Automated screenshots on a schedule
Screenshot automation should not require a cron server. Schedules built into the dashboard capture any page every hour, every six hours, every twelve hours or once a day, and store the history in your activity feed. This is the backbone of competitor monitoring, brand monitoring, website change detection, compliance archiving and visual regression checks after every deploy. Every capture is timestamped, so the archive doubles as digital evidence when a regulator, a client or a partner asks what a page said on a given date.
Built for production workloads
Every capture runs in an isolated browser session over HTTPS. Batch jobs move quickly because rate limits are designed for real workloads, not to upsell you a bigger plan, which matters when you are screenshotting a full product catalog for price monitoring or running visual regression tests on every deploy. And because billing is pay as you go, scaling from a hundred screenshots to a hundred thousand is a top up, not a contract renegotiation.