Website Screenshot Generator — Full Page PNG/JPEG avatar

Website Screenshot Generator — Full Page PNG/JPEG

Pricing

from $2.00 / 1,000 screenshot takens

Go to Apify Store
Website Screenshot Generator — Full Page PNG/JPEG

Website Screenshot Generator — Full Page PNG/JPEG

Capture full-page or viewport screenshots of any list of URLs with real headless Chromium. Desktop or mobile size, PNG or JPEG, cookie-banner removal, pay per screenshot taken.

Pricing

from $2.00 / 1,000 screenshot takens

Rating

0.0

(0)

Developer

KeyMan98

KeyMan98

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Share

Website Screenshot Generator

Capture a screenshot of any list of web pages with a real headless Chromium browser (Playwright). Full page or just the visible viewport, desktop or mobile size, PNG or JPEG — exports the image plus a data row per URL.

What it does

For each URL in your list, this Actor opens the page in headless Chromium, waits for it to load (and an extra short delay for late content), optionally hides common cookie banners, then takes a screenshot and saves it.

What you get (output fields)

One dataset row per URL:

  • url — the URL that was requested.
  • screenshotUrl — public link to the screenshot image (opens directly in a browser).
  • width / height — actual pixel dimensions of the screenshot.
  • format — png or jpeg.
  • fileSizeBytes — size of the image file.
  • takenAt — when the screenshot was taken (ISO 8601, UTC).
  • error — set if the screenshot could not be taken; null on success.

The image file itself is saved to the run's key-value store; screenshotUrl is the direct public link to it.

Who it's for

  • Design/QA teams — visual snapshots of pages across a site or across competitors.
  • No-code/automation builders — generate a screenshot to embed in a report, email, or dashboard.
  • Monitoring — periodic visual snapshots of a page (combine with a schedule).

How to use

  1. URLs — paste the pages you want screenshotted.
  2. Full page — off captures only the visible viewport; on captures the entire scrollable page.
  3. Device preset — Desktop (1280×800), Mobile (390×844), or Custom (set your own width/height).
  4. Format — PNG (lossless) or JPEG (smaller, adjustable quality).
  5. Delay after load — extra wait so animations/lazy content settle before the shot.
  6. Wait until — Load (faster) or Network idle (waits for network activity to quiet down; better for JS-heavy single-page apps, slower).
  7. Hide cookie banners — best effort; see Limitations.
  8. Run. Each URL becomes one dataset row plus one image file.

Input example (JSON)

{
"urls": [{ "url": "https://example.com" }, { "url": "https://apify.com" }],
"fullPage": false,
"devicePreset": "desktop",
"format": "png",
"delayMs": 1000,
"waitUntil": "load",
"hideCookieBanners": false,
"timeoutSecs": 30
}

Output example (JSON)

{
"url": "https://example.com",
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/.../records/screenshot-abc123.png",
"width": 1280,
"height": 800,
"format": "png",
"fileSizeBytes": 41230,
"takenAt": "2026-09-23T10:00:00+00:00",
"error": null
}

If a page fails to load

That URL is skipped as an error row: the rest of the list keeps running, the run does not fail, and you are not charged for that URL. The reason (timeout, DNS error, invalid URL, HTTP error) is written to the row's error field and to the run log.

Pricing

Pay only for screenshots actually taken — nothing charged for URLs that failed. Pricing model: pay-per-event.

EventWhen it's chargedPrice
screenshot-takena screenshot was successfully captured and saved0.002 USD

Limitations

  • No login, no CAPTCHA solving, no bypass of any site protection: it screenshots whatever a normal headless browser would see, nothing more.
  • "Hide cookie banners" is best effort: it hides elements matching a fixed list of common cookie-consent selectors. Many banners use custom markup that is not on that list and will still appear in the screenshot.
  • Very long/heavy pages with Full page on can take longer and produce large image files.
  • timeoutSecs caps how long a single page is given before it is marked as an error row.

FAQ

Can it log in to a site first?

No. It captures whatever the page shows to an anonymous visitor.

Can it get past a cookie/consent wall or CAPTCHA?

No, by design.

Why is a URL missing an image?

Check its error field — the page failed to load or screenshot within the timeout. The run still continues for the other URLs, and you are not charged for the one that failed.

Can I set a custom screen size?

Yes, set Device preset to "Custom" and use Viewport width/height.

JPEG or PNG — which should I pick?

PNG is lossless and larger; JPEG is smaller with adjustable quality, better for photos/large full-page captures.

Can I use this to monitor a page for visual changes?

You can combine it with an Apify schedule to take a screenshot of the same page periodically and build a history of images over time. This Actor does not compare screenshots or detect differences itself — that comparison is up to you.

Taking a screenshot for personal or internal use (QA, monitoring, a report) is generally fine. Publishing or redistributing screenshots that contain someone else's copyrighted material (logos, photos, branded content) is a separate question this Actor doesn't answer for you. This is not legal advice.

Can I use this through the Apify API or an MCP server?

Yes. Like any Apify Actor, you can run it and read results through the standard Apify API, or through the Apify MCP server if you use Claude, Cursor, or another MCP-enabled client.

Export

Results (URL, screenshot link, dimensions, size) can be downloaded from the Apify dataset as JSON, CSV, or Excel, or accessed via the Apify API. The image files themselves are downloaded from the key-value store, individually via screenshotUrl or in bulk via the Apify API.