Website Screenshot: Bulk Full-Page & Mobile avatar

Website Screenshot: Bulk Full-Page & Mobile

Pricing

from $0.70 / 1,000 screenshots

Go to Apify Store
Website Screenshot: Bulk Full-Page & Mobile

Website Screenshot: Bulk Full-Page & Mobile

Capture full-page or viewport screenshots of many URLs as PNG or JPEG, in desktop, laptop, tablet and mobile sizes in one run. Hides cookie banners, captures single elements, and returns a shareable image link per screenshot.

Pricing

from $0.70 / 1,000 screenshots

Rating

0.0

(0)

Developer

Ctrio Lab

Ctrio Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Security

Limited permissions

Share

Capture screenshots of many web pages in one run. Paste a list of URLs, pick one or more device sizes (desktop, laptop, tablet, mobile or your own), and get a PNG or JPEG for every URL and size, with a link you can open or share.

$1 per 1,000 screenshots plus the run's platform usage, like Apify's own screenshot Actor. Failed URLs are not charged the screenshot fee.

What it does

  • Bulk URLs: hundreds of pages per run, several at a time. Duplicates are removed and example.org is read as https://example.org.
  • Several device sizes in one run: Desktop 1920x1080, Laptop 1366x768, Tablet 820x1180 (iPad, 2x), Mobile 390x844 (iPhone, 2x) or a custom width and height. Each URL is captured once per size you pick.
  • Full page or above the fold: full-page captures scroll first so lazy-loaded images appear.
  • Hide cookie banners: common consent pop-ups (OneTrust, Cookiebot, Usercentrics, Didomi, Quantcast, CookieYes, Google consent and more) are hidden with CSS. Nothing is clicked or accepted.
  • Hide anything else: add your own CSS selectors, e.g. .newsletter-popup, #chat-widget.
  • Capture one element: e.g. #pricing, main or .chart instead of the whole page.
  • Wait for content: extra delay, "wait for element", and three load modes (load, DOM ready, network idle) for single-page apps.
  • Dark mode: asks the page for its dark color scheme.
  • Shareable image links: every result has a screenshotUrl that opens the image directly (turn off "Shareable screenshot links" to keep images private to your account).
  • Clear results: final URL after redirects, HTTP status, page title, image size in pixels and bytes, and a preview column in the dataset table.

How to use it

  1. Paste your URLs into URLs.
  2. Pick Viewports (desktop is the default), PNG or JPEG, and full page or not.
  3. Start the run. Open the Screenshots tab of the dataset to see previews, or download the dataset as JSON, CSV or Excel. All image files are also in the run's key-value store.

Example input:

{
"urls": ["https://apify.com", "https://www.wikipedia.org", "https://news.ycombinator.com"],
"viewports": ["desktop", "mobile"],
"fullPage": true,
"format": "jpeg",
"jpegQuality": 80,
"hideCookieBanners": true,
"hideSelectors": [".newsletter-popup"]
}

Output

One item per screenshot:

{
"url": "https://www.wikipedia.org/",
"finalUrl": "https://www.wikipedia.org/",
"viewport": "mobile",
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/0002-wikipedia.org-mobile.jpg",
"key": "0002-wikipedia.org-mobile.jpg",
"format": "jpeg",
"width": 780,
"height": 3410,
"fullPage": true,
"truncated": false,
"selector": null,
"statusCode": 200,
"title": "Wikipedia",
"sizeBytes": 214733,
"capturedAt": "2026-10-26T04:30:00.000Z"
}

File names start with the URL's position in your list, so they sort in your order: 0001-apify.com-desktop.png, 0001-apify.com-mobile.png, 0002-....

URLs that fail (domain does not exist, timeout, element not found) are not added to the dataset and are not charged. They are listed with the error in the key-value store record SUMMARY.

Input

FieldWhat it does
urlsPages to capture. Required.
viewportsdesktop, laptop, tablet, mobile, custom. One screenshot per URL per viewport. Default desktop.
fullPageWhole page (default) or only the visible viewport.
format, jpegQualitypng (default) or jpeg with quality 1 to 100 (default 80).
hideCookieBannersHide common consent pop-ups with CSS. Default on.
hideSelectorsExtra CSS selectors to hide.
selectorCapture only the first element matching this CSS selector.
waitForSelectorWait until this element is visible.
delayMsExtra wait after load. Default 1000 ms.
waitUntilload (default), domcontentloaded, networkidle.
scrollToBottomScroll first to load lazy images (full page only). Default on.
darkModePrefer the dark color scheme.
customWidth, customHeightSize of the custom viewport.
maxFullPageHeightLong pages are cut here (default 10,000 px, truncated: true). 2x viewports are cut at 8,000 px of page height.
pageTimeoutSecsTime limit for loading one page (default 60 s). A page that does not load in time is retried once.
maxConcurrencyPages at a time (default 4, also limited by memory: 2 per 2 GB).
publicLinksMake screenshotUrl open without an API token (default on).

Pricing

  • $1.00 per 1,000 screenshots (one dataset item = one screenshot), with discounts on paid Apify plans (Bronze 10%, Silver 20%, Gold and higher 30%). Failed URLs are not charged.
  • Plus the run's platform usage (compute), billed by Apify like for its own screenshot Actor. In our tests at the default 4 GB, a typical home page cost about $0.0005 to $0.001 of usage, and very long pages (10,000 px Wikipedia articles) about $0.002. Use JPEG, a smaller maxFullPageHeight or fullPage: false to make it cheaper.
  • You can set a maximum cost per run in the run options; the Actor stops cleanly when it is reached.

Use with the API, Make, Zapier or AI agents

Call it like any Apify Actor, for example run-sync-get-dataset-items with the input above, and read screenshotUrl from each item. Schedule it in Apify to keep daily visual snapshots of competitor pages, landing pages or your own site after each deploy. It also works through the Apify MCP server, so an AI agent can take screenshots on request.

Limits

  • Pages behind a login and pages protected by a CAPTCHA or bot wall are not supported. The Actor does not log in, solve CAPTCHAs or use proxies to get around blocks.
  • Cookie banners are hidden, not accepted, so content that only loads after consent is not shown.
  • Very long pages are cut at maxFullPageHeight.
  • The default memory is 4 GB (one full CPU). In our tests it was cheaper per screenshot than 2 GB because pages render faster. Very heavy pages (huge articles with many images or maps) can take a minute each.
  • Video, canvas animations and some web fonts may look different from your own browser.

Feedback

Found a page that does not render well? Open an issue on the Actor's Issues tab with the URL and your input, and we will look at it.