Website Screenshot & URL to PDF (Full Page, Bulk) avatar

Website Screenshot & URL to PDF (Full Page, Bulk)

Pricing

Pay per event

Go to Apify Store
Website Screenshot & URL to PDF (Full Page, Bulk)

Website Screenshot & URL to PDF (Full Page, Bulk)

Batch website screenshots and PDFs: full-page, desktop/laptop/tablet/mobile, PNG/JPEG/WebP/PDF, auto-dismisses cookie banners, lazy-load scrolling, hide elements, wait for selector. Fast single-URL mode for AI agents.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Orvix

Orvix

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

6 days ago

Last modified

Share

Website Screenshot & PDF Renderer

Capture full-page or visible-screen screenshots and PDFs of any public web page, in bulk or one at a time. It works on desktop, laptop, tablet, mobile or a custom size, and saves PNG, JPEG, WebP or PDF. Cookie banners are dismissed automatically, lazy-loaded images are scrolled into view, and sticky headers don't repeat down the page. You only pay for screenshots that succeed.

What you get

  • Full-page that actually is full-page. The page is scrolled to load lazy images, then the Actor waits briefly for the network to settle. You can also set an extra delay or wait for a CSS selector.
  • Height control. Set maxHeight (for example 1500) to capture just the top of a page. Very tall pages are clipped at 16,384 px, and the output tells you so.
  • Sticky headers handled. Fixed navbars, chat bubbles and banners appear once (or are hidden) instead of repeating in every screen-height slice.
  • Cookie banners dismissed. OneTrust, Cookiebot, Didomi, Quantcast, TrustArc, Usercentrics, CookieYes, Osano, Complianz, iubenda, Sourcepoint, Google Funding Choices and common "Accept all" buttons in several languages are handled, with a CSS fallback.
  • Emoji and CJK render correctly. Noto Color Emoji and Noto CJK fonts are installed, so you get no empty boxes.
  • Devices. Desktop 1920×1080, laptop 1366×768, tablet 820×1180 @2x, iPhone-size mobile 390×844 @3x, or custom. Request several devices in one run.
  • Formats. PNG, JPEG, WebP (with quality setting) and PDF (A4, Letter, Legal or A3; screen or print CSS).
  • Never charged for failures. A charge event fires only after the file is stored. DNS errors, timeouts and blocked pages cost nothing.
  • Every input has a default. You can paste URLs and press Start.
  • Respects your budget. If you set a maximum cost per run, the Actor stops cleanly when it's reached.

Use cases

  • Visual archive or proof of web pages (ads, landing pages, pricing pages, legal notices).
  • Responsive QA: desktop and mobile screenshots of every page in a sitemap.
  • Thumbnails and previews for directories, link-in-bio pages and CMS entries.
  • Feeding page images to vision AI models or agents (use the single url input).
  • Saving articles or docs as PDF.
  • Scheduled screenshots for simple visual change tracking (run on an Apify schedule).

Input example

{
"urls": ["https://apify.com", "https://example.com"],
"devices": ["desktop", "mobile"],
"format": "png",
"fullPage": true,
"maxHeight": 8000,
"stickyElements": "static",
"dismissCookieBanners": true,
"delayMs": 0
}

For one quick capture, { "url": "https://example.com", "fullPage": false } is enough.

Output example

Each URL and device combination gives one dataset row. The file itself is in the run's key-value store, and fileUrl links to it directly.

{
"url": "https://example.com/",
"device": "desktop",
"format": "png",
"viewport": "1920x1080",
"fileUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/example.com_desktop.png",
"httpStatus": 200,
"title": "Example Domain",
"width": 1920,
"height": 1080,
"bytes": 23817,
"consentDismissed": null,
"stickyElementsFixed": 0,
"warning": null,
"error": null,
"finalUrl": "https://example.com/",
"takenAt": "2026-10-14T14:30:00.000Z"
}
  • Failed captures get a row with error set, and you're not charged for them.
  • A SUMMARY record shows counts, invalid URLs, truncation and whether the budget limit stopped the run.

Pricing (pay per event)

EventPrice
Full-page screenshot or PDF$5 per 1,000 ($0.005 each)
Visible-screen (viewport) screenshot$2 per 1,000 ($0.002 each)
Actor start$0.005 per GB of memory per run

Compute is included, and failed captures are free.

How it compares (honest)

We tested Apify's own free Website Screenshot Generator side by side on the same 10 popular sites, with 4 GB memory, on 2026-10-14:

This Actorapify/screenshot-url
Successful captures10 / 107 / 10 (3 blocked)
Run time43 s149 s
What you pay$0.05 for 10 full-page shots + start feeabout $0.033 in compute, including the failed ones
  • The other Actor is free to use: you pay only Apify compute, which in our test came to about $4.77 per 1,000 successful shots. If your pages are simple and you don't mind paying for failures, it can be cheaper.
  • This Actor's pricing is predictable: fixed per-screenshot pricing, no charge for failures, plus cookie, sticky-header, emoji and height handling.
  • Heavy single-page apps can still take 30–60 s each. A few sites with aggressive bot protection may still fail, and those are free.

FAQ

Can it take screenshots behind a login? No. It captures public pages only, with no cookies or credentials.

Can it capture localhost or private network addresses? No. Private, loopback and cloud-metadata addresses are blocked for security.

What are the limits? Up to 1,000 URLs per run (times the number of devices) and a per-page timeout of 5–90 s (default 45 s). Images are capped at 16,384 px tall.

Why does a page show a "warning"? The capture succeeded, but something is worth knowing. For example, the page didn't finish loading in time and you got what had rendered, the page was clipped to maxHeight, or it was rendered at 1x to fit the size limit.

A banner or popup is still visible. Add its CSS selector to hideSelectors.

Hero videos look blank. Make sure blockMedia is off (the default).

How do I get the images? Use fileUrl in each dataset row, or open the run's key-value store.

Is the data stored? Files stay in your own Apify storage according to your retention settings.