Website Screenshot Pro - Full-page, Mobile, Dark & PDF avatar

Website Screenshot Pro - Full-page, Mobile, Dark & PDF

Pricing

from $2.00 / 1,000 screenshots

Go to Apify Store
Website Screenshot Pro - Full-page, Mobile, Dark & PDF

Website Screenshot Pro - Full-page, Mobile, Dark & PDF

Capture clean screenshots or PDFs of any URL in bulk. Full-page, mobile device emulation, dark mode, retina, cookie-banner removal, element capture, lazy-load scrolling. Pay only per captured image.

Pricing

from $2.00 / 1,000 screenshots

Rating

0.0

(0)

Developer

Conor Wilson

Conor Wilson

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Share

Website Screenshot Pro

Capture clean, full-page screenshots or PDFs of any list of URLs, with the fiddly bits handled for you: cookie banners hidden, lazy-loaded images triggered, mobile devices emulated, dark mode supported, retina output, element-only capture.

You pay per captured image (and per PDF if you enable it). Failed pages are reported in the results but are never billed.

What you get

For every URL, one row in the dataset:

FieldMeaning
screenshotUrlDirect link to the image (PNG or JPEG)
pdfUrlDirect link to the PDF, when enabled
url, finalUrlRequested URL and the URL after redirects
title, statusCodePage title and HTTP status
width, heightImage dimensions in pixels
ok, errorWhether the capture succeeded, and why not if it did not

Images and PDFs are stored in the run's key-value store, so you can download them by link, embed them, or pull them via the API.

Why this one

  • Cookie banners gone. Hides OneTrust, Cookiebot, Quantcast, Usercentrics, TrustArc, Didomi, Sourcepoint and generic consent pop-ups before capture. Add your own selectors for chat widgets or sticky bars.
  • Full page that actually loads. Scrolls through the page first so lazy-loaded images render instead of showing grey boxes.
  • Mobile and tablet emulation. iPhone 14 / 14 Pro Max, Pixel 7, Galaxy S9+, iPad Pro 11, iPad Mini, with correct viewport, user agent, touch and scale factor.
  • Dark mode, retina, element capture, PDF. prefers-color-scheme: dark, 2x output, capture a single CSS selector, or save an A4/Letter PDF alongside.
  • Fair billing. Only successful captures are billed. Set a maximum run cost and the actor stops cleanly at the limit.

Quick start

{
"urls": [{ "url": "https://apify.com" }, { "url": "https://news.ycombinator.com" }],
"fullPage": true,
"format": "png",
"hideCookieBanners": true
}

Mobile dark-mode JPEGs:

{
"urls": [{ "url": "https://example.com" }],
"device": "iPhone 14",
"darkMode": true,
"format": "jpeg",
"quality": 85
}

Capture just the pricing table and also save a PDF:

{
"urls": [{ "url": "https://example.com/pricing" }],
"selector": "#pricing",
"pdf": true,
"pdfFormat": "A4"
}

Input options

OptionDefaultNotes
urlsrequiredList of { "url": "..." } objects
fullPagetrueWhole page vs viewport only
format / qualitypng / 80png or jpeg; quality applies to JPEG
viewportWidth / viewportHeight1280 / 800Ignored when a device is selected
deviceScaleFactor12 for retina
devicenonePhone/tablet emulation
darkModefalseEmulates dark colour scheme
hideCookieBannerstrueHides common consent pop-ups
hideSelectors[]Extra CSS selectors to hide
selector-Capture only this element
waitUntilloadload, domcontentloaded, networkidle
waitForSelector-Wait for this selector before capture
delayMs1000Extra wait for animations and late JS
scrollToBottomtrueTrigger lazy loading before full-page capture
pdf / pdfFormatfalse / A4Also save a PDF
timeoutSecs60Per-page timeout
maxConcurrency5Parallel pages

Using the API

curl -X POST "https://api.apify.com/v2/acts/<username>~website-screenshot-pro/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"urls":[{"url":"https://apify.com"}],"format":"jpeg","quality":80}'

The response is the dataset: one object per URL with a screenshotUrl you can fetch directly. Works the same from Python, Node, Make, Zapier, n8n or any MCP-capable AI agent.

Tips

  • Pages behind logins or bot protection (Cloudflare challenges, DataDome, PerimeterX, CAPTCHAs) are detected, returned as ok: false with the reason, and never billed. The actor does not attempt to bypass them.
  • For very long pages, full-page captures are capped by the browser at roughly 16,384 px of height; use selector or viewport capture for extreme cases.
  • networkidle gives the most complete render but can wait a long time on sites with constant background traffic; load plus delayMs is usually the best trade-off.

Pricing

Pay per event: one event per successful screenshot, one per PDF. No charge for failures. Set a maximum charge per run in the Console or via maxTotalChargeUsd on the API to cap spend.