Website Screenshot Generator: Full Page, Mobile & PDF
Pricing
from $2.00 / 1,000 screenshot saveds
Website Screenshot Generator: Full Page, Mobile & PDF
Screenshot any list of URLs in real Chromium: full page, viewport or one element, on desktop, laptop, iPad, iPhone or Android, as PNG, JPEG or PDF. Hides cookie banners, blocks ads, dark mode, custom CSS. Pay per saved file; failed pages are free.
Pricing
from $2.00 / 1,000 screenshot saveds
Rating
0.0
(0)
Developer
rj
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Features
Share
Website Screenshot Generator captures screenshots of any list of URLs in a real Chromium browser: the visible viewport, the full scrollable page or one element, on desktop, laptop, iPad, iPhone or Android, as PNG, JPEG or PDF. It hides cookie banners before the shot, can block ads and trackers, supports dark mode and custom CSS, and scrolls through the page first so lazy-loaded images show up.
Compared with the free Apify screenshot tool, you get device presets with real mobile user agents and pixel density, several devices per URL in one run, cookie-banner removal, element screenshots, PDF export, and a predictable price per saved file instead of paying for browser compute. Pages that fail are free: you never pay for a 404, a timeout or a blocked page.
What can this screenshot tool do?
- 🖥️📱 Device presets. Desktop 1920×1080, laptop 1366×768, tablet (iPad), mobile (iPhone 15 Pro with Safari user agent and 3× pixel density), Android (Pixel 7) or any custom size. Pick several and every URL is captured on each.
- 📜 Full page or viewport. Full-page captures scroll through the page first so lazy-loaded images and sections appear. Endless pages are cut at a height you choose (default 15,000 px).
- 🎯 Element screenshots. Give a CSS selector such as
#pricingor.heroand only that element is captured. - 📄 PDF export. A4, Letter, Legal, A3 or Tabloid, portrait or landscape, with backgrounds, using the site's print styles (like Chrome's Save as PDF) or the on-screen look. Screenshot and PDF can come from the same page load.
- 🍪 No cookie banners. Hides OneTrust, Cookiebot, Didomi, Quantcast, TrustArc, Usercentrics, Sourcepoint, CookieYes, Complianz, iubenda, consentmanager and many more, plus home-made banners, and unlocks scrolling. Nothing is clicked or accepted; real page content is never hidden.
- 🚫 Ad and tracker blocking (optional). Blocks ~45 ad, tracking and analytics domains (Google Ads and Tag Manager, Taboola, Outbrain, Criteo, Hotjar...) for cleaner, faster screenshots.
- 🌙 Dark mode, hidden elements and custom CSS. Ask the site for its dark theme, remove chat widgets or sticky headers by selector, or inject your own CSS.
- ⏱️ Wait control. Wait for load, DOM content loaded or network idle, add an extra delay, or wait until a selector appears.
- 💸 Pay per file. $0.002 per screenshot, $0.003 per PDF. Failed captures cost nothing.
What data do you get?
Every file is saved in the run's key-value store, and the dataset gets one row per file:
| Field | Example | What it is |
|---|---|---|
fileUrl | https://api.apify.com/v2/key-value-stores/…/records/apify-com_desktop_92a4e22d.png | Direct download link to the image or PDF |
fileKey | apify-com_desktop_92a4e22d.png | Key of the file in the key-value store |
url, finalUrl | https://apify.com/ | Requested URL and the URL after redirects |
httpStatus | 200 | HTTP status of the page |
pageTitle | Apify: Marketplace of ready-to-run tools for AI | The page's title |
type, format | screenshot, png | screenshot or pdf; png, jpeg or pdf |
device, width, height, deviceScaleFactor | mobile, 393, 659, 3 | Device preset and viewport |
fullPage, selector | true, null | Full page / viewport, or the element captured |
imageWidth, imageHeight, pdfPages, bytes | 1179, 9750, null, 1173478 | Pixel size of the image, PDF page count, file size |
note | The page is 31000 px tall; captured the top 15000 px… | Anything you should know about this capture |
takenAt | 2026-11-02T13:29:05.418Z | When it was captured |
error, errorCode | null | Why a capture failed (DNS_ERROR, TIMEOUT, HTTP_ERROR, BLOCKED…); failed rows are free |
In Apify Console, the Screenshots view shows a thumbnail of every image.
Use cases
- Website monitoring and visual QA: schedule daily screenshots of your landing pages on desktop and mobile and spot broken layouts.
- Competitor tracking: archive competitors' home, pricing and product pages over time.
- SEO and marketing reports: page previews for audits, client reports and slide decks.
- Compliance and evidence: timestamped full-page captures and PDFs of terms, prices or ads as they appeared.
- Link previews and thumbnails for directories, bookmarking tools, CMSs and newsletters.
- AI agents and RAG pipelines: give a vision model a clean, banner-free screenshot of a page.
How to take website screenshots
- Click Try for free or Start.
- Paste your URLs, one per line.
- Pick one or more Devices and choose Full page, Image format and Output (screenshot, PDF or both).
- Click Start. Open the Screenshots tab to preview, or download the files from the key-value store or by
fileUrl.
Input examples
Desktop + mobile full-page JPEGs without cookie banners or ads:
{"urls": ["https://apify.com", "https://en.wikipedia.org/wiki/Web_scraping"],"devices": ["desktop", "mobile"],"fullPage": true,"format": "jpeg","jpegQuality": 80,"hideCookieBanners": true,"blockAds": true}
A4 PDFs only:
{"urls": ["https://example.com", "https://github.com"],"output": "pdf","pdfFormat": "A4","pdfMedia": "print","pdfPrintBackground": true}
One element, on a retina laptop, in dark mode, after a selector appears:
{"urls": ["https://github.com"],"devices": ["laptop"],"deviceScaleFactor": 2,"selector": "footer","waitForSelector": "footer","darkMode": true,"hideSelectors": ["#intercom-container", ".newsletter-popup"],"customCss": "header { position: static !important; }"}
Output example
Real output of local runs (trimmed): viewport PNGs from the default input, a full-page iPhone JPEG, a PDF and a failed (free) 404. On Apify, fileUrl points to the run's key-value store (STORE_ID below); in a local run it is a file:// path.
[{"id": "screenshot:desktop:60facd80843d","type": "screenshot","url": "https://apify.com/","finalUrl": "https://apify.com/","httpStatus": 200,"pageTitle": "Apify: Marketplace of ready-to-run tools for AI","device": "desktop","width": 1920,"height": 1080,"deviceScaleFactor": 1,"fullPage": false,"selector": null,"format": "png","fileKey": "apify-com_desktop_92a4e22d.png","fileUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/apify-com_desktop_92a4e22d.png","contentType": "image/png","bytes": 163557,"imageWidth": 1920,"imageHeight": 1080,"pdfPages": null,"note": null,"takenAt": "2026-11-02T13:41:26.383Z","error": null,"errorCode": null},{"id": "screenshot:desktop:c4ab6088339c","type": "screenshot","url": "https://example.com/","finalUrl": "https://example.com/","httpStatus": 200,"pageTitle": "Example Domain","device": "desktop","width": 1920,"height": 1080,"deviceScaleFactor": 1,"fullPage": false,"selector": null,"format": "png","fileKey": "example-com_desktop_2b4284be.png","fileUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/example-com_desktop_2b4284be.png","contentType": "image/png","bytes": 78288,"imageWidth": 1920,"imageHeight": 1080,"pdfPages": null,"note": null,"takenAt": "2026-11-02T13:41:19.304Z","error": null,"errorCode": null},{"id": "screenshot:mobile:48d106530261","type": "screenshot","url": "https://en.wikipedia.org/wiki/Web_scraping","finalUrl": "https://en.wikipedia.org/wiki/Web_scraping","httpStatus": 200,"pageTitle": "Web scraping - Wikipedia","device": "mobile","width": 393,"height": 659,"deviceScaleFactor": 3,"fullPage": true,"selector": null,"format": "jpeg","fileKey": "en-wikipedia-org-wiki-web-scraping_mobile_full_96b6dbc9.jpg","fileUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/en-wikipedia-org-wiki-web-scraping_mobile_full_96b6dbc9.jpg","contentType": "image/jpeg","bytes": 1173478,"imageWidth": 1179,"imageHeight": 9750,"pdfPages": null,"note": null,"takenAt": "2026-11-02T13:29:19.273Z","error": null,"errorCode": null},{"id": "pdf:desktop:fdc052f20ec0","type": "pdf","url": "https://en.wikipedia.org/wiki/Web_scraping","finalUrl": "https://en.wikipedia.org/wiki/Web_scraping","httpStatus": 200,"pageTitle": "Web scraping - Wikipedia","device": "desktop","width": 1920,"height": 1080,"deviceScaleFactor": 1,"fullPage": null,"selector": null,"format": "pdf","fileKey": "en-wikipedia-org-wiki-web-scraping_desktop_a1725a00.pdf","fileUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/en-wikipedia-org-wiki-web-scraping_desktop_a1725a00.pdf","contentType": "application/pdf","bytes": 250828,"imageWidth": null,"imageHeight": null,"pdfPages": 9,"note": null,"takenAt": "2026-11-02T13:29:18.797Z","error": null,"errorCode": null},{"id": "screenshot:desktop:1984ad31c57e","type": "screenshot","url": "https://github.com/this-page-does-not-exist-wsg-xyz","finalUrl": null,"httpStatus": 404,"pageTitle": null,"device": "desktop","width": 1920,"height": 1080,"deviceScaleFactor": 1,"fullPage": true,"selector": null,"format": "jpeg","fileKey": null,"fileUrl": null,"contentType": null,"bytes": null,"imageWidth": null,"imageHeight": null,"pdfPages": null,"note": null,"takenAt": "2026-11-02T13:29:20.064Z","error": "HTTP 404 Not Found: the page could not be loaded. Turn on \"Capture error pages\" to screenshot it anyway.","errorCode": "HTTP_ERROR"}]
Pricing
This Actor uses pay-per-event pricing. You pay only for files that were saved:
| Event | Price | When |
|---|---|---|
screenshot | $0.002 | per screenshot image saved (each URL × device) |
pdf | $0.003 | per PDF saved (one per URL) |
Failed captures (DNS errors, timeouts, HTTP 4xx/5xx, missing selectors) are not charged. Browser compute is included in the price.
Worked examples:
- 1,000 desktop screenshots ≈ $2.00
- 100 URLs on desktop + mobile = 200 screenshots ≈ $0.40
- 100 URLs as screenshot + PDF ≈ 100 × $0.002 + 100 × $0.003 = $0.50
Set Maximum cost per run on the run's options and the Actor stops cleanly when it's reached; it never starts a capture it can't charge for.
Tips and limits
- Download links.
fileUrlpoints to the file in the run's key-value store. It works without login as long as the storage is accessible; if your account restricts storage access, the SDK adds a signature to the URL automatically. Files in a run's default storage are kept for your plan's data-retention period (7 days on the free plan), so copy them elsewhere if you need them longer. - Very long pages are cut at Max full-page height (default 15,000 px). One file can be at most ~9 MB: a full-page PNG that would be bigger is saved as JPEG instead (the
notefield says so). For long pages on the 3× iPhone preset, use JPEG. - Pages behind bot protection (Cloudflare challenges, "access denied") may fail with HTTP 403 from Apify's datacenter IPs. Try Apify Proxy (datacenter) or turn on Capture error pages to see what the site shows. Residential proxies are not supported (see the FAQ), so sites that only let residential IPs through can't be captured.
- Login-only pages can't be captured: the Actor uses a fresh browser with no cookies.
- Cookie banners are hidden, not accepted, so content a site only shows after consent (some embedded videos, maps) may be missing.
- Pages that scroll inside an inner container (some web apps) only show the visible part in full-page mode; use an element selector for the scrolling container instead.
- The browser is Chromium. The iPhone and iPad presets emulate the screen, pixel density, touch and Safari user agent, but the page is still rendered by Chromium, not WebKit.
- Up to 4 pages load in parallel (about one per 512 MB of memory). The default 2 GB is right for most runs; give 4 GB+ for many full-page captures on high-density devices.
FAQ
Is it legal to take screenshots of websites? Capturing publicly available pages is generally fine, but you are responsible for how you use the images: respect copyright, trademarks, the site's terms and privacy law (e.g. GDPR) when you store or publish them. The Actor only opens public pages with no login, doesn't accept cookie consent on your behalf, and doesn't collect personal data.
Do I need a proxy? No, most sites work without one. Turn on Apify Proxy (datacenter) for sites that rate-limit Apify's servers or show different content per country. Your own proxy URLs work too.
Can I use residential proxies? No, only Apify datacenter proxy (or your own proxy URLs). The price per screenshot includes all platform costs, and a real browser downloads several MB per page (images, scripts, fonts). Through residential proxy that traffic would cost more than the screenshot itself, so the price could not stay this low. If you select the Residential group, the run logs a warning and uses Apify datacenter proxy instead.
Am I charged when a page fails?
No. Failed captures appear in the dataset with an error and are free.
Can I get the image itself instead of a URL?
Yes: download it from the key-value store (Storage tab), use fileUrl, or read the record by fileKey through the API.
Why do the iPhone screenshots look sharper and bigger? The mobile preset uses 3× pixel density like a real iPhone (393 CSS px wide → 1179 px image). Set Pixel density to 1 for smaller files.
Can I capture a page after clicking something or logging in? No, this Actor captures pages as they load. Use Wait for selector, Extra delay, Hide elements and Custom CSS to prepare the view.
Integrations
- API: start runs and fetch results from any language with the Apify API or the JavaScript/Python clients. Each item's
fileUrlis a direct download link. - Make, Zapier, n8n: use the Apify app/node to run the Actor and pass the
fileUrls on (Slack, Google Drive, email, Airtable…). - MCP / AI agents: available through the Apify MCP server, so agents can capture a page and look at it.
- Schedules and webhooks: run it daily for monitoring and get notified when a run finishes.
Changelog
- 0.1 (November 2026): first release. Device presets (desktop, laptop, iPad, iPhone, Android, custom), full page/viewport/element screenshots, PNG/JPEG/PDF, cookie-banner hiding, ad blocking, dark mode, hidden elements, custom CSS, wait strategies, lazy-load scrolling, pay per saved file. Apify Proxy is datacenter only (a Residential group falls back to datacenter with a warning).
Ready-to-run examples
More scrapers by the same developer
- Apple App Store Scraper: Apps, Search & Reviews
- Bing Search Scraper: Organic Results, Ads & Related Searches
- Domain WHOIS Lookup - Bulk RDAP, Expiry, DNS & Availability
- ESPN Scraper - Scores, Odds, Standings & Tennis
- Google Ads Transparency Scraper
- Google Play Scraper: Apps, Search & Reviews
Browse all my Actors on my Apify Store profile.