Website Screenshot — full page, no cookie popups, $5 per 1,000
Pricing
from $5.00 / 1,000 screenshot takens
Website Screenshot — full page, no cookie popups, $5 per 1,000
Full-page website screenshots in bulk: desktop, tablet or mobile, cookie pop-ups hidden, lazy images loaded, optional PDF. $5 per 1,000 screenshots; failed pages are free.
Pricing
from $5.00 / 1,000 screenshot takens
Rating
0.0
(0)
Developer
AI Solo Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Paste a list of URLs and get a clean screenshot of each page: full page or just the screen, desktop, laptop, tablet or mobile, JPEG or PNG, with an optional PDF. Cookie and consent pop-ups are hidden and lazy images are loaded before the capture. You pay a fixed price per screenshot instead of compute time, and failed pages are free.
- $5 per 1,000 screenshots ($0.005 each). Error pages (4xx/5xx), anti-bot walls and invalid URLs are never charged.
- Clean shots: known consent platforms (OneTrust, Cookiebot, Didomi, Usercentrics, Quantcast and 20+ more) are hidden, or their "accept" button is clicked if you prefer.
- Lazy content loaded: the page is scrolled through before the capture, so images below the fold appear.
- Device presets: desktop 1440×900, laptop 1280×800, iPad Mini, iPhone 13 — or your own width and height.
- Public links: every file gets a link you can open or embed without an API token.
What people use it for
- Visual archives and monitoring — keep a dated picture of your own pages, competitors' pricing pages or landing pages.
- SEO and agency reports — full-page shots of client sites on desktop and mobile, in bulk.
- Link previews and thumbnails — viewport-only JPEGs for directories, newsletters and dashboards.
- QA of many pages — check that hundreds of pages render after a release, without opening each one.
- Datasets for AI vision models — consistent screenshots with page title, size and status code.
- AI agents — call it from Claude, Cursor or any MCP client through the Apify MCP server; every row has a one-sentence
summarywritten for LLMs and a publicscreenshotUrl.
Input
{"urls": ["https://apify.com", "https://en.wikipedia.org/wiki/Web_scraping"],"device": "desktop","fullPage": true,"format": "jpeg","cookieBanners": "hide"}
| Field | What it does | Default |
|---|---|---|
urls | Full URLs or bare domains (example.com → https://example.com/). Duplicates are removed. Up to 10,000 per run. | — |
device | desktop (1440×900), laptop (1280×800), tablet (iPad Mini) or mobile (iPhone 13). | desktop |
width, height | Override the viewport in CSS pixels (320-3840 × 320-2160). The row then says device: "custom". | — |
fullPage | Whole page (up to 20,000 px tall) or only the visible screen. | true |
format | jpeg or png. | jpeg |
quality | JPEG quality, 30-100. | 80 |
waitUntil | load, domcontentloaded (faster) or networkidle (heavy apps). | load |
delaySecs | Extra wait after loading and scrolling, 0-30 s. | 1 |
scrollToBottom | Scroll through the page first so lazy images load. | true |
cookieBanners | hide consent pop-ups, accept them (click "accept", then hide what's left) or leave them. | hide |
hideSelectors | Extra CSS selectors to hide (chat widgets, ads...). | [] |
elementSelector | Capture only the first element matching this CSS selector, e.g. #pricing. | — |
pdf | Also save an A4 PDF of each page (charged separately). | false |
maxConcurrency | Pages at the same time. Empty = automatic: about 3 per CPU (2 at 2 GB, 3 at 4 GB). | automatic |
navigationTimeoutSecs | How long to wait for a page to load, 10-120 s. | 30 |
proxyConfiguration | Optional proxy, for sites that block data-centre IPs. | no proxy |
Output
One row per URL (a real row from a test run; only the store id and signature in screenshotUrl are shortened):
{"url": "https://en.wikipedia.org/wiki/Web_scraping","finalUrl": "https://en.wikipedia.org/wiki/Web_scraping","statusCode": 200,"title": "Web scraping - Wikipedia","screenshotUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/en-wikipedia-org-wiki-web-scraping-0dbff88b.jpg?signature=<signature>","screenshotKey": "en-wikipedia-org-wiki-web-scraping-0dbff88b.jpg","format": "jpeg","device": "desktop","viewport": {"width": 1440,"height": 900,"deviceScaleFactor": 1},"fullPage": true,"widthPx": 1440,"heightPx": 8988,"truncated": false,"bytes": 1989690,"pdfUrl": null,"pdfKey": null,"cookieBanner": "none-found","loadMs": 3999,"blocked": false,"partial": false,"summary": "en.wikipedia.org/wiki/Web_scraping: 1,440×8,988 px full-page JPEG (1.9 MB), no cookie banner found.","ok": true,"error": null,"capturedAt": "2026-09-28T19:54:08+00:00"}
The image itself is in the run's key-value store, under screenshotKey; screenshotUrl is its public link. widthPx and heightPx are the image size in real pixels (CSS pixels × the device's pixel ratio, so an iPhone 13 shot is 1,170 px wide). cookieBanner is hidden, accepted, none-found or left. Rows with ok: false are free: error says why (HTTP 404, net::ERR_NAME_NOT_RESOLVED, blocked by Cloudflare bot protection...). partial: true means the page didn't finish loading in time but something rendered: that image is saved, and not charged.
How it works
Each URL opens in a fresh headless Chromium context (no cookies shared between pages). The Actor waits for the page to load, scrolls through it in small steps (at most 8 seconds) so lazy images load, hides consent pop-ups and your extra selectors, waits the extra delay and captures the screenshot. Pages that answer with an error status or a bot-protection challenge (Cloudflare, AWS WAF, DataDome, Imperva...) are reported and not captured.
Limits, stated plainly:
- Full-page screenshots stop at 20,000 px tall; longer pages are cut and marked
truncated: true. - Pages behind a login or a strong anti-bot wall are not captured (and not charged). A proxy helps with sites that only block data-centre IPs.
- Pages are opened with "reduced motion" requested, so sites show their static version: animations are stopped, and video frames, canvas animations and cross-origin iframes (embedded maps, some ads) may render blank or as a still.
- Consent pop-ups are recognised by their known platforms plus a generic rule for fixed boxes named "cookie" or "consent". An unusual custom banner can still show; add its selector to
hideSelectors. - Pages whose content scrolls inside an inner box (not the page itself) are captured at the height of the window.
Pricing
Pay per event: $5 per 1,000 screenshots ($0.005 per screenshot of a page that loaded), and $0.005 per PDF when you turn PDFs on. Failed, blocked and partial pages are never charged. Each run also has a start fee of $0.0005 per GB of memory — $0.002 at the default 4 GB — because starting a headless browser's container takes 15-20 seconds, which we pay for. You can cap spending per run in the run options — the Actor stops cleanly when it's reached.
Compared to a free screenshot Actor: free Actors bill you for compute time, which depends on how heavy each page is and on the memory you pick. Here the price per screenshot is fixed, so 10,000 screenshots cost $50 plus the start fee — you can compute it before you start.
FAQ
Is this legal? Taking screenshots of public web pages is the same as visiting them in a browser. The Actor doesn't log in, doesn't solve captchas and doesn't bypass paywalls. What you do with the images is up to you — respect copyright and the sites' terms.
Can I get the images without the API token? Yes: screenshotUrl and pdfUrl are public links to the files in the run's storage. They stay available as long as the run's storage is kept (see Apify's data retention for your plan).
Why was a page not charged? Its error says why: an error status, a bot wall, a timeout, or an invalid URL. Only saved screenshots of pages that loaded are charged.
Can I capture only part of the page? Use elementSelector (e.g. #pricing) for one element, or set fullPage to false for just the first screen.
More tools from theaisololab
- WHOIS Domain Lookup — registrar, expiry dates, DNS and email provider, $0.50 per 1,000 domains.
- Tech Stack Detector — technologies behind any website, $0.01 per domain.
- Google Ads Transparency Scraper — every Google ad a company runs.
Changelog
- 0.1 — first release.
This Actor is independent and not affiliated with any of the websites it captures.