Website Screenshot API - Full Page PNG, JPEG & PDF (Bulk URLs)
Pricing
from $6.00 / 1,000 screenshot captureds
Website Screenshot API - Full Page PNG, JPEG & PDF (Bulk URLs)
Capture full-page or viewport screenshots of many URLs as PNG, JPEG or PDF, on desktop, tablet or mobile. Hides cookie banners, waits for selectors, returns public file links, HTTP status, title and size. Respects robots.txt. Flat price per screenshot. By IntegriApps.
Pricing
from $6.00 / 1,000 screenshot captureds
Rating
0.0
(0)
Developer
IntegriApps .com
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Security
Limited permissionsShare
Take screenshots of websites in bulk: give a list of URLs and get a full-page or viewport capture of each one as PNG, JPEG or PDF, on desktop, tablet or mobile. Every capture comes with a shareable file link, the HTTP status, the page title, the image size in pixels and the file size. Common cookie banners are hidden automatically. Flat price per screenshot, and you only pay for screenshots that were actually captured.
Part of IntegriApps MicroApps. Support Sunday to Friday.
What it does
- Bulk URL to screenshot: one PNG, JPEG or PDF per URL, captured with a real Chromium browser (JavaScript is rendered).
- Full page or viewport: capture the whole scrollable page (up to a height you choose, 10,000 px by default) or only the visible screen.
- Desktop, tablet or mobile: desktop 1366×768, tablet 820×1180 (2x) or mobile 390×844 (2x, touch, mobile user agent). You can also set any viewport size.
- Wait options: wait for
load,domcontentloadedornetworkidle, for a CSS selector to be visible, and/or an extra delay. - Lazy images: scrolls the page first so lazy-loaded images show up in full-page captures.
- Cleaner captures: hides common cookie/consent banners (OneTrust, Cookiebot, Usercentrics, Didomi, Quantcast and others) with CSS, plus any selectors you add (chat widgets, pop-ups) and your own custom CSS. It never clicks "accept".
- PDF export: A4, Letter, Legal or A3, with backgrounds.
- Polite and safe by design: respects robots.txt, uses no proxies and does not bypass logins, paywalls, CAPTCHAs or anti-bot protections.
Use cases
- Visual QA and monitoring: capture your pages on desktop and mobile after each deploy.
- SEO and marketing reports: thumbnails and full-page captures of landing pages and competitors' public pages.
- Archiving and compliance: keep a dated PNG/PDF copy of what a public page showed.
- AI agents and automations: give an agent, Make, Zapier or n8n flow a tool that turns a URL into an image link.
Not supported
To respect their terms, this Actor does not open LinkedIn, Instagram, Facebook/Messenger/Threads, TikTok, X/Twitter, Google (Search, Maps and other Google domains) or Amazon (any country). Those URLs, and links that redirect to them, are returned as blocked_domain and are not charged. Local or private network addresses (localhost, 10.x, 192.168.x…) are refused.
Input
| Field | Description | Default |
|---|---|---|
urls | Pages to capture | — (empty = free demo with example.com) |
format | png, jpeg or pdf | png |
device | desktop, tablet or mobile | desktop |
fullPage | Whole page (PNG/JPEG) instead of only the viewport | true |
viewportWidth / viewportHeight | Override the device viewport (px) | device size |
maxFullPageHeight | Cut very long pages at this height (CSS px, 500–20,000) | 10,000 |
jpegQuality | JPEG quality 1–100 | 80 |
pdfFormat | A4, Letter, Legal, A3 | A4 |
waitUntil | load, domcontentloaded or networkidle | load |
waitForSelector | CSS selector that must be visible before capturing | — |
delayMs | Extra wait before capturing (0–30,000 ms) | 0 |
scrollToLoadLazyContent | Scroll first to load lazy images | true |
hideCookieBanners | Hide common cookie banners with CSS | true |
hideSelectors / customCss | Extra selectors to hide / CSS to inject | — |
navigationTimeoutSecs | Page load timeout (5–120 s) | 30 |
maxRetries | Retries for timeouts, network errors, 429 and 5xx | 2 |
maxConcurrency | Pages captured in parallel (1–10) | 3 |
Example — mobile, full-page JPEG, waiting for the main content:
{"urls": [{ "url": "https://www.python.org/" }, { "url": "https://www.gov.uk/" }],"format": "jpeg","device": "mobile","fullPage": true,"waitForSelector": "main","hideSelectors": ".chat-widget"}
Output
Files are saved in the run's key-value store. The dataset has one item per URL (real output, shortened):
{"url": "https://www.python.org/","finalUrl": "https://www.python.org/","status": "ok","httpStatus": 200,"title": "Welcome to Python.org","format": "png","device": "desktop","screenshotUrl": "https://api.apify.com/v2/key-value-stores/dFuFp6fRJHdeOcvid/records/python-org-1ab11d99.png?signature=…","key": "python-org-1ab11d99.png","contentType": "image/png","width": 1366,"height": 2584,"pdfPages": null,"fileSizeBytes": 464500,"fullPage": true,"truncatedAtHeight": null,"viewport": { "width": 1366, "height": 768 },"capturedAt": "2026-11-01T17:51:13.942Z"}
width/heightare the real image pixels (mobile and tablet use a 2x pixel ratio, so a 390 px wide phone gives a 780 px wide image).truncatedAtHeightis set when the page was longer thanmaxFullPageHeightand was cut.statusis one ofok,blocked_domain,blocked_by_robots_txt,http_error(4xx/5xx),invalid_urlorerror(timeout, network error). Onlyokis charged.screenshotUrlis a signed link that opens the file directly (no token needed), so you can share it or use it in other tools. It stays available for as long as your Apify plan keeps run data (data retention).- The key-value store also has
RUN_SUMMARYwith counts per status.
Pricing
Pay per event: USD 0.006 per screenshot captured (USD 6 per 1,000), the same for PNG, JPEG and PDF, desktop or mobile. Blocked domains, URLs disallowed by robots.txt, invalid URLs, HTTP errors and failed pages are free. You can cap spending with the run's maximum charge setting; the Actor stops cleanly when the limit is reached. Platform usage (browser time) is included in the price; Apify also applies its standard tiny Actor start fee (USD 0.00005 per GB of memory, i.e. USD 0.0001 per run at the default 2 GB).
Use it from your code
Synchronous call that returns the dataset items (with the screenshot links) in the response:
curl -X POST "https://api.apify.com/v2/acts/integriapps~website-screenshot/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"urls":[{"url":"https://example.com/"}],"format":"png","fullPage":false}'
It also works from the Apify API clients (JavaScript/Python), Make, Zapier, n8n and the Apify MCP server for AI agents.
FAQ
Does it render JavaScript? Yes. Pages are opened in Chromium and captured after they load. For heavy single-page apps use waitUntil: "networkidle" or waitForSelector.
Why does a cookie banner still show? Only common consent tools are hidden, and only with CSS. Add the banner's selector to hideSelectors. The Actor never accepts or rejects cookies for you.
Can it capture pages behind a login, a paywall or a CAPTCHA? No. It does not log in, solve CAPTCHAs or bypass anti-bot protection, and it uses no proxies. Pages that block automated browsers usually return http_error (for example 403) and are not charged.
Why was a URL skipped? Check status and error. blocked_by_robots_txt means the site's robots.txt does not allow it (or robots.txt could not be read, in which case we stay on the safe side). blocked_domain means the site is in the not-supported list above.
The full-page image is cut. Why? Pages longer than maxFullPageHeight (10,000 CSS px by default, up to 20,000) are cut to keep files usable; truncatedAtHeight tells you when this happened.
How long are files kept? They live in the run's default key-value store, which follows your Apify plan's data retention. Download them or copy them to your own storage if you need them longer.
Is it legal to use? You are responsible for having the right to capture and use the pages (your own sites, public pages whose terms allow it). The Actor respects robots.txt but does not read each site's terms of service for you.
Changelog
See ./CHANGELOG.md.
Part of IntegriApps MicroApps — small tools by IntegriApps, a SaaS for SMBs. Support Sunday to Friday.