Bulk Website Screenshots from CSV, Google Sheet or Dataset avatar

Bulk Website Screenshots from CSV, Google Sheet or Dataset

Pricing

from $2.80 / 1,000 screenshots

Go to Apify Store
Bulk Website Screenshots from CSV, Google Sheet or Dataset

Bulk Website Screenshots from CSV, Google Sheet or Dataset

Screenshots every website in an Apify dataset, CSV, Excel file, Google Sheet or URL list, desktop and/or mobile, cookie banners hidden, adding a public image link to each row. Inputs: datasetId, fileUrl or urls. Charged per screenshot stored, never for dead or blocked sites. Agent-ready: x402, MCP.

Pricing

from $2.80 / 1,000 screenshots

Rating

0.0

(0)

Developer

Adam Pearce

Adam Pearce

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

You have a list of 500 businesses. You need a picture of every one of their websites. For a personalised video, a web design pitch, an audit, or just to see which sites look like they were built in 2009. Opening them one by one and pressing screenshot takes an afternoon.

Give this Actor the list as it is: the Apify dataset from your Google Maps scrape, a CSV, an Excel file or a Google Sheet. It finds the website column on its own, opens every site in a real Chrome browser, hides the cookie banner, and takes a desktop screenshot, a mobile one, or both. Every row of your list comes back with all its own columns plus a public image link, so the business name, phone number and screenshot sit side by side, ready to use.

What it does

  • Reads your list as it is: an Apify dataset (any scraper's output), a public CSV, TSV, Excel, JSON or JSON Lines file, a Google Sheet link, or just websites pasted one per line.
  • Finds the website column for you: website, Website, url, domain and friends are picked up automatically. example.com, www.example.com and full links all work.
  • Desktop, mobile or both: desktop at 1366 x 768 (any size up to 4K), mobile at iPhone size with a phone browser, so you see what a customer on their phone sees.
  • Clean shots: the consent pop-ups of the common cookie platforms (OneTrust, Cookiebot, Usercentrics, Complianz, CookieYes and more) are hidden, so the website itself is visible. Nothing is accepted on the visitor's behalf.
  • Above the fold or full page: the first screen a visitor sees (the default, and what outreach videos use), or the whole page down to the footer.
  • Public image links: every screenshot gets a link that opens in any browser, Dubb, Loom, Sendspark, Canva or a spreadsheet, no Apify login needed.
  • Honest about every row: each row says ok, no_website, invalid_url, unreachable, timeout, site_error (the site answered 403, 404 or 500), private_address, partial or repeat, with a plain-English note.
  • Optional CSV or Excel export of the whole list with the links added.

Example

Your Google Maps scrape, or a sheet like this:

namecityWebsite
GreggsNewcastlegreggs.co.uk
ScrewfixYeovilwww.screwfix.com

comes back as:

namecityWebsitescreenshotStatusscreenshotUrlmobileScreenshotUrlpageTitle
GreggsNewcastlegreggs.co.ukokhttps://api.apify.com/.../screenshot-000001-desktop.jpghttps://api.apify.com/.../screenshot-000001-mobile.jpgGreggs
ScrewfixYeovilwww.screwfix.comokhttps://api.apify.com/.../screenshot-000002-desktop.jpghttps://api.apify.com/.../screenshot-000002-mobile.jpgScrewfix

The Console's Screenshots view shows the images as thumbnails right in the table.

What it is good for

  • Personalised video outreach: a screenshot of the prospect's own website as the background of every Dubb, Loom or Sendspark video, for a whole lead list in one run.
  • Web design and SEO agencies: see at a glance which businesses on a list have an outdated, broken or mobile-unfriendly site, before you pitch.
  • Lead qualification: run it straight after a Google Maps or directory scrape and sort the list by what the websites look like.
  • Audits, reports and archives: a dated picture of every site in a portfolio, a competitor set or a client list.

Pricing

Pay per event, no subscription:

EventPrice
Screenshot stored (desktop and mobile each count once)$0.004 (Bronze $0.0036, Silver $0.0032, Gold $0.0028)
Export file (CSV or Excel, only if you ask)$0.01
Actor start, per GB of memory$0.001 (the default 2 GB run is $0.002)

Never charged: rows with no website, values that are not web addresses, sites that do not exist or do not answer, sites that answer with an error page (403, 404, 500), private network addresses, and repeats of a website already captured in the same run.

Worked examples: 500 leads on desktop only is about $2.00. The same 500 on desktop and mobile is about $4.00. A 50-row test list is about $0.20.

Notes worth knowing before your first big run

  • Big national chains with heavy bot protection (some supermarkets, banks, big retailers, some universities) refuse cloud servers outright. Those rows come back as site_error with the HTTP code and cost nothing. Ordinary business websites, the kind on a local lead list, load normally.
  • Speed: about 4 websites at a time at the default 2 GB, roughly 40 websites on both devices in under 5 minutes. Give the run more memory to go faster; the price per screenshot does not change.
  • Facebook or Google Maps links in the website column are captured as given, with a warning, because a profile page is not the business's own website.
  • Very long pages in full-page mode are cut at 12,000 pixels tall and flagged fullPageTruncated.
  • How long the images last: screenshots live in the run's storage for as long as your Apify plan keeps it (7 days on the Free plan). Download them or chain Bulk Image & File Downloader to keep them.
  • Proxy: off by default. Apify datacenter proxy or your own proxy URLs can be switched on. Residential proxy is not supported, because one page through it costs more than the screenshot price.

FAQ

Can I feed it my Google Maps scraper results directly? Yes. Pick the run's dataset in the 'Dataset' field. The website column is found automatically and every other column (name, phone, address, rating) comes back untouched.

Does it click "Accept cookies"? No. It hides the banners with styling, so nothing is consented to on anyone's behalf.

Why did a site come back as site_error? The site answered with an error code (shown in httpStatus): usually 403, meaning it blocks cloud servers, or 404, meaning the page no longer exists. You are not charged for it.

Can I get PNG instead of JPEG? Yes, set 'Image format' to PNG. JPEG is the default because the files are about five times smaller and look the same in a video or a slide.

Is this legal? It opens public web pages the way a visitor would and takes a picture of what is shown. What you then do with the pictures (and with any personal details in your own list) is your responsibility.

The rest of the toolkit

Sibling Actors that fit together as a pipeline:

For AI agents

Pay per event, agent-payable through x402 and MCP, limited permissions, no standby. Inputs: datasetId, fileUrl (CSV, Excel, JSON, Google Sheet), urls (a plain list) or data (inline rows); websiteField (auto-detected when empty); devices (desktop, mobile); fullPage, imageFormat, desktopWidth, desktopHeight, waitSecs, hideCookieBanners; maxItems; exportFormats. Returns one dataset item per input row with every original column plus screenshotStatus, screenshotUrl, mobileScreenshotUrl, finalUrl, pageTitle, httpStatus and screenshotError, and a SCREENSHOT_SUMMARY key-value record. Charged per screenshot stored; failures, blocked sites and repeats are not charged.

Notes

Screenshots are taken with Playwright (Apache 2.0) and Chrome. The default input uses large, well-known public websites only.

If these screenshots saved you an afternoon of clicking, a review on the Apify Store helps a lot. Found a site it captured badly? Open an issue with the link and I will look at it.