Website Screenshot API — Full Page, Mobile & Batch Screenshots
Pricing
$1.50 / 1,000 screenshots
Website Screenshot API — Full Page, Mobile & Batch Screenshots
Screenshots of any URL: viewport or full page, mobile/desktop, dark mode, element selector, delay, blocking cookie banners; returns PNG/JPEG/WebP links. Unofficial Screenshot API.
Pricing
$1.50 / 1,000 screenshots
Rating
0.0
(0)
Developer
yestrue
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
Turn any list of URLs into PNG, JPEG or WebP screenshots — first screen or full page, desktop, tablet or mobile, light or dark, with cookie banners hidden. Every image is stored for you and comes back as a link in the dataset, next to the page's final address, title and size. Built for agents, QA, monitoring and content pipelines that need to see a page, not just read it.
Try it in 1 minute:
- Press Start — the prefilled input captures
https://example.comand the Wikipedia article on web scraping on a 1280×800 desktop screen. - Open the Output tab: one row per page with the image preview, its link, width, height and the page title.
- Price: $1.50 per 1,000 screenshots. Pages that cannot be captured (404, timeout, no such element) are free.
Use it to:
- Let an AI agent verify what a page looks like after a change, a deploy or a scrape.
- Build link previews and thumbnails for a directory, newsletter or CMS in bulk.
- Monitor competitors and landing pages daily and keep a visual archive.
- Check responsive layouts on mobile and tablet without a device lab.
- Capture a single element (a pricing table, a chart, a hero section) for a report or a Slack message.
How it works
A real headless Chromium (Playwright) opens each URL with the device profile you chose, waits until the page has loaded (and for the optional delay), hides common cookie and consent banners with CSS, and takes the shot: first screen, whole page or one element. The image goes to the run's key-value store and the dataset row carries its public link. Pages are processed in parallel, and a page that times out or fails on the network is tried again on a fresh route before it is given up.
Only public pages: there is no login, no captcha solving and no bot-wall circumvention. A page that answers 404 is reported as NOT_FOUND; a server error or a timeout as FAILED — both free.
A browser run costs more compute than a plain HTTP fetch; the default memory and Parallel pages of 3 are tuned for it. Raise the memory in the run options if you raise the parallelism.
Input
| Field | What it does | Default |
|---|---|---|
urls | Pages to capture, one per line | the two example pages |
fullPage | Whole scrollable page instead of the first screen | false |
device | desktop 1280×800, tablet 768×1024, mobile 390×844 (iPhone, 3× scale) | desktop |
format | png, jpeg or webp | png |
delay | Extra wait after load, up to 15,000 ms | 0 |
selector | CSS selector: capture only the first matching element | — |
width, height | Viewport override in pixels (0 keeps the device's) | 0 |
darkMode | Ask the page for its dark colour scheme | false |
hideCookieBanners | Hide common consent banners with CSS (best effort) | true |
waitUntil | load, domcontentloaded or networkidle | load |
quality | JPEG / WebP quality, 1–100 | 80 |
timeout | Page timeout in ms | 30000 |
maxConcurrency | Pages captured at the same time | 3 |
proxyConfiguration | Used only for retries after a network failure | Apify Proxy |
Output
One record per page:
| Field | What it is |
|---|---|
screenshotUrl | Link to the image in the run's key-value store (public to anyone with the link) |
key | Key of the image in that store |
url, finalUrl | The address opened and where it ended up after redirects |
title, httpStatus | The page's title and the main document's HTTP status |
width, height, bytes, format | Image size in pixels and bytes, and its format |
fullPage, device | How it was captured |
status, error | OK, or NOT_FOUND / INVALID_INPUT / FAILED with the reason |
input, scrapedAt | What you gave, and when the shot was taken |
Example
{"input": "https://en.wikipedia.org/wiki/Web_scraping","url": "https://en.wikipedia.org/wiki/Web_scraping","finalUrl": "https://en.wikipedia.org/wiki/Web_scraping","title": "Web scraping - Wikipedia","httpStatus": 200,"screenshotUrl": "https://api.apify.com/v2/key-value-stores/aBcDeFgHiJkLmNoPq/records/screenshot-2-en.wikipedia.org.png","key": "screenshot-2-en.wikipedia.org.png","width": 1280,"height": 800,"fullPage": false,"device": "desktop","format": "png","bytes": 184233,"status": "OK","scrapedAt": "2026-10-19T12:34:56.000Z"}
Pricing
You are charged per screenshot delivered — see the price on this page. Pages that give no image (404, timeout, no matching element, not a web address) are free. A run also uses Apify platform compute; a browser needs more of it than an HTTP fetch, so keep runs batched.
FAQ
Is this an official API? No, it's an unofficial API built on public pages. It opens the same pages your browser would.
How long do the images stay available? As long as the run's key-value store exists — 7 days on the free plan, longer on paid plans (see Apify storage retention). Copy the images to your own storage if you need them for good. Run a named task if you want a predictable store.
Why does my screenshot still show a cookie banner? Banners are hidden by CSS patterns covering the common consent managers; a custom banner may slip through. Nothing is clicked or accepted. Try a selector that targets the content you need, or a small delay.
Can it log in, pass a captcha or get around a bot wall? No. Public pages only. A page that answers 403 or a challenge is reported as FAILED and not charged.
Can I take screenshots of a page that needs JavaScript? Yes — it is a real browser. Use waitUntil: networkidle or a delay for pages that load content late.
Like it? A short review on the Store page helps other people find this Actor. Something missing or broken? Tell us on the Issues tab — we read every one.
Related Actors
- Website Tech Stack Detector — CMS, frameworks and analytics of any site
- Domain Checker — WHOIS, DNS, SSL and expiry dates in bulk
- PageSpeed Insights API — Lighthouse scores and Core Web Vitals
- URL to Markdown API — clean Markdown from any URL for LLMs
- Web Fetch API — Fetch any URL as HTML, text, Markdown or JSON