Website Screenshot API - Full Page, No Cookie Banners avatar

Website Screenshot API - Full Page, No Cookie Banners

Pricing

from $20.00 / 1,000 website screenshot api - full page, no cookie banners

Go to Apify Store
Website Screenshot API - Full Page, No Cookie Banners

Website Screenshot API - Full Page, No Cookie Banners

Bulk screenshots of any URL: full page, single element or viewport, six device presets, PNG or JPEG. Removes cookie banners and reports whether it actually worked, so you can trust the image. Blocked, unreachable and mis-targeted pages are never charged.

Pricing

from $20.00 / 1,000 website screenshot api - full page, no cookie banners

Rating

0.0

(0)

Developer

Apisight

Apisight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Website Screenshot API — full-page, mobile, and no cookie banners

Capture clean screenshots of any URL, in bulk. Built for the two things that ruin automated screenshots: cookie-consent overlays and lazy-loaded images that never render.

You are charged only for screenshots that were actually produced. Blocked, unreachable and mis-targeted pages are returned with a reason and cost you nothing.


Why this one

Most screenshot tools hand you a photograph of a consent dialog. This one removes it, and tells you honestly whether it succeeded.

This Actor
Cookie bannersDismisses 26 known consent platforms (OneTrust, Cookiebot, Usercentrics, Didomi, Quantcast, Sourcepoint, TrustArc, Complianz, Borlabs, CookieYes, Klaro, Iubenda, Axeptio, …) plus a structural detector that finds unbranded consent modals by shape and wording, in 12 languages
Honest reportingEvery record says whether a banner was detected, how it was handled, and whether it was stillVisible afterwards — so you can tell "this site had no banner" from "the banner is still in your image"
Lazy-loaded imagesScrolls the page before a full-page capture so images actually render instead of leaving blank placeholders
Ads and trackersBlocked by default: cleaner images, and ad-heavy pages load much faster
DevicesSix presets from 1920×1080 desktop to 360×640 mobile, with correct pixel density, touch support and mobile user agent
Bot protectionDetected and reported as blocked rather than silently returning a screenshot of a challenge page — and never charged
Very long pagesClipped at 20,000 px and flagged truncated instead of producing an unusable file

Measured, not claimed

On a 12-site European sample (news, retail, grocery, travel), the current build detected a consent overlay on 5 sites, removed it on 5 of 5, left 0 still visible, and correctly classified 1 bot-protected site as blocked without billing for it. One site's dialog carried no cookie-ish markup at all — it was found by shape and wording instead.


Input

Minimum:

{ "startUrls": ["apify.com", "https://stripe.com/pricing"] }

Common options:

{
"startUrls": ["bbc.com", "lidl.nl"],
"device": "mobile",
"fullPage": true,
"format": "jpeg",
"quality": 85,
"dismissConsent": true,
"blockAds": true,
"selector": "",
"hideSelectors": [".sticky-header", "#chat-widget"],
"darkMode": false,
"waitUntil": "load",
"delayMs": 0,
"lazyLoadMs": 3000,
"timeoutSecs": 30,
"maxConcurrency": 4
}
OptionWhat it does
devicedesktop (1920×1080), desktop-small, laptop (retina), tablet, mobile (390×844 @3x), mobile-small
fullPageWhole scrollable page (default) or just the viewport
selectorCapture one element, e.g. .pricing-table. Not found → reported as an error, not charged
hideSelectorsHide your own list of elements (sticky headers, chat widgets) before capture
waitUntilload (default), domcontentloaded (fastest), networkidle (most complete, slowest)
lazyLoadMsScroll budget for triggering lazy images. 0 disables it
proxyConfigurationApify Proxy, on by default — many sites block shared cloud IPs, and blocked pages earn you nothing

Output

One dataset record per requested page:

{
"inputUrl": "lidl.nl",
"finalUrl": "https://www.lidl.nl/",
"status": "ok",
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/…/records/0001-www.lidl.nl.jpg",
"format": "jpeg",
"widthPx": 1366,
"heightPx": 7480,
"fileSizeBytes": 412233,
"device": "desktop-small",
"fullPage": true,
"pageTitle": "Lidl.nl",
"loadTimeMs": 6120,
"consent": { "detected": true, "handled": true, "method": "cmp-click",
"cmp": "OneTrust", "stillVisible": false },
"truncated": false,
"capturedAt": "2026-10-01T20:14:07+00:00"
}

screenshotUrl is a direct link to the image — open it in a browser or fetch it with any HTTP client. Three dataset views ship: Overview, Cookie consent, and Problems.

Statuses, and what you pay for

StatusMeaningCharged
okA screenshot was produced and storedyes
blockedBot protection served an interstitial instead of the pageno
errorUnreachable, nothing painted before timeout, or the selector was absentno

Limits and honest caveats

  • Consent dismissal is best-effort. Sites that put consent behind a full-page gate (some German publishers' "pay or accept" walls) are not bypassed — that is a paywall decision, not a cookie banner, and the record will show detected: true with stillVisible: true so you know.
  • Pages taller than 20,000 px are clipped and flagged truncated.
  • Full-page screenshots of infinite-scroll feeds capture what has loaded within the lazy-load budget, not an unbounded feed.
  • Heavily protected sites may be blocked even through a proxy. You are not charged.
  • PNG files of long pages get large; use jpeg with quality for bulk work.

Tips

  • Bulk auditing a site list? Use desktop-small + jpeg at quality: 70 — much smaller files, nearly identical legibility.
  • Comparing layouts across breakpoints? Run the same list once per device.
  • Capturing a single component? selector beats cropping afterwards.
  • A page that captures too early usually needs waitUntil: "networkidle" rather than a bigger delayMs.