Website Screenshot: Bulk Full-Page & Mobile
Pricing
from $0.70 / 1,000 screenshots
Website Screenshot: Bulk Full-Page & Mobile
Capture full-page or viewport screenshots of many URLs as PNG or JPEG, in desktop, laptop, tablet and mobile sizes in one run. Hides cookie banners, captures single elements, and returns a shareable image link per screenshot.
Pricing
from $0.70 / 1,000 screenshots
Rating
0.0
(0)
Developer
Ctrio Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Security
Limited permissionsShare
Capture screenshots of many web pages in one run. Paste a list of URLs, pick one or more device sizes (desktop, laptop, tablet, mobile or your own), and get a PNG or JPEG for every URL and size, with a link you can open or share.
$1 per 1,000 screenshots plus the run's platform usage, like Apify's own screenshot Actor. Failed URLs are not charged the screenshot fee.
What it does
- Bulk URLs: hundreds of pages per run, several at a time. Duplicates are removed and
example.orgis read ashttps://example.org. - Several device sizes in one run: Desktop 1920x1080, Laptop 1366x768, Tablet 820x1180 (iPad, 2x), Mobile 390x844 (iPhone, 2x) or a custom width and height. Each URL is captured once per size you pick.
- Full page or above the fold: full-page captures scroll first so lazy-loaded images appear.
- Hide cookie banners: common consent pop-ups (OneTrust, Cookiebot, Usercentrics, Didomi, Quantcast, CookieYes, Google consent and more) are hidden with CSS. Nothing is clicked or accepted.
- Hide anything else: add your own CSS selectors, e.g.
.newsletter-popup,#chat-widget. - Capture one element: e.g.
#pricing,mainor.chartinstead of the whole page. - Wait for content: extra delay, "wait for element", and three load modes (load, DOM ready, network idle) for single-page apps.
- Dark mode: asks the page for its dark color scheme.
- Shareable image links: every result has a
screenshotUrlthat opens the image directly (turn off "Shareable screenshot links" to keep images private to your account). - Clear results: final URL after redirects, HTTP status, page title, image size in pixels and bytes, and a preview column in the dataset table.
How to use it
- Paste your URLs into URLs.
- Pick Viewports (desktop is the default), PNG or JPEG, and full page or not.
- Start the run. Open the Screenshots tab of the dataset to see previews, or download the dataset as JSON, CSV or Excel. All image files are also in the run's key-value store.
Example input:
{"urls": ["https://apify.com", "https://www.wikipedia.org", "https://news.ycombinator.com"],"viewports": ["desktop", "mobile"],"fullPage": true,"format": "jpeg","jpegQuality": 80,"hideCookieBanners": true,"hideSelectors": [".newsletter-popup"]}
Output
One item per screenshot:
{"url": "https://www.wikipedia.org/","finalUrl": "https://www.wikipedia.org/","viewport": "mobile","screenshotUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/0002-wikipedia.org-mobile.jpg","key": "0002-wikipedia.org-mobile.jpg","format": "jpeg","width": 780,"height": 3410,"fullPage": true,"truncated": false,"selector": null,"statusCode": 200,"title": "Wikipedia","sizeBytes": 214733,"capturedAt": "2026-10-26T04:30:00.000Z"}
File names start with the URL's position in your list, so they sort in your order: 0001-apify.com-desktop.png, 0001-apify.com-mobile.png, 0002-....
URLs that fail (domain does not exist, timeout, element not found) are not added to the dataset and are not charged. They are listed with the error in the key-value store record SUMMARY.
Input
| Field | What it does |
|---|---|
urls | Pages to capture. Required. |
viewports | desktop, laptop, tablet, mobile, custom. One screenshot per URL per viewport. Default desktop. |
fullPage | Whole page (default) or only the visible viewport. |
format, jpegQuality | png (default) or jpeg with quality 1 to 100 (default 80). |
hideCookieBanners | Hide common consent pop-ups with CSS. Default on. |
hideSelectors | Extra CSS selectors to hide. |
selector | Capture only the first element matching this CSS selector. |
waitForSelector | Wait until this element is visible. |
delayMs | Extra wait after load. Default 1000 ms. |
waitUntil | load (default), domcontentloaded, networkidle. |
scrollToBottom | Scroll first to load lazy images (full page only). Default on. |
darkMode | Prefer the dark color scheme. |
customWidth, customHeight | Size of the custom viewport. |
maxFullPageHeight | Long pages are cut here (default 10,000 px, truncated: true). 2x viewports are cut at 8,000 px of page height. |
pageTimeoutSecs | Time limit for loading one page (default 60 s). A page that does not load in time is retried once. |
maxConcurrency | Pages at a time (default 4, also limited by memory: 2 per 2 GB). |
publicLinks | Make screenshotUrl open without an API token (default on). |
Pricing
- $1.00 per 1,000 screenshots (one dataset item = one screenshot), with discounts on paid Apify plans (Bronze 10%, Silver 20%, Gold and higher 30%). Failed URLs are not charged.
- Plus the run's platform usage (compute), billed by Apify like for its own screenshot Actor. In our tests at the default 4 GB, a typical home page cost about $0.0005 to $0.001 of usage, and very long pages (10,000 px Wikipedia articles) about $0.002. Use JPEG, a smaller
maxFullPageHeightorfullPage: falseto make it cheaper. - You can set a maximum cost per run in the run options; the Actor stops cleanly when it is reached.
Use with the API, Make, Zapier or AI agents
Call it like any Apify Actor, for example run-sync-get-dataset-items with the input above, and read screenshotUrl from each item. Schedule it in Apify to keep daily visual snapshots of competitor pages, landing pages or your own site after each deploy. It also works through the Apify MCP server, so an AI agent can take screenshots on request.
Limits
- Pages behind a login and pages protected by a CAPTCHA or bot wall are not supported. The Actor does not log in, solve CAPTCHAs or use proxies to get around blocks.
- Cookie banners are hidden, not accepted, so content that only loads after consent is not shown.
- Very long pages are cut at
maxFullPageHeight. - The default memory is 4 GB (one full CPU). In our tests it was cheaper per screenshot than 2 GB because pages render faster. Very heavy pages (huge articles with many images or maps) can take a minute each.
- Video, canvas animations and some web fonts may look different from your own browser.
Feedback
Found a page that does not render well? Open an issue on the Actor's Issues tab with the URL and your input, and we will look at it.