Website Screenshot & PDF Generator avatar

Website Screenshot & PDF Generator

Pricing

from $6.00 / 1,000 captures

Go to Apify Store
Website Screenshot & PDF Generator

Website Screenshot & PDF Generator

Capture full-page website screenshots (PNG/JPEG) or PDFs in bulk with real Chrome. Desktop, tablet or mobile, dark mode, element capture, lazy-load scrolling and automatic cookie-banner hiding. Pay per capture, failed URLs are free.

Pricing

from $6.00 / 1,000 captures

Rating

0.0

(0)

Developer

API Samurai

API Samurai

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Categories

Share

Capture full-page screenshots (PNG/JPEG) or PDFs of any list of websites with real Chrome. Desktop, tablet or mobile view, dark mode, single-element capture, lazy-image loading and automatic cookie-banner hiding for clean results. Bulk URLs, fast, and failed URLs are never charged.

What you can use it for

  • Website monitoring and archiving: daily snapshots of competitor pages, pricing pages and landing pages.
  • Agencies and SEO: visual reports for clients, before/after redesign proof, mobile vs desktop checks.
  • Compliance and evidence: time-stamped PDF copies of terms, ads or listings.
  • Thumbnails and previews: website previews for directories, link pages and newsletters.
  • AI and automation: feed page images to vision models from Make, n8n, Zapier or the API.

Input

FieldWhat it does
URLsPages to capture, one per line.
OutputPNG, JPEG or PDF.
Full pageWhole scrollable page (up to the max page height) or just the visible screen.
Max page heightFull-page captures are cut at this height. Default 12,000 px, from 1,000 to 30,000.
DeviceDesktop (custom width/height), tablet (iPad) or mobile (iPhone 13).
Hide cookie bannersHides consent pop-ups from common providers (OneTrust, Cookiebot, Sourcepoint, Didomi, Quantcast and more) without clicking anything.
Dark modeRequests the site's dark theme.
Capture only this elementCSS selector such as #pricing.
Scroll to load lazy imagesMakes lazy-loaded images appear in full-page captures.
Block ads and trackersblockAds, on by default. Skips third-party ads, analytics and tracking scripts; the site's own content is never blocked.
PDF paper sizeA4, Letter, Legal or A3.
ProxyOptional, for sites that block data centers or show country-specific content.
{
"urls": ["https://stripe.com/pricing", "https://www.bbc.com/news"],
"output": "png",
"fullPage": true,
"device": "desktop",
"hideCookieBanners": true
}

Output

One row per page, with a permanent link to the file stored in your run (real output, October 2026):

{
"url": "https://www.bbc.com/news",
"finalUrl": "https://www.bbc.com/news",
"httpStatus": 200,
"title": "BBC News - Breaking news, video and the latest top stories from the U.S. and around the world",
"output": "png",
"fileUrl": "https://api.apify.com/v2/key-value-stores/yN3lllWhkqM6eVeXK/records/0003-www-bbc-com-news.png",
"fileBytes": 2969470,
"device": "desktop",
"fullPage": true,
"capture": "full-page",
"clipped": false,
"seconds": 5.2,
"capturedAt": "2026-10-17T18:18:00.473Z"
}

Pricing

Pay per capture: $6 per 1,000 screenshots or PDFs on paid Apify plans. URLs that fail to load are not charged. Set a spending limit per run and the Actor stops cleanly when it is reached.

Tips

  • Use JPEG for small files and PNG for crisp text.
  • Very long pages are cut at the max page height (12,000 px by default) so files stay usable.
  • If a site shows a "verify you are human" page, turn on the residential proxy.

FAQ

Are ads and trackers blocked? Yes, by default ads and trackers are blocked for faster, cleaner captures; set blockAds to false to capture pages with them.

What happens with very long pages? Full-page captures taller than Max page height (maxHeight, default 12,000 px) are cut at that height, and the row shows "clipped": true. Raise it up to 30,000 px if you need more, or lower it for heavy sites.

What is a viewport fallback? Some heavy sites crash the browser or never stop animating. The Actor then retries once in a fresh browser without scrolling and with the height capped at 8,000 px. If that also fails for a full-page PNG or JPEG, it captures just the visible screen instead. That row has "capture": "viewport-fallback" and a note with the reason. It is charged like any capture because you get a real image. PDFs have no fallback.

Where do I find the URLs that failed? Failed URLs are not in the dataset and are not charged. The run's status message lists them, and the SUMMARY record in the run's key-value store has every input URL with its result (captured, fallback or failed), the number of attempts and the reason in plain words, such as "page crashed twice" or "screenshot timed out".

Which input formats work? URLs work as pasted from a chat or doc, even wrapped in backticks, quotes or markdown, as bullets, or several to a line, and each is captured with its full path and query. Field names from other screenshot tools also work: url, startUrls (plain links or { "url": ... } objects), format, delayMs, colorScheme and blockCookieBanners. Entries that are not web addresses are skipped with a warning, and the run stops only when none can be read.

Am I charged when a site blocks the Actor? No. Pages that the site blocks or answers with an error (for example HTTP 403 or a "you've been blocked" page) are not charged and not saved. They are listed as failed with "blocked": true in SUMMARY. For sites that block data centers, use the Proxy input with residential proxies.