Website Screenshot API - Full Page PNG, JPEG & PDF avatar

Website Screenshot API - Full Page PNG, JPEG & PDF

Pricing

from $2.00 / 1,000 website screenshots

Go to Apify Store
Website Screenshot API - Full Page PNG, JPEG & PDF

Website Screenshot API - Full Page PNG, JPEG & PDF

Capture screenshots of any URL or raw HTML as PNG, JPEG, WebP or PDF. Full page, element or region, mobile and desktop presets, dark mode, cookie-banner hiding and lazy-load scrolling. Get a direct file link per page.

Pricing

from $2.00 / 1,000 website screenshots

Rating

0.0

(0)

Developer

Rosario Vitale

Rosario Vitale

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

15 days ago

Last modified

Share

Why use this Actor?

Capture screenshots of any URL or raw HTML as PNG, JPEG, WebP or PDF. Full page, element or region, mobile and desktop presets, dark mode, cookie-banner hiding and lazy-load scrolling. Get a direct file link per page.

Features

  • Page URLs — Public HTTP/HTTPS pages to capture. Can be combined with raw htmlDocuments.
  • Full page — Capture the entire scrollable page when no element selector is set.
  • CSS element selector — Optional CSS selector to capture one visible element instead of the full page.
  • Viewport width — Browser viewport width in pixels.
  • Viewport height — Browser viewport height in pixels.
  • Image format — Screenshot output format.
  • JPEG quality — JPEG quality from 20 to 100; ignored for PNG.
  • Delay after page load — Extra milliseconds to wait after DOMContentLoaded before capture.
  • Navigation timeout — Maximum seconds to wait for page navigation.
  • Skip error and bot-challenge pages — Do not save or bill pages that answer with HTTP 4xx/5xx or show an anti-bot challenge (for example 'Just a moment...'). They are returned as free error rows instead. Off by default: such pages are captured and flagged with isErrorPage.
  • Hide common cookie banners — Hide cookie/consent banners before capture: known consent platforms (OneTrust, Cookiebot, Didomi, Usercentrics, Quantcast and more) plus elements whose id/class contains cookie or consent. Page wrappers that hold the main content are never hidden. Untick to leave banners visible. For clicking Accept/Reject instead, use Cookie banner handling.
  • Cookie banner handling — hide (default) = hide banners; accept / reject = click the banner's 'Accept all' or 'Reject all' button on 16 known consent platforms (OneTrust, Cookiebot, Didomi, Usercentrics, Quantcast, TrustArc, Sourcepoint, Google, Complianz, CookieYes, iubenda, Osano and more) or a clearly labelled button in a cookie banner, then capture the page as a visitor would see it (waits up to 2.5 s for a banner to appear); falls back to hiding when no button is found; off = leave banners as they are. Leave empty to follow 'Hide common cookie banners'.

Use cases

  • Visual qa.
  • Website monitoring.
  • Mobile/desktop evidence capture.
  • Pdf and screenshot automation.

Example input

{
"urls": [
"https://example.com"
],
"fullPage": true,
"viewportWidth": 1440,
"viewportHeight": 900,
"format": "png",
"jpegQuality": 85
}

Pricing & cost control

The primary event costs $0.002500 per website screenshot (about $2.50 per 1,000 successful primary events). Only successful primary events are intentionally billed by this Actor; summary/status rows add context without adding primary-event charges.

Use the bounded input limits and filters to keep both event charges and platform usage predictable.

FAQ

What is this Actor for?
It is designed for visual QA, website monitoring, mobile/desktop evidence capture.

Can I run it on a schedule?
Yes. You can schedule Actor runs on Apify and send the resulting dataset into automations, webhooks, storage, or downstream APIs.

How do I control cost and run size?
Use the input limits and filters shown in the Actor input form. The Actor applies bounded defaults and hard caps so large jobs remain predictable.

Pricing at a glance

Price per 1,000 screenshots
This Actor$2.50
Median of 8 comparable Apify Store Actors (October 2026)$4.50

That is about 44% below the median per-result price for this task in Apify Store.

Subscriber discounts: on a paid Apify plan you pay even less per result — Bronze −10%, Silver −15%, Gold and higher −20% ($2.00 per 1,000 screenshots on Gold).

Apify platform usage (compute, storage, data transfer) is included — you pay only the result price plus a small run start fee ($0.0001 per GB of run memory). No surprise compute bill, even on long runs.

Use the run's maximum charge setting to cap spending — the Actor stops cleanly when the limit is reached.

Use it from AI agents (MCP) and code

AI agents — Claude, ChatGPT, Cursor, VS Code, n8n AI agents and any MCP client can run this Actor through the official Apify MCP server: add https://mcp.apify.com?tools=zenomastro/website-screenshot-pro to your client. Then just ask, for example:

"Take full-page desktop and mobile screenshots of these URLs and tell me if anything changed visually."

The agent fills the input from the field descriptions and receives clean JSON it can reason over.

API — one HTTP call runs the Actor and returns the results directly:

curl -X POST "https://api.apify.com/v2/acts/zenomastro~website-screenshot-pro/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://example.com/"], "format": "png", "fullPage": true, "devicePreset": "desktop", "delayMs": 0}'

The same works from the Apify Python/JavaScript clients, Make, n8n, Zapier, LangChain and LlamaIndex integrations, or on a schedule.

Capture public web pages as PNG, JPEG, WebP or PDF for monitoring, visual QA, archives, previews, reporting, competitive research and automation workflows.

Input example

{"urls":["https://example.com"],"fullPage":true,"viewportWidth":1440,"viewportHeight":900,"format":"png","delayMs":500,"proxyConfiguration":{"useApifyProxy":false}}

Set elementSelector to capture a specific visible component rather than the whole page.

Output

Each successful screenshot row includes final URL, HTTP status when available, title, device preset, viewport, format, byte size, key-value-store record key and screenshot URL, plus captureGroupId, consentAction, consentProvider, isErrorPage and errorPageReason. Monitoring runs add changed, pixelChangePercent, changedBeyondThreshold, changedRegions, diffImageUrl and previousCapturedAt. Failures are returned as free diagnostic error rows.

Example monitoring fields on a changed page:

{"devicePreset":"desktop","changed":true,"pixelChangePercent":16.67,"changedBeyondThreshold":true,"changedRegions":[{"x":0,"y":96,"width":416,"height":224}],"diffImageUrl":"https://api.apify.com/v2/key-value-stores/.../records/DIFF_SCREENSHOT_000_example.com.png?disableRedirect=true","previousCapturedAt":"2026-10-01T08:00:00.000Z"}

History images for comparePrevious are kept in your named key-value store website-screenshot-monitor, one image per monitored page and device, replaced on every run.

Pricing

Each successful screenshot is one screenshot event (see Pricing at a glance above). With devicePresets, every device counts as one screenshot. Error rows, skipped error pages and diff images are not billed.

Reliability and cost controls

The Actor validates and deduplicates URLs, has bounded navigation timeouts and per-page isolation (a failing or frozen page becomes an error row and the run continues; the browser restarts after a crash), supports direct mode by default, and allows Apify/custom proxies only when needed. A run captures at most 1,000 screenshots (URLs × devices) and stops cleanly shortly before its timeout or spending limit.

Responsible use

Capture public pages in accordance with applicable website terms, copyright, privacy, robots policies and rate limits.

Support

For reproducible issues provide the public URL, capture settings and Apify run ID. Never include private credentials.

Extended capabilities

  • Capture PNG, JPEG, WebP, or PDF with desktop/mobile/tablet presets, custom viewport/DPR, locale, timezone, and optional geolocation.
  • Capture full pages, a CSS element, or an exact clip region; render raw HTML without hosting it.
  • Support authorized Basic auth, cookies, headers, console/page-error capture, and persistent visual-change comparison.