Website Screenshot — bulk full-page captures, multi-device avatar

Website Screenshot — bulk full-page captures, multi-device

Pricing

Pay per usage

Go to Apify Store
Website Screenshot — bulk full-page captures, multi-device

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

Rumblingb

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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:

  1. Consent dialogs are hidden. CSS targets the common offenders — OneTrust, Cookiebot, and anything matching cookie/consent/GDPR id, class or aria-label patterns.
  2. 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.
  3. 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
}
FieldDefaultNotes
urlsRequired. Bare domains accepted.
devicedesktopdesktop 1920×1080, laptop 1366×768, tablet 768×1024 @2x, mobile 390×844 @3x
viewportWidth / viewportHeightOverride the preset size
fullPagetrueCapture the whole document height, not just the viewport
formatpngpng (lossless) or jpeg (smaller, takes quality)
quality80JPEG only
waitUntilnetworkidleload, domcontentloaded, networkidle, commit
waitExtraMs500Extra pause for late animations or lazy images
timeoutMs45000Per-URL navigation timeout
darkModefalseEmulate 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.