Website Screenshot API - Full Page PNG, JPEG & PDF (Bulk URLs) avatar

Website Screenshot API - Full Page PNG, JPEG & PDF (Bulk URLs)

Pricing

from $6.00 / 1,000 screenshot captureds

Go to Apify Store
Website Screenshot API - Full Page PNG, JPEG & PDF (Bulk URLs)

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

IntegriApps .com

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Security

Limited permissions

Share

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, domcontentloaded or networkidle, 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

FieldDescriptionDefault
urlsPages to capture— (empty = free demo with example.com)
formatpng, jpeg or pdfpng
devicedesktop, tablet or mobiledesktop
fullPageWhole page (PNG/JPEG) instead of only the viewporttrue
viewportWidth / viewportHeightOverride the device viewport (px)device size
maxFullPageHeightCut very long pages at this height (CSS px, 500–20,000)10,000
jpegQualityJPEG quality 1–10080
pdfFormatA4, Letter, Legal, A3A4
waitUntilload, domcontentloaded or networkidleload
waitForSelectorCSS selector that must be visible before capturing—
delayMsExtra wait before capturing (0–30,000 ms)0
scrollToLoadLazyContentScroll first to load lazy imagestrue
hideCookieBannersHide common cookie banners with CSStrue
hideSelectors / customCssExtra selectors to hide / CSS to inject—
navigationTimeoutSecsPage load timeout (5–120 s)30
maxRetriesRetries for timeouts, network errors, 429 and 5xx2
maxConcurrencyPages 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 / height are the real image pixels (mobile and tablet use a 2x pixel ratio, so a 390 px wide phone gives a 780 px wide image).
  • truncatedAtHeight is set when the page was longer than maxFullPageHeight and was cut.
  • status is one of ok, blocked_domain, blocked_by_robots_txt, http_error (4xx/5xx), invalid_url or error (timeout, network error). Only ok is charged.
  • screenshotUrl is 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_SUMMARY with 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.