Full JavaScript Execution
React, Vue, Angular, Next.js apps rendered correctly. ScreenshotAPI waits for scripts to execute, components to hydrate, and async data to load before capturing. No blank pages, no missing content.
lazy_load=trueCapture full-page or viewport screenshots of any website with a single API call or save any page as a clean PDF without ads. ScreenshotAPI runs a real Chromium browser, automatically blocks ads and cookie banners, and renders JavaScript-heavy pages correctly.
Used by 10,000+ developers to capture, monitor, and archive web pages at scale. Full-page or viewport screenshots, PDF export, and scheduled captures through one REST API.
What Our Customers Say















































































Self-hosting Puppeteer sounds simple - until you're debugging Chrome zombie processes at 3 AM. ScreenshotAPI gives you a fully managed Chromium rendering infrastructure so your team ships features instead of babysitting browsers.
The hidden cost of self-hosted Puppeteer
| Criteria | Self-hosted | ScreenshotAPI |
|---|---|---|
| Infrastructure cost | High (servers + DevOps) | Included |
| Setup time | Days–weeks | < 5 minutes |
| Scaling | Manual orchestration | Automatic |
| JS rendering | Manual configuration | Built-in |
| Ad/cookie blocking | Custom rules required | 20,000+ rules built-in |
| Maintenance | Ongoing (your team) | Zero |
const puppeteer = require('puppeteer');
// Launch browser (manage memory, crashes, zombie procs)
const browser = await puppeteer.launch({
headless: 'new',
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage' // avoid OOM in Docker,
'--disable-gpu',
'--single-process'
],
});
const page = await browser.newPage();
await page.setViewport({ width: 1280, height: 800 });
// Block ads manually (maintain your own rule list)
await page.setRequestInterception(true);
page.on('request', (req) => {
if (req.resourceType() === 'image' || ... ) {
req.abort();
} else {
req.continue();
}
});
// Handle lazy-load (custom scroll logic per site)
await page.evaluate(async () => {
await new Promise((resolve) => {
let totalHeight = 0;
const timer = setInterval(() => {
window.scrollBy(0, 100);
totalHeight += 100;
if (totalHeight >= document.body.scrollHeight) {
clearInterval(timer);
resolve();
}
}, 100);
});
});
await page.screenshot({ path: 'screenshot.png', fullPage: true });
await browser.close(); // hope it doesn't zombie// No browser to install. No cluster to manage.
// Lazy-load, ad-blocking, and full-page: automatic.
const screenshot = await fetch(
`https://shot.screenshotapi.net/screenshot
?token=YOUR_API_KEY
&url=https://example.com
&full_page=true
&block_ads=true
&no_cookie_banners=true
&lazy_load=true
&output=image`
);A single screenshot API that captures high-quality website and full-page screenshots, records scrolling video, saves any webpage or raw HTML as a PDF without ads, and extracts page text. All at scale, with no headless browser to maintain. One endpoint, 75+ parameters, real Chromium rendering.

Convert any URL to a high-quality full page screenshot or viewport snapshot instantly. ScreenshotAPI automatically blocks ads, cookie banners, and trackers for a clean, distraction-free result. Supports authentication, custom devices, dark mode, and dynamic content rendering - built for developers and businesses who need fast, automated website screenshots at scale.
Turn any live URL into a clean, shareable PDF with a single API call, including HTML to PDF conversion. ScreenshotAPI preserves layouts, fonts, and dynamic content while automatically removing ads, cookie banners, and tracking scripts. Perfect for archiving, compliance reports, invoice generation, and automated PDF workflows.
Schedule automated website screenshots with cron expressions (hourly, daily, or weekly). ScreenshotAPI captures full page snapshots on your schedule and stores each one to your own S3, Google Cloud, or Wasabi bucket. Use it to monitor visual changes, track competitor pages, and keep a timestamped archive.
Capture the entire page of any webpage as a scrolling video in MP4, GIF, or WebM format. ScreenshotAPI automatically scrolls to the bottom of the page - capturing every section, including dynamically loaded and infinite scroll content. Perfect for documentation, visual audits, and full page content monitoring without missing a single element.
Screenshot hundreds or thousands of websites in one go with our Bulk Screenshot API. Simply upload a list of URLs (CSV or JSON) and ScreenshotAPI processes them automatically - generating clean, ad-free, uniform screenshots at scale. Ideal for large-scale website monitoring, SEO audits, competitive analysis, and automated reporting workflows.
Combine powerful visuals with structured data extraction using the Website Scraping feature. Capture screenshots and extract key information - such as titles, metadata, prices, or text content. Ideal for research, analytics, and competitive intelligence, it delivers clean HTML or website content.
Turn a webpage or raw HTML into a clean PDF, convert any URL to an image, or record a full scroll as video by changing one parameter. Pick the format that fits the job.
Best for: Save a webpage or news article as PDF. Without ads or cut-off content. Invoices, reports, archiving.
Best for: Visual QA, sharp UI captures, transparency
Best for: Thumbnails, lightweight previews
Best for: Smaller files at the same quality, web delivery
Best for: Record a full scroll of long or infinite pages
Best for: Lightweight scroll previews and demos
These are the most-used of 75+ options. Combine any of them in a single request.
Visual regression testing catches the UI bugs functional tests miss, a shifted button, a broken font load, a layout that collapsed on mobile.
Integrate ScreenshotAPI into your CI/CD workflow. On every deployment, trigger a screenshot via HTTP. Compare against your baseline. Ship with confidence.
Consistent cross-environment rendering
Every screenshot runs in the same Chromium version and configuration. No cross-machine rendering differences to corrupt your baseline comparisons between CI and local.
Multi-viewport captures in one call
Capture desktop (1280×800), tablet (768×1024), and mobile (375×812) variants by sending parallel API requests. Test responsive breakpoints automatically on every deployment.
Dark mode regression coverage
Add dark_mode=true to capture your UI in dark theme. Catch light/dark theme regressions before any user reports them.
Component-level selector captures
Use the selector parameter to screenshot a specific element rather than the full page. Faster diffs, less noise.
Incognito mode for clean baselines
Screenshot in a clean, cookie-free browser state via incognito=true. Eliminates session contamination between test runs.
Zero infrastructure to maintain
No browser clusters, no Chrome version pinning, no scaling headaches. A plain HTTP call in any test runner that's all.
Example: CI/CD screenshot capture script
Desktop
1280×800
Tablet
768×1024
Mobile
375×812
Pro tip: Use the selector parameter (e.g. &selector=#checkout-form) for smaller images and faster diffs.
Every capture runs inside a full, isolated Chromium instance the same rendering engine as Google Chrome. No simplified parsers, no HTML-to-image converters. The modern web executes JavaScript; so does ScreenshotAPI.
Chromium
Rendering engine
20K+
Ad-blocking rules
75+
API parameters
99.9%
Uptime SLA
React, Vue, Angular, Next.js apps rendered correctly. ScreenshotAPI waits for scripts to execute, components to hydrate, and async data to load before capturing. No blank pages, no missing content.
lazy_load=trueFull page screenshots automatically scroll through the entire page before taking the screenshot triggering lazy-loaded images, off-screen elements, and infinite-scroll sections. Nothing is clipped.
full_page=trueOur built-in blocking engine eliminates ads, GDPR consent banners, cookie pop-ups, chat widgets, and tracking scripts before capture. Clean screenshots, every time, zero manual selector config.
block_ads=true&no_cookie_banners=trueUse the delay parameter for animation-heavy pages, wait_for_selector to hold until a specific DOM element appears, or networkidle to wait for all async requests to settle before capture.
delay=2000Capture at any viewport (desktop, tablet, mobile). Set exact width/height, pixel density (retina 2×), user agent, dark mode, language, and geolocation. One API, every screen size.
retina=true&dark_mode=trueScreenshot pages behind login walls by injecting session cookies or custom headers directly into the request. Capture authenticated dashboards, paywalled content, and internal tools.
cookies=session_id=abc123See how ScreenshotAPI fits web archiving, testing, scheduled screenshots, PDF generation, and more.
Explore All FeaturesMost screenshot APIs stop at capturing an image. ScreenshotAPI bundles screenshots, PDF export, scrolling video, data extraction, scheduling, and bulk processing behind a single REST endpoint. So you rarely have to stitch two or three services together. Looking for a url2png or site-shot alternative? This is where they land.
| Capability | ScreenshotAPI | ScreenshotMachine | Microlink | ScreenshotOne |
|---|---|---|---|---|
| Screenshots (viewport + full page) | Yes | Yes | Yes | Yes |
| Save a webpage as PDF (without ads / cut-off) | Yes | Yes | PDF | Yes |
| Scrolling video (MP4 / GIF / WebM) | Yes | No | No | Yes |
| Data extraction (HTML / text) | extract_text / extract_html | No | Metadata / HTML | Limited |
| Scheduled captures (cron) | Built-in | No | No | No |
| Bulk capture (CSV / JSON) | Built-in | No | No | No |
| Store to your own cloud bucket | S3 / GCS / Wasabi (private) | No | Hosted CDN | S3 Compatible only |
| Ad & cookie-banner blocking | 20,000+ rules | Partial | Partial | Yes |
| Free tier | 100 Screenshot, No Card Required | 100 / mo | Free tier | 100 / mo |
In short
Choose ScreenshotAPI when you want screenshots and PDF, scrolling video, scraping, scheduling and bulk in one API, with captures saved to your own private cloud bucket. Choose a single-purpose competitor if you only ever need a plain image and nothing else.
Call ScreenshotAPI from Node.js, Python, PHP, Ruby, Go, or Java. Every capture is a single HTTP request, so integration is a few lines in any stack. Copy a working snippet below.
ScreenshotAPI powers automated workflows across every industry from CI/CD pipelines to compliance archiving, AI agents to no-code marketing tools.
Track SERP ranking pages, competitor pricing, and content changes automatically. Schedule daily screenshots of any URL and get a timestamped visual archive. No browser required.
Integrate screenshot capture directly into your deployment pipeline. Capture before/after renders on every commit and compare across viewport breakpoints automatically.
Capture tamper-evident, timestamped full-page screenshots of web content. Store directly to your private S3, Google Cloud, or Wasabi bucket - full data ownership.
Generate dynamic og:image assets for every blog post, product page, and user profile at publish time. Links with custom previews get 2–3 times more clicks on social.
Capture product pages from dozens of competitors on a weekly schedule. Combined with extract_text, each capture returns structured price data alongside the visual screenshot.
Monitor critical webpages for visual updates, layout changes, broken UI sections, or unexpected content modifications. Capture scheduled screenshots automatically and maintain a reliable visual history.
Trigger screenshots from any event in your existing workflows - form submissions, Slack alerts, CRM updates, or scheduled jobs, without writing a single line of code.
Build a time-stamped visual archive of any website. Document brand evolution, track regulatory page updates, or preserve historical records of live web content.
Don’t see your use case? Browse the full API reference - 75+ parameters cover virtually any workflow.
Start Free with 100 ScreenshotsScreenshotAPI is free to start. Every account includes 100 screenshots with no credit card required. Enough to build and test a full integration. Upgrade only when your volume grows.
Everything you need to build and test.
For production workloads and scale.
Programmatic automation for teams.
If you are hesitating, do not worry. We are here to explain everything you might want to know. Let us help!
Don't see your question here?
Browse all help articlesI am 1 of the 3 owners of https://adultventure.euWe have a large dating platform, which is active in 12 countries. We make our own tools that can be used by our affiliates for promotion.We also need...
Owner of adultventure.eu
Screenshotapi.net is one of the most simple yet amazing service that saved us hours of development. I have used (and still using) their API for 8 months already without a hitch.The best part we loved...

Co-Founder & CTO at Cooee
I am using your API to download the screenshot via PHP and then using the screenshot image without further requirement of the API get request.The screenshots are perfect and I really appreciate the q...
Owner at Applestreet
Discover how our product has helped businesses and individuals achieve their goals, directly from the people who use it every day.
I am 1 of the 3 owners of https://adultventure.euWe have a large dating platform, which is active in 12 countries. We make our own tools that can be used by our affiliates for promotion.We also need print screens for certain tools, that's why I hav...
Owner of adultventure.eu