Bulk Website Screenshot: Full Page, Mobile, PNG/JPEG/PDF avatar

Bulk Website Screenshot: Full Page, Mobile, PNG/JPEG/PDF

Pricing

from $0.60 / 1,000 screenshot takens

Go to Apify Store
Bulk Website Screenshot: Full Page, Mobile, PNG/JPEG/PDF

Bulk Website Screenshot: Full Page, Mobile, PNG/JPEG/PDF

Capture screenshots of many websites in one run: full page or viewport, PNG, JPEG or PDF, desktop or mobile devices, dark mode, single-element capture, hidden selectors and cookie banners. Public image URLs in the dataset.

Pricing

from $0.60 / 1,000 screenshot takens

Rating

0.0

(0)

Developer

DatLab

DatLab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Categories

Features

Limited permissions

Share

A website screenshot API for bulk URL screenshots: capture full page or viewport shots of many websites in one run (PNG, JPEG or PDF, desktop or mobile) and get a public image URL for each in the dataset. Logins are not supported.

  • Full page or viewport. PNG, JPEG (with quality) or PDF. PDFs are sized to the screenshot viewport so the page does not reflow to a paper width and clip wide content.
  • Desktop or mobile. Any desktop width/height and pixel ratio (retina), or emulate iPhone 15, Pixel 7 or iPad Pro 11. Dark mode too.
  • Capture just one element, e.g. #pricing, a chart or a hero section.
  • Clean shots. Hide cookie banners and any selectors (chat widgets, popups). Scroll first to load lazy images. Wait for load, network idle, a selector or a fixed delay.
  • Batch-friendly and cheap. One shared browser for all URLs, low memory, a fixed price per screenshot with platform usage included.
  • Polite. Respects robots.txt, rate-limits per host, never bypasses logins or captchas.

Use cases

  • Visual monitoring and archiving of landing pages, competitors or your own sites (schedule it).
  • Thumbnails and previews for directories, link-in-bio pages or CMSs.
  • QA: check how pages render on mobile and desktop, in light and dark mode.
  • Evidence snapshots (PDF) of public pages.

Input

FieldDefaultWhat it does
urls–Pages to capture.
formatpngpng, jpeg or pdf.
fullPagetrueWhole page or just the viewport.
viewportWidth / viewportHeight1280 / 800Desktop window size.
devicedesktopiPhone 15, Pixel 7, iPad Pro 11.
deviceScaleFactor, darkMode, jpegQuality1, false, 80Image options.
maxFullPageHeight15000Very long pages are cut here (truncatedAtHeight).
elementSelector–Capture only this element.
waitUntil, delay, waitForSelectorload, 0, –When to capture. Puppeteer-style networkidle0/2 are accepted too.
scrollToBottom, delayAfterScrolling, waitUntilNetworkIdleAfterScroll, waitUntilNetworkIdleAfterScrollTimeoutfalse, 2500, false, 30000Lazy-loading support.
selectorsToHide, hideCookieBanners–, trueHide elements (nothing is clicked or accepted).
pdfFormat, pdfPrintBackgroundA4, truepdfPrintBackground is honoured. pdfFormat is kept for compatibility; the PDF page is sized to the rendered viewport so layout matches the screenshot.
maxConcurrency, navigationTimeoutSecs, maxRequestRetries, minDelayPerHostMs2, 60, 2, 500Speed and politeness.
proxyoffOptional datacenter proxy.
{
"urls": [{ "url": "https://apify.com" }, { "url": "https://crawlee.dev" }],
"format": "jpeg",
"fullPage": true,
"device": "iPhone 15"
}

Output

{
"url": "https://crawlee.dev/",
"loadedUrl": "https://crawlee.dev/",
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/…/records/crawlee-dev-0d35627b.png",
"screenshotKey": "crawlee-dev-0d35627b.png",
"format": "png",
"fullPage": true,
"truncatedAtHeight": null,
"width": 1280,
"height": 2874,
"sizeBytes": 335092,
"device": "desktop",
"title": "Crawlee · Build reliable crawlers. Fast.",
"httpStatusCode": 200,
"capturedAt": "2026-11-11T20:50:02.120Z",
"error": null
}

Failed or blocked URLs have screenshotUrl: null and an error. The files are in the run's key-value store, and RUN_SUMMARY holds the counts.

Pricing

Pay per event, with Apify platform usage included.

EventPriceWhen
Screenshot$0.60 per 1,000Each screenshot or PDF saved
Run start$0.003 per runOnce per run (covers browser start-up)

Failed pages, robots.txt-blocked pages and HTTP errors are not charged. Platform usage is included in the event price. Example: 1,000 URLs in one run ≈ $0.60; a single URL ≈ $0.0036. For comparison, cheapapi/website-screenshot-api starts at $0.61 per 1,000 plus platform usage (checked 12 Nov 2026).

FAQ

Why did a site return an error instead of a screenshot? Some sites block automated browsers (HTTP 403) or disallow it in robots.txt. The Actor reports that and doesn't try to get around it. You're not charged.

Why is my screenshot cut off? Pages taller than maxFullPageHeight (15,000 px by default) are cut. Raise the limit or capture a single element.

Images are missing at the bottom of the page. Turn on scrollToBottom so lazy-loaded images render first.

How do I get retina-quality images? Set deviceScaleFactor to 2, or pick a mobile device (they use 2.6–3×).

Can it screenshot pages behind a login? No. Cookies and logins aren't supported, by design.

  • Captures only public pages you list, obeys robots.txt and Crawl-delay, rate-limits per host and never bypasses logins, captchas, paywalls or other access controls.
  • It stores only images of pages you request and doesn't extract personal data.
  • You're responsible for having the right to capture and use the screenshots (copyright, trademarks, site terms, applicable law).

Running on Apify

You can run this Actor on the Apify platform from the Console, the API, a schedule, integrations (webhooks, Slack, Google Sheets, Make, Zapier) or MCP.

Other DatLab actors