Website Screenshot API: Bulk Full Page PNG and JPEG
Pricing
$3.00 / 1,000 screenshot saveds
Website Screenshot API: Bulk Full Page PNG and JPEG
Take full page screenshots of a list of URLs in one run. PNG or JPEG, desktop, laptop, tablet or mobile, dark mode, cookie banners hidden, lazy images loaded. Each screenshot gets a download link, status code and page title. Pay per screenshot.
Pricing
$3.00 / 1,000 screenshot saveds
Rating
0.0
(0)
Developer
Hay Equipos
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Paste a list of URLs and get a screenshot of each page, with a direct download link, the page title, the HTTP status and the image size. Full page or first screen, PNG or JPEG, desktop, laptop, tablet or mobile, light or dark mode. Cookie banners are hidden and lazy loaded images are scrolled into view before capture, so the images look like what a visitor sees.
It runs a real headless Chrome browser, captures pages in parallel, retries a page once if it times out or crashes the browser, and starts a fresh browser when needed. You pay per screenshot that succeeds, with a fixed price you can see before you run it.
Who uses it
- Marketers and agencies archiving landing pages, competitor pages and ad destinations.
- SEO and QA teams checking how pages render on mobile and desktop after a release.
- Compliance and legal teams keeping dated visual records of public pages.
- Developers and AI agents that need an image of a page for a report, a thumbnail or a vision model.
Input
| Field | What it does |
|---|---|
urls | Pages to capture, one per line |
device | desktop (1280 by 800), laptop (1440 by 900), tablet (820 by 1180 at 2x), mobile (390 by 844 at 3x) |
viewportWidth, viewportHeight | Custom size in CSS pixels, overrides the preset |
fullPage | Whole page (default) or only the first screen |
maxPageHeight | Very long pages are cut at this height (default 10,000 pixels) |
format, jpegQuality | PNG, or JPEG with a quality from 1 to 100 |
waitUntil, delayMs | When to capture: DOM ready, load event or network idle, plus an extra wait |
scrollToBottom | Scroll first so lazy images load |
hideCookieBanners | Hide common consent popups without clicking them |
hideSelectors | Your own CSS selectors to hide, for example a chat widget |
darkMode | Ask the page for its dark theme |
timeoutSecs, maxConcurrency, maxUrls | Speed and safety limits |
Example input
{"urls": ["https://apify.com", "https://en.wikipedia.org/wiki/Web_scraping"],"device": "desktop","fullPage": true,"format": "jpeg","jpegQuality": 80,"hideCookieBanners": true}
Output
Each image is saved in the run's key value store. screenshotUrl is a signed link that opens the image directly, with no API token needed, so you can paste it into a sheet, a report or another tool. The dataset has one row per URL:
{"url": "https://apify.com/","finalUrl": "https://apify.com/","statusCode": 200,"title": "Apify: Marketplace of ready-to-run tools for AI","screenshotUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/screenshot_0001_apify_com_.jpg?signature=<signature>","screenshotKey": "screenshot_0001_apify_com_.jpg","format": "jpeg","device": "desktop","viewportWidth": 1280,"viewportHeight": 800,"fullPage": true,"imageWidth": 1280,"imageHeight": 4000,"truncated": true,"bytes": 363614,"loadTimeMs": 7636,"takenAt": "2026-09-27T06:17:50.332Z","error": null}
Pages that fail (DNS error, timeout after one retry) still get a row with the error field filled, so you know which ones to retry.
Pricing
Pay per event, no subscription and no platform usage charges on top:
- $3.00 per 1,000 screenshots ($0.003 each).
- Failed pages are free.
Limits
- Pages behind a login cannot be captured, and the actor never logs in.
- Sites with strong bot protection may show their challenge page instead of the content; you then get a screenshot of the challenge. The status code and title help you spot these.
- Cookie banner hiding covers the most common consent tools but not every custom popup; add selectors in
hideSelectorsfor the rest. - Pages longer than
maxPageHeightare cut and markedtruncated. Images are also kept under about 16,000 pixels tall, so on the mobile preset (3x) a full page capture stops at about 5,300 CSS pixels. - Screenshots stay in the run's storage for the retention period of your Apify plan; download them if you need them longer.
FAQ
How fast is it? Two pages at once by default. Light pages take 2 to 5 seconds, heavy full page captures 20 to 40 seconds, so plan on 5 to 15 pages a minute at the default 1 GB of memory. More memory with a higher maxConcurrency is faster.
Can I get PDF output? Not in this version. PNG and JPEG only.
Can I capture only part of a page? Use fullPage: false for the first screen, or set a custom viewport.
Why is the image height larger than the viewport height times the scale? For full page captures the height is the full scrollable height of the page, up to maxPageHeight.
Can AI agents call it? Yes. The input is small and the price per screenshot is fixed, so it works well through the Apify MCP server.