Website Screenshot API - Full Page, Mobile, PDF $2.50/1K
Pricing
from $2.00 / 1,000 screenshots
Website Screenshot API - Full Page, Mobile, PDF $2.50/1K
Website screenshot API: full-page or viewport PNG, JPEG or PDF of any URL in a real browser. Desktop, tablet, mobile or custom size, dark mode, cookie banners hidden, ads blocked, lazy images loaded. Bulk up to 1,000 URLs. $2.50 per 1,000 screenshots ($4 full page or PDF), refused pages free.
Pricing
from $2.00 / 1,000 screenshots
Rating
0.0
(0)
Developer
Khandji Omar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Features
Share
Capture any web page as a PNG, JPEG or PDF in a real Chrome browser. Paste up to 1,000 URLs, pick a device, and get one row per page with a public link to the file, the final URL, the HTTP status, the page title and the load time.
- Full page or viewport (very long pages are cut at 12,000 px so endless feeds cannot stall the run), or one element with a CSS selector.
- Devices: desktop 1920x1080, laptop 1366x768, retina @2x, iPad, iPhone @3x, or any custom size.
- Clean captures: cookie banners of the common consent tools are hidden (never accepted for you), ads and trackers are blocked, lazy images are loaded by scrolling.
- Dark mode, extra delay, wait for an element, hide chat widgets or headers.
- Refused pages are free: when a site answers with an error page (HTTP 4xx/5xx), the capture is still delivered for your records but never charged. Pages that fail to load are not charged either.
In short: what you give, what you get, what it costs
| You give | Up to 1,000 web page links, a device and a format |
| We do | Open each page in a real Chrome browser and capture it |
| You get | One row per page: a public link to the PNG, JPEG or PDF file, the final URL, HTTP status, page title and load time |
| It costs | $2.50 per 1,000 screenshots, $4 per 1,000 full-page screenshots or PDFs, + $0.001 per GB of run memory per run ($0.004 at the default 4 GB). The first 5 screenshots of every run are free. No supplier fee |
| It does not | Sign in to sites. Very long pages are cut at 12,000 pixels |
A real result row is shown further down this page.
Free tier — 5 results free on every run
The first 5 results of every run are free, on every run you ever make — not a one-off trial. One guard: the free allowance never covers more than half of a run, so the offer stays sustainable.
Price
| What you get | Price per 1,000 |
|---|---|
| Viewport or element screenshot (PNG/JPEG) | $2.50 |
| Full-page screenshot or PDF | $4.00 |
| Run start (pays the browser start) | $0.001 per GB of run memory: $0.004 at the default 4 GB |
The first 5 screenshots of each run are free. Set Max cost per run and the run stops before it spends more.
How this compares with the paid screenshot Actors most used in Apify Store (prices read from the Store on 2026-10-18):
| Actor | Price per 1,000 |
|---|---|
| This Actor | $2.50, $4 full page or PDF, error pages free |
| moonweil/url-screenshot-api | $4 + $0.001 per run |
| i-scraper/website-screenshot | $6 |
| apify/screenshot-url | free Actor, you pay the platform usage |
Measured, not promised
Test run on 50 popular websites (news, shops, SaaS, government), desktop, default settings, 2026-10-18:
| Mode | Good captures out of 50 |
|---|---|
| Viewport PNG | 37 (13 sites answered with an error page: delivered, not charged) |
| Full page JPEG | 36 |
Some large news and social sites refuse automated browsers; this Actor does not try to get around that. It tells you which pages refused (blocked: true, statusCode), keeps one plain screen-size capture of the refusal as proof, and does not charge them.
Input example
{"urls": ["https://apify.com", "example.com"],"device": "mobile","fullPage": true,"format": "jpeg","darkMode": false}
Output example
A real row from this Actor's latest run on Apify (2026-10-23; long texts are cut and people's names hidden here, your dataset has them in full):
{"status": "ok","type": "screenshot","blocked": false,"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/n1hRv8H6fOMeZZXKM/records/screenshot-0001-apify.com.png?signature=Rrmd5FZPoYHVjEcyVQIh","key": "screenshot-0001-apify.com.png","format": "png","device": "desktop","viewportWidth": 1920,"viewportHeight": 1080,"fullPage": true,"darkMode": false,"bytes": 943019,"loadTimeMs": 4211,"takenAt": "2026-10-23T23:45:36Z"}
The files stay in the run's key-value store; screenshotUrl opens them directly.
Every field
| Field | What it holds |
|---|---|
url | page you asked for |
finalUrl | page after redirects |
statusCode | HTTP status |
title | page title |
screenshotUrl | link to the screenshot |
key | file name in the run's storage |
format | png or jpeg |
device | desktop or mobile |
viewportWidth | width (px) |
viewportHeight | height (px) |
fullPage | whole page captured |
darkMode | dark mode |
bytes | file size |
loadTimeMs | page load time (ms) |
takenAt | capture time |
startUrl | the address as you typed it (same name as other screenshot tools) |
screenshotKey | same as key (same name as other screenshot tools) |
blocked | true when the site refused the page |
Compared with apify/screenshot-url
Read on the Store on 2026-10-29 (Website Screenshot Generator, the most used). Every input it has exists here:
| Input of apify/screenshot-url | Here |
|---|---|
urls, format (png, pdf) | urls, format (png, jpeg, pdf) |
waitUntil (load, domcontentloaded, networkidle0, networkidle2) | same four names accepted |
delay (ms, up to 5 minutes) | delay (ms) and delaySeconds, up to 5 minutes |
viewportWidth (up to 3840) | viewportWidth, or a full custom size and 9 more devices |
scrollToBottom, delayAfterScrolling, waitUntilNetworkIdleAfterScroll, waitUntilNetworkIdleAfterScrollTimeout | same four inputs |
selectorsToHide | selectorsToHide (comma text) and hideSelectors (list) |
proxy | proxy (Apify Proxy or your own) |
output screenshotKey, screenshotUrl, startUrl, url | same four fields |
What this Actor adds: one element instead of the page, dark mode, cookie banners hidden, ads and trackers blocked, 12 parallel pages, a hard cost cap, and refused pages that are shown but never charged.
Compared with cheapapi/website-screenshot-api
Read on the Store on 2026-10-23 (Website Screenshot API — Full-Page, Element & Device Capture). Where it does better, this section says so.
- Built on the site's own data, not a resold scraper: no second Actor between you and the source.
- Free results on every run and a hard cost cap (
maxTotalChargeUsd). - Price: $2.5 per 1,000 here, $0.89 there.
Use cases
- Visual monitoring: schedule the Actor daily on your own pages or competitors' landing pages and keep a dated archive.
- SEO and QA: check how pages render on mobile and desktop after a release.
- Evidence and compliance: dated PDF or PNG copies of pages, ads or terms.
- AI agents: give an agent a picture of a page (available through Apify MCP).
Why use it
- Try before you pay. The first 5 results of every run are free.
- Pay only for data delivered. Failed inputs and pages that refuse the visit are never billed.
- Hard cost cap. Set
maxTotalChargeUsdand a run never costs more than you allow. - Ready to use. JSON, CSV or Excel, the Apify API, n8n, Make, Zapier, or as an MCP tool for AI agents.
How to use it in 3 steps
- Click Try for free; the form opens with a ready example in URLs.
- Optional: change the other fields; every one has a description and a sensible default.
- Click Start and download the results as JSON, CSV or Excel, or read them from the API.
FAQ
Can it log in or solve CAPTCHAs? No. It captures public pages as any visitor sees them.
Does it accept cookies for me? No. Consent banners are hidden with CSS so the page is readable; nothing is clicked.
Why is a full page more expensive? The browser has to lay out and paint the whole page, which takes about twice the computing time of one screen.
Can I call it from code? Yes: Apify API, Python/JavaScript clients, Make, Zapier, n8n, or as an MCP tool.
All input fields
The main fields are described above; these are the others the form accepts:
blockAds(Block ads and trackers) — Drop requests to common ad and tracking networks. Faster pages, cleaner screenshots.elementSelector(Capture only this element) — Optional CSS selector: the screenshot shows only the first matching element.hideCookieBanners(Hide cookie banners) — Hide the consent pop-ups of the common consent tools. They are hidden, never accepted.maxConcurrency(Pages at the same time) — Advanced. Pages opened in parallel (1 to 12).quality(JPEG quality) — 10 to 100. Default 80.timeoutSeconds(Page timeout (seconds)) — 10 to 120. Default 45.waitForSelector(Wait for element) — Optional CSS selector to wait for before the capture.