๐Ÿ“ธ Website Screenshot Generator avatar

๐Ÿ“ธ Website Screenshot Generator

Pricing

from $2.99 / 1,000 results

Go to Apify Store
๐Ÿ“ธ Website Screenshot Generator

๐Ÿ“ธ Website Screenshot Generator

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

SimpleAPI

SimpleAPI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Beautiful full-page PNG & PDF captures of any website โ€” at scale, with a built-in smart proxy ladder that gets past bot walls.

Drop in a list of URLs, pick PNG or PDF, hit Start. The Actor opens each URL in a real Chromium browser, scrolls to load lazy content, hides the cookie banners you don't want in the shot, and saves a pixel-perfect capture to your default key-value store. Metadata for every capture is also pushed to the dataset so you can export to JSON / CSV / Excel in one click.


๐Ÿš€ Why choose this Actor?

  • ๐Ÿ›ก๏ธ Smart proxy fallback โ€” starts direct, automatically escalates to datacenter, then residential with retries when the target pushes back. Stops mid-flow when one tier works.
  • ๐Ÿ–ผ๏ธ Full-page PNG or printable PDF โ€” your call, per run.
  • ๐Ÿ”ฝ Lazy-load aware โ€” scrolls to the bottom, optionally waits for the network to go idle, so infinite-scroll feeds capture cleanly.
  • ๐Ÿ™ˆ Banner & widget hiding โ€” supply CSS selectors to wipe cookie popups, chat widgets, or anything that ruins the shot.
  • ๐Ÿ“ฅ Live saving โ€” each capture lands in the dataset as soon as it's done, so a crash never loses earlier work.
  • ๐Ÿ“‹ Rich, per-section logs โ€” you can watch URL-by-URL progress, proxy escalations, and final status in real time.

โœจ Key features

FeatureDetail
๐ŸŒ Bulk inputPaste URLs, drop a CSV, or pull from Google Sheets โ€” the standard Apify request-list editor
๐Ÿ–ผ๏ธ Outputpng (full page) or pdf (printable)
๐Ÿ“ ViewportCustom width (100โ€“3840 px), height fixed at 1080 with full-page mode
โณ Wait untilload ยท domcontentloaded ยท networkidle2 ยท networkidle0
๐Ÿ” Retries3 retries on the residential tier with jittered backoff
๐Ÿ›ก๏ธ Proxy ladderdirect โ†’ datacenter โ†’ residential โ€” automatic
๐Ÿ’พ StoragePNG/PDF in default KVS, metadata rows in default dataset

๐Ÿงพ Input

{
"urls": [
{ "url": "https://apify.com" },
{ "url": "https://github.com" }
],
"format": "png",
"waitUntil": "networkidle2",
"delay": 0,
"viewportWidth": 1280,
"scrollToBottom": true,
"delayAfterScrolling": 2500,
"waitUntilNetworkIdleAfterScroll": false,
"waitUntilNetworkIdleAfterScrollTimeout": 30000,
"selectorsToHide": ".cookie-banner, #chat-widget",
"proxyConfiguration": { "useApifyProxy": false }
}
FieldMeaning
urls๐ŸŒ List of URLs to capture. Items may be plain strings or { "url": "..." } objects.
format๐Ÿ–ผ๏ธ png for image, pdf for printable document.
waitUntilโณ Browser navigation milestone before capture.
delayโฑ๏ธ Extra wait (ms) after navigation, before capture.
viewportWidth๐Ÿ“ Browser viewport width in pixels.
scrollToBottom๐Ÿ”ฝ Scroll the page top-to-bottom before capturing โ€” triggers lazy-loaded content.
delayAfterScrollingโฑ๏ธ Wait this long after scrolling, before capturing.
waitUntilNetworkIdleAfterScroll๐ŸŒŠ Instead of a fixed delay, wait for the network to settle after scrolling.
waitUntilNetworkIdleAfterScrollTimeoutโฐ Hard cap on the network-idle wait.
selectorsToHide๐Ÿ™ˆ CSS selectors to hide before capturing (cookie banners, chat widgets, โ€ฆ).
proxyConfiguration๐Ÿ›ก๏ธ Default off โ€” Actor tries direct first and auto-escalates if the target blocks.

๐Ÿ“ฆ Output

Each captured URL produces:

  1. A binary record in the default key-value store at screenshot_<sanitized-url>_<md5>.<png|pdf>.
  2. A metadata row in the default dataset:
{
"startUrl": "https://apify.com",
"finalUrl": "https://apify.com/",
"pageTitle": "Apify: Full-stack web scraping and data extraction platform",
"format": "png",
"success": true,
"error": "",
"proxyTier": "direct",
"attempts": 1,
"navigationStatus": "ok",
"scrolledToBottom": true,
"hiddenSelectors": "",
"screenshotKey": "screenshot_https___apify_com_d0734ca443cdd7bb52b219011c750508.png",
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/<store-id>/records/screenshot_https___apify_com_<md5>.png",
"fileSizeBytes": 524288,
"viewportWidth": 1280,
"viewportHeight": 1080,
"waitUntil": "networkidle2",
"capturedAt": "2026-05-23T10:39:31.592253+00:00"
}

The dataset view comes pre-configured with two ready-to-use tables: ๐Ÿ–ผ๏ธ Capture Overview (the essentials) and ๐Ÿ” Capture Details (everything, including the proxy tier used and number of attempts).


๐Ÿš€ How to use the Actor (via Apify Console)

  1. Log in at console.apify.com โ†’ Actors.
  2. Open ๐Ÿ“ธ Website Screenshot Generator.
  3. Paste your URLs, pick the output format, leave proxy on No proxy (the Actor escalates automatically when sites push back).
  4. Click Start.
  5. Watch the live log โ€” you'll see each URL's status, the proxy tier used, and bytes captured.
  6. Open the Storage tab to grab your PNGs / PDFs and the Dataset tab to export metadata.

๐Ÿ›ก๏ธ How the proxy ladder works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” blocked โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” blocked โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ direct โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถ โ”‚ datacenter โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถ โ”‚ residential ร—3 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
retries w/ jitter
  • Every capture starts on whatever tier the Actor is currently on.
  • A block (HTTP 401/403/407/408/409/425/429/451/5xx or a CAPTCHA / "checking your browser" page) escalates the ladder one step.
  • Residential is the last step and retries 3ร— with jittered backoff before giving up on that URL.
  • Once we escalate, we stay there โ€” the next URL begins on the new tier, so we don't burn time on a tier we already know the target rejects.

๐Ÿง  Best use cases

  • ๐Ÿ“Š Visual archives โ€” periodically snapshot dashboards, landing pages, blog posts.
  • ๐Ÿ”ฌ QA & visual regression โ€” diff captures between deploys.
  • ๐Ÿ“ฐ Press / link previews โ€” generate PDFs of articles before they paywall or change.
  • ๐Ÿ›๏ธ Competitive intelligence โ€” track competitor pages over time.

โ“ Frequently asked questions

Q: Why does my screenshot look smaller than my desktop browser? The default viewport width is 1280 px and full-page mode captures everything below the fold. Bump viewportWidth to 1920 (or larger) for "wide-monitor" captures.

Q: The page has a cookie banner blocking the top โ€” what do I do? Add the banner's CSS selector to selectorsToHide, e.g. .cookie-banner, #onetrust-banner-sdk. The Actor sets display: none on the matched elements before capturing.

Q: Why do PDFs sometimes look different from PNGs? page.pdf() is Chromium-headless only and uses a print-media stylesheet. If a site has heavy @media print rules, the PDF will reflect them โ€” that's by design.

Q: I want to skip the ladder and use residential straight away. Set proxyConfiguration to { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] } โ€” the Actor will use residential only, with retries.


๐Ÿ†˜ Support and feedback

Found a bug or have a feature request? Open an issue in your Actor's GitHub repository, or message the maintainer directly via your Apify Console.


  • Only capture publicly available pages you have the right to view.
  • Respect each site's Terms of Service.
  • You are responsible for compliance with applicable laws (GDPR, CCPA, etc.).