Website Screenshot API — Full Page, Mobile, Element & PDF
Pricing
from $1.00 / 1,000 screenshots
Website Screenshot API — Full Page, Mobile, Element & PDF
Bulk website screenshots and PDFs: viewport, full-page or element, as PNG, JPEG or PDF, on desktop, tablet or mobile. Hides cookie banners, supports dark mode, returns direct file links. $1 per 1,000 screenshots, $2 per 1,000 full-page/PDF.
Pricing
from $1.00 / 1,000 screenshots
Rating
0.0
(0)
Developer
ActorForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Bulk website screenshots and PDFs: viewport, full-page or element, as PNG, JPEG or PDF, on desktop, tablet or mobile. Hides cookie banners, supports dark mode, returns direct file links. $1 per 1,000 screenshots, $2 per 1,000 full-page/PDF.
Take website screenshots and PDFs at scale with one API call. Give it a list of URLs. You get back a viewport, full-page or single-element capture of each page as PNG, JPEG or PDF, rendered on desktop, laptop, tablet or mobile (real iPhone/iPad viewports and user agents), with cookie banners hidden and optional dark mode. Every capture is saved to storage and returned as a direct download link that works without an API token, so it's easy to hand to AI agents, Zapier/Make, or your own app. Use it for visual monitoring and archiving, website thumbnails and link previews, SEO and competitor audits, QA and regression snapshots, compliance evidence, or as a 'look at this page' tool for AI agents. Pages that fail to load (blocked, 4xx/5xx, nothing rendered) are reported with the reason and never charged.
What data does it return?
Every run outputs clean, schema-validated rows like these:
| url | status | captureType | format | width | height | fileUrl | error |
|---|---|---|---|---|---|---|---|
| https://en.wikipedia.org/wiki/Web_scraping | ok | fullPage | png | 390 | 3461 | https://api.apify.com/v2/key-value-stores/…/records/0002-en-wikipedia-org-wiki-Web-scraping.png?signature=… | |
| https://github.com | ok | viewport | png | 1920 | 1080 | https://api.apify.com/v2/key-value-stores/…/records/0001-github-com.png?signature=… | |
| https://www.nytimes.com | error | viewport | png | HTTP 403 (not charged) |
How much does it cost?
Transparent pay-per-event pricing — you only pay for what you get, and the actor always respects your run budget: set a maximum total charge and it stops cleanly at the cap instead of overrunning.
| Event | Price | Charged | Worked example |
|---|---|---|---|
screenshot | $0.001 | per viewport or element screenshot saved | 1,000 homepage thumbnails = $1.00 |
full-page-or-pdf | $0.002 | per full-page screenshot or PDF saved | 500 full-page captures = $1.00; 100 PDFs = $0.20 |
apify-actor-start | $0.00005 | per run per GB of memory (platform start fee) | One run at 2 GB = $0.0001 |
Input options
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
urls | array | yes | — | Web pages to capture (up to 5,000 per run). Bare domains like example.com get https:// added. |
format | string | no | "png" | PNG (lossless), JPEG (smaller files) or PDF (A4, backgrounds printed). |
fullPage | boolean | no | false | Capture the whole scrolling page instead of just the visible viewport. Full-page captures are billed at the full-page rate. |
device | string | no | "desktop" | Viewport preset: desktop 1920×1080, laptop 1366×768, tablet (iPad) 820×1180 @2x, mobile (iPhone) 390×844 @3x with a mobile user agent. |
width | integer | no | — | Overrides the device preset width. |
height | integer | no | — | Overrides the device preset height. |
selector | string | no | — | Capture only the first element matching this CSS selector, e.g. 'header' or '#pricing'. Billed as a screenshot (ignored for PDF). |
waitUntil | string | no | "load" | When the page counts as loaded. 'networkidle' is best for heavy single-page apps but slower. |
delayMs | integer | no | 1000 | Wait this long after loading before capturing (lets animations and lazy content settle). |
hideCookieBanners | boolean | no | true | Hide common cookie-consent popups (OneTrust, Cookiebot, Usercentrics, Didomi, Quantcast and more) before capturing. |
darkMode | boolean | no | false | Render with prefers-color-scheme: dark. |
jpegQuality | integer | no | 80 | 10–100, JPEG only. |
Limits & honest notes
- Full-page captures are capped at 16,000 device pixels tall (Chrome's practical rasterisation limit): 16,000 CSS px on desktop/laptop, 8,000 on tablet/mobile (2×). Longer pages are captured from the top down to that height.
- Full-page mobile/tablet captures render at 2× (not 3×) to stay within that limit. Viewport captures use the device's native scale.
- Sites that block automated browsers (e.g. some news paywalls returning HTTP 403) can't be captured. They come back as error rows and are not charged.
- Video and audio are not loaded (they never appear in a still image), which makes captures faster and leaner.
- Cookie-banner hiding covers the major consent platforms (OneTrust, Cookiebot, Usercentrics, Didomi, Quantcast, TrustArc and more). Custom in-house banners may still appear.
- For security, internal and private addresses (localhost, 10.x, 192.168.x, cloud metadata endpoints) are refused.
- Download links are signed and work without an API token for as long as the run's storage is retained (per your Apify plan).
- Respects your run budget: set a maximum total charge and the actor stops cleanly at the cap.
Related ActorForge actors
- Website Change Monitor
- Website to Markdown
- Image Converter & Compressor — compress or convert the screenshots
- SEO Audit Crawler
Changelog
- 2026-10-18 — Initial release: PNG/JPEG/PDF, viewport/full-page/element, 4 device presets, cookie-banner hiding, dark mode, signed download links, SSRF protection.
Built and maintained by ActorForge. Reliability first: every actor in the portfolio is monitored by an automated nightly self-test, and breakages are typically fixed the same day.