Website Screenshot — Full Page, Lazy-Load Safe, Batch, Mobile
Pricing
$4.80 / 1,000 captured screenshots
Website Screenshot — Full Page, Lazy-Load Safe, Batch, Mobile
Full-page website screenshots that wait for lazy-loaded images and fonts, and dismiss cookie banners. Batch up to 100 URLs, desktop/mobile/retina, dark mode, PNG or JPEG. $0.0048 per screenshot produced — failed URLs never charged.
Pricing
$4.80 / 1,000 captured screenshots
Rating
0.0
(0)
Developer
Anthony Snider
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Website Screenshot Pro — full-page shots that actually wait for the page
Screenshot any page, or a whole batch, at desktop / laptop / tablet / mobile sizes. Full-page captures that include lazy-loaded images instead of cutting them off, with cookie banners dismissed so they aren't sitting across your shot.
No API key. No signup. Pay per screenshot produced — a URL that fails is never charged.
Use it as a website screenshot API for thumbnails, visual archives, link previews, monitoring, SEO audits, or agent pipelines: full-page PNG or JPEG capture of any URL, desktop or mobile viewport, retina scale, dark mode, batch of up to 100 URLs in one run.
Why shots come out wrong elsewhere, and what this does about it
| The usual problem | What this actor does |
|---|---|
| Lazy-loaded images render as blank boxes | Scrolls the entire page to trigger loading, returns to top, then captures |
| Web fonts swap mid-capture, text looks wrong | Waits on document.fonts.ready before shooting |
| A cookie banner covers the content | Best-effort dismissal of common consent buttons (can be turned off) |
| Full-page capture is clipped | True fullPage capture, with the real page height reported back |
| One URL per run | Batch input — and one bad URL never aborts the others |
| A failed run still costs you | Only successful screenshots are billed |
Input
{ "url": "https://example.com", "device": "desktop", "fullPage": true }
Batch, mobile, dark mode:
{"urls": ["https://a.com", "https://b.com"],"device": "mobile","colorScheme": "dark","format": "jpeg","quality": 85}
| Field | Type | Default | Notes |
|---|---|---|---|
url / urls | string / array | — | One page, or a batch |
device | desktop | laptop | tablet | mobile | desktop | Tablet 2×, mobile 3× retina |
fullPage | boolean | true | Whole page vs viewport only |
format | png | jpeg | png | JPEG for smaller files |
quality | integer 1–100 | 85 | JPEG only |
colorScheme | light | dark | light | Renders the page's dark mode |
dismissCookieBanners | boolean | true | Best effort, never fails the shot |
extraWaitMs | integer | 500 | Extra settle time for animations |
maxUrls | integer | 20 | Cap, and therefore your budget cap |
Output
One record per URL. Successful captures include a direct image URL:
{"url": "https://example.com","ok": true,"status": 200,"title": "Example Domain","device": "desktop","viewport": "1920x1080","deviceScaleFactor": 1,"fullPage": true,"format": "png","pageWidth": 1920,"pageHeight": 4310,"bytes": 812344,"tookMs": 3120,"screenshotUrl": "https://api.apify.com/v2/key-value-stores/.../records/example-com-1920xfull.png"}
Failures are returned, not thrown:
{ "url": "https://broken.example", "ok": false, "error": "net::ERR_NAME_NOT_RESOLVED", "tookMs": 1200 }
For agents and automation
- Capability: capture a rendered screenshot of one or many web pages
- Required input:
urlorurls - Returns: one JSON record per URL;
screenshotUrlis a directly fetchable image - Bounded:
maxUrlscaps the run; failures isolate per URL - Side effects: none — reads the page, stores images in this run's key-value store
- Determinism: layout-dependent; identical input on an unchanged page yields an equivalent image
Pricing — $0.0048 per screenshot, failures free
Pay-per-event: one flat $0.0048 per screenshot actually produced. A URL that fails —
DNS error, timeout, dead page — is returned as an {ok: false} record and is never charged.
Compared with other paid screenshot actors on Apify (prices checked 2026-08-07):
| Actor | Price | Billing unit |
|---|---|---|
| This actor | $0.0048 | per screenshot produced — failures free |
| i-scraper/website-screenshot | $0.006 | per dataset item |
| crawlerbros/screenshot-url | $0.01 | per actor start — a failed run still bills |
| onescales/website-screenshot-pro | per-start fee | plus your own platform compute |
That is 20% under the cheapest per-screenshot incumbent and less than half of per-start billing, with the honesty guarantee on top: you pay for images, not attempts.
Limits (honest ones)
- Pages that hard-block headless browsers (aggressive bot walls) may fail; you are not charged.
- Cookie-banner dismissal is best-effort pattern matching — exotic consent widgets can survive it.
- Full-page capture walks up to 60,000px of page height; beyond that the capture is of the walked region.
- Batch cap is 100 URLs per run (
maxUrls).