Website Screenshot — bulk full-page captures, multi-device
Pricing
Pay per usage
Website Screenshot — bulk full-page captures, multi-device
Capture full-page or viewport screenshots of any list of URLs. Desktop, laptop, tablet and mobile presets or a custom viewport, PNG or JPEG, dark mode, with cookie banners hidden and ad/tracker requests blocked so captures are clean and repeatable.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Rumblingb
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Screenshot any list of URLs. Full-page or viewport, four device presets or a custom size, PNG or JPEG — with cookie banners hidden and ad/tracker requests blocked so captures are clean and repeatable rather than a wall of consent dialogs.
Why captures come out clean
Three things run on every page before the shutter:
- Consent dialogs are hidden. CSS targets the common offenders — OneTrust, Cookiebot, and anything matching cookie/consent/GDPR id, class or aria-label patterns.
- Animations are frozen. Transition and animation durations are forced to zero, so you do not capture a half-finished slide-in. This also makes repeat captures diffable.
- Ads and trackers are aborted. DoubleClick, Google Syndication, Amazon adsystem, Taboola, Outbrain, GA, GTM, Hotjar, Segment, Mixpanel, FullStory. Faster loads, and no layout shift from a late-loading ad slot.
Each can be turned off individually.
Input
{"urls": ["https://example.com", "example.com/pricing"],"device": "desktop","fullPage": true,"format": "png","hideCookieBanners": true,"blockAds": true,"darkMode": false}
| Field | Default | Notes |
|---|---|---|
urls | — | Required. Bare domains accepted. |
device | desktop | desktop 1920×1080, laptop 1366×768, tablet 768×1024 @2x, mobile 390×844 @3x |
viewportWidth / viewportHeight | — | Override the preset size |
fullPage | true | Capture the whole document height, not just the viewport |
format | png | png (lossless) or jpeg (smaller, takes quality) |
quality | 80 | JPEG only |
waitUntil | networkidle | load, domcontentloaded, networkidle, commit |
waitExtraMs | 500 | Extra pause for late animations or lazy images |
timeoutMs | 45000 | Per-URL navigation timeout |
darkMode | false | Emulate prefers-color-scheme: dark |
Output
Images go to the run's key-value store. Each dataset item carries a direct URL to its image, so you can pipe results straight into a report or a sheet:
{"url": "https://example.com/","ok": true,"statusCode": 200,"title": "Example Domain","device": "desktop","viewportWidth": 1920,"viewportHeight": 1080,"fullPage": true,"format": "png","bytes": 19955,"screenshotKey": "0000-example-com-desktop-full.png","screenshotUrl": "https://api.apify.com/v2/key-value-stores/<id>/records/0000-example-com-desktop-full.png","loadTimeMs": 2460}
Keys are deterministic — same URL, device and mode produce the same key — so re-runs overwrite rather than piling up near-duplicates. They are prefixed with a zero-padded index so the store sorts in input order.
Failed URLs are still recorded, with ok: false and a reason, so nothing disappears
silently from a batch.
Typical uses
- Visual regression — schedule daily; deterministic keys make captures directly comparable
- Responsive QA — run the same URLs at all four device presets
- Competitor tracking — weekly captures of competitor pricing and landing pages
- Client reporting — full-page shots of every page you touched, with direct image links
- Design and pitch decks — bulk-capture reference sites in one pass
Limits
Pages behind a login are not supported — there is no credential input. Sites with aggressive
bot protection may serve a challenge page; that is captured faithfully as what an anonymous
visitor sees. Very long pages (tens of thousands of pixels) can exceed browser capture
limits, in which case set fullPage: false and a tall custom viewport.