Bulk Website Screenshot Capture — Full-Page PNG/JPEG
Pricing
from $12.50 / 1,000 results
Bulk Website Screenshot Capture — Full-Page PNG/JPEG
Capture full-page or viewport screenshots of hundreds of URLs in bulk using headless Chromium via Playwright. Desktop, mobile and tablet device profiles. Cookie banner auto-dismiss and lazy-load triggering. PNG or JPEG output in key-value store.
Pricing
from $12.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
4
Monthly active users
2 days ago
Last modified
Categories
Share
Bulk Website Screenshot Capture — Full-Page & Viewport PNG/JPEG Screenshots
Take high-resolution screenshots of any number of URLs in bulk. Paste a list of websites and get back a structured dataset with screenshot download URLs, page titles, file sizes and capture timestamps. Capture full-page scrolling screenshots or viewport-only snapshots in PNG or JPEG, on desktop, mobile or tablet device profiles — rendered by real headless Chromium so JavaScript apps, lazy-loaded images and cookie-gated pages look exactly like they do in a browser. No API key, no login, no per-site setup.
🏆 Why this screenshot Actor?
Hundreds of URLs per run · full-page or viewport capture · PNG or JPEG · desktop / mobile / tablet profiles · cookie-banner auto-dismiss · lazy-load triggering · permanent public image URLs · export to JSON / CSV / Excel. The unofficial website screenshot API alternative for competitive analysis, visual QA, archiving and pre-purchase audits.
✨ What this Actor does / Key features
- 📸 Bulk capture — process hundreds of URLs in a single run; each URL produces one image and one dataset row.
- 🖥️ Full-page or viewport — capture the entire scrollable page (
fullPage: true) or just the visible fold — no more cut-off footers. - 🧩 Real headless Chromium (Playwright) — renders JavaScript-heavy SPAs, dynamic content and lazy-loaded images exactly as a real browser would.
- 📱 Three device profiles built-in — Desktop (1920×1080), Mobile (iPhone 15, 390×844) and Tablet (iPad Pro, 1024×1366), plus a custom viewport of your choice.
- 🖼️ PNG or JPEG — lossless PNG for pixel-perfect archives, or adjustable-quality JPEG for smaller files.
- 🍪 Cookie-banner auto-dismiss — clicks "Accept" on consent pop-ups before capturing, so screenshots aren't buried under overlays.
- 🔄 Lazy-load triggering — scrolls the page to activate lazy images and infinite-scroll content before the shot.
- 🔗 Permanent public URLs — every screenshot is saved to Apify's key-value store with a stable, shareable download URL.
- 🛡️ Proxy support — Apify Proxy integration; datacenter or residential for geo-restricted or rate-limited pages.
- 💸 Cost guardrail —
maxScreenshotscaps the run so a huge URL list can't run away with your budget.
🚀 Quick start (3 steps)
- Configure — paste your website URLs into URLs to Screenshot, pick a Device Profile and Image Format (PNG or JPEG), and choose full-page or viewport.
- Run — click Start. The Actor opens each page in headless Chromium, dismisses cookie banners, scrolls to trigger lazy content, and captures the shot.
- Get your data — open the Output tab and export the manifest to JSON, CSV, Excel or XML, or download each image straight from its permanent
screenshotUrl.
📥 Input
Give the Actor at least one URL in startUrls. Everything else is optional and has sensible defaults.
Example — full-page desktop PNGs of competitor homepages
{"startUrls": [{ "url": "https://apify.com" },{ "url": "https://github.com" },{ "url": "https://vercel.com" }],"deviceProfile": "desktop","fullPage": true,"format": "png","waitForTimeout": 3000,"maxScreenshots": 100}
Example — mobile JPEG snapshots for responsive QA
{"startUrls": [{ "url": "https://stripe.com" },{ "url": "https://airbnb.com" }],"deviceProfile": "mobile","fullPage": false,"format": "jpeg","quality": 70,"waitForTimeout": 5000}
Example — custom viewport with residential proxy for geo-restricted pages
{"startUrls": [{ "url": "https://example.com" }],"deviceProfile": "custom","viewportWidth": 1440,"viewportHeight": 900,"fullPage": true,"format": "png","waitForTimeout": 8000,"maxScreenshots": 50,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | — | List of website URLs to capture. Each URL produces one PNG/JPEG image and one dataset row. Required. |
deviceProfile | string (enum) | desktop | desktop (1920×1080), mobile (iPhone 15, 390×844), tablet (iPad Pro, 1024×1366) or custom. |
viewportWidth | integer | 1920 | Viewport width in px (320–3840). Used only when deviceProfile is custom. |
viewportHeight | integer | 1080 | Viewport height in px (240–4320). Used only when deviceProfile is custom. |
fullPage | boolean | true | Capture the entire scrollable page (true) or just the visible viewport (false). |
format | string (enum) | png | png (lossless, larger) or jpeg (lossy, smaller). |
quality | integer | 80 | JPEG quality percentage (1–100). Ignored when format is png. |
waitForTimeout | integer | 3000 | Extra wait after page load, in ms (0–30000), for lazy content, animations and dynamic elements. |
maxScreenshots | integer | 100 | Maximum screenshots per run (1–1000). Caps the run to control cost. |
proxyConfiguration | object | Apify Proxy | Proxy settings. Use Apify Proxy or residential proxies for geo-restricted or rate-limited pages. |
Tip: For heavy JavaScript apps (dashboards, single-page sites), raise
waitForTimeoutto 5000–8000 ms so everything finishes rendering before the capture. For smaller files when lossless quality isn't critical, useformat: "jpeg"withquality: 60.
📤 Output
One row per screenshot, plus the image itself in the key-value store. The dataset is a machine-readable manifest with direct download URLs — export to JSON, CSV, Excel or XML. Here is a sample record:
{"url": "https://apify.com","screenshotUrl": "https://api.apify.com/v2/key-value-stores/xxxxxxxx/records/screenshot_1.png","pageTitle": "Apify — Full-stack web scraping and data extraction platform","viewportWidth": "1920","viewportHeight": "1080","fullPage": "true","format": "png","fileSize": "1240523","capturedAt": "2026-07-06T12:00:00.000Z"}
The images themselves live in Apify's key-value store as PNG or JPEG files. Download an individual screenshot from its screenshotUrl, or grab the whole set through the Apify API.
💡 Use cases
- Competitive analysis & design inspiration — capture 50 competitor homepages, pricing pages and product screens in minutes for a swipe file or design review.
- Visual regression testing & QA — run the same production URL list on a schedule and compare shots side-by-side to catch layout breaks before customers do.
- Website archiving & compliance — archive pages as timestamped, full-page PNGs for regulatory filings, trademark disputes or historical records.
- Pre-purchase & pre-redesign audits — document the "before" state of a client site with pixel-perfect, dated screenshots before a project starts.
- Portfolio & showcase creation — freelancers and agencies snapshot their work before sites change or disappear.
- Responsive checks — capture the same URLs on desktop, mobile and tablet profiles to verify responsive layouts.
👥 Who uses it
Marketing & competitive-intelligence teams · web designers & agencies · QA and visual-regression engineers · legal, brand and compliance teams · freelancers building portfolios · growth and lead-gen teams documenting prospect websites at scale.
💰 Pricing
This Actor runs on a simple pay-per-result model — you pay for the screenshots you capture, with no separate monthly subscription. Use maxScreenshots to cap a run and keep costs predictable, and try it on the free tier first before scaling up. See the Pricing tab on this page for the current rate.
❓ Frequently Asked Questions
Is this a website screenshot API alternative? Yes. Instead of wiring up a paid screenshot API, you paste a URL list and this Actor renders each page in real headless Chromium and returns a permanent download URL per shot — no API key, no per-site integration, and results export straight to JSON, CSV or Excel.
Can I take screenshots without an API key or login? Yes. There is no third-party screenshot service, account or key required — only an Apify account. The Actor captures any publicly accessible URL over a real browser.
How do I take full-page screenshots of a list of URLs in bulk?
Paste your URL list into URLs to Screenshot, keep Full Page on, and the Actor captures each entire scrollable page as a PNG or JPEG, returning a permanent screenshotUrl per page.
Can I capture mobile screenshots of a website?
Yes. Set Device Profile to mobile to render with an iPhone 15 viewport and user-agent, or tablet for iPad Pro, so you can screenshot the responsive layout. Use custom to set any width and height.
How do I export the screenshots to CSV or JSON?
The dataset manifest (URLs, titles, file sizes, screenshotUrl) exports as CSV, JSON, Excel or XML from the Apify console or API. The image files themselves download from each screenshotUrl.
Does it capture behind-login pages? Not out of the box — the Actor captures publicly accessible URLs. For authenticated pages you would need to supply session cookies.
How much data can I get / how many screenshots per run?
Up to 1,000 screenshots per run (the maxScreenshots ceiling). For very large lists, split them across multiple runs or schedule them. Each screenshot is typically ~1–5 MB depending on page size and format.
Are the screenshots stored permanently?
Screenshots stay in Apify's key-value store while your account is active, each reachable at its screenshotUrl. You can also download and archive them externally.
Is it legal to screenshot websites? The Actor only captures publicly available web pages. You are responsible for using the resulting images in compliance with the target sites' terms of service and applicable laws (e.g. copyright, GDPR).
🔗 More website & lead-gen tools by logiover
Building a full website-intelligence pipeline? Pair the screenshot Actor with the rest of the logiover website toolkit:
| Tool | What it does |
|---|---|
| Website Change Monitor | Detect visual & text changes on any page on a schedule |
| Website SEO Audit Crawler | Crawl a site and flag on-page SEO issues |
| Website Tech Stack Detector | Identify frameworks, CMS, analytics & hosting |
| Website Image & Media Extractor | Pull every image and media asset from a site |
| Bulk URL Status Checker | Check HTTP status of thousands of URLs |
| Broken Link Checker | Find dead links across a whole website |
| Sitemap to URL Crawler | Expand sitemaps into a clean URL list to feed here |
| URL to Markdown | Convert any page into clean Markdown |
| Social Card Preview API | Render OpenGraph/Twitter card previews for URLs |
| Website Text & Markdown Crawler | Extract readable page text at scale |
| JSON-LD & Meta Tag Extractor | Pull structured data & meta tags from pages |
| Website Contact Scraper | Extract emails, phones & socials from websites |
👉 Browse all logiover scrapers on Apify Store — 180+ actors across real estate, jobs, crypto, social media & B2B data.
⏰ Scheduling & integration
Schedule this Actor on Apify to build a visual archive of a fixed URL list daily or weekly. Push the manifest to Google Sheets, a database, BI tools or webhooks through the Apify API, and connect it to Make, n8n or Zapier — for example, auto-save each shot to a dated Google Drive folder, or ping Slack when a competitor's homepage changes.
⭐ Support & feedback
Found a bug or need an extra option (element-level capture, custom headers, a new device profile)? Open an issue on the Issues tab — response is usually fast. If this Actor saves you time, a ★★★★★ review on the Store page genuinely helps and is hugely appreciated. 🙏
⚖️ Legal
This Actor captures only publicly available web pages and is intended for legitimate research, QA, archiving and analytics use. You are responsible for complying with the target websites' terms of service, copyright, GDPR and any applicable local laws.
📝 Changelog
2026-07-06
- ✨ README overhaul: gold-standard structure with badge row, named input scenarios, real-schema output sample & full field reference, expanded keyword-gap FAQ, and a website-tools cross-promo grid.
2026-07-01
- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.