Website Screenshot API - Bulk, Full Page & Visual Change Alerts avatar

Website Screenshot API - Bulk, Full Page & Visual Change Alerts

Pricing

from $3.00 / 1,000 screenshots

Go to Apify Store
Website Screenshot API - Bulk, Full Page & Visual Change Alerts

Website Screenshot API - Bulk, Full Page & Visual Change Alerts

Screenshots of many web pages (desktop or mobile, full page), and alerts when a page visually changes.

Pricing

from $3.00 / 1,000 screenshots

Rating

0.0

(0)

Developer

Afterstar

Afterstar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

Pricing: $3.00 per 1,000 screenshots, $7.00 per 1,000 full-page screenshots, in every mode.

What does Website Screenshots do?

For each URL: a screenshot in headless Chrome, desktop (1366×768) or mobile (iPhone size), the visible area or the full page, PNG or JPEG, saved with a download link in each row, plus the final URL, HTTP status and page title. In 'New, changed and removed' mode it's a visual change monitor: a page counts as changed when its look moves past a threshold (perceptual hash) on two runs in a row, and the row links the old and the new screenshot.

Run it once, or schedule it to alert you when a page really changes how it looks. The tool remembers what it has seen, in a storage in your own Apify account.

What you get

ShotsDesktop (1366×768) or mobile (iPhone size); the visible area or the full page; PNG or JPEG
Per URLA download link to the screenshot, the final URL, HTTP status and page title
Full pageScrolls first so lazy images load; up to 10,000 px tall (taller pages are capped and say so)
Change alerts'Changes' mode compares how each page looks (perceptual hash) and links the old and new shot
Price$3.00 per 1,000 screenshots, $7.00 per 1,000 full-page screenshots; failed pages are free

Use cases

  • Archive how your or your competitors' pages look, weekly.
  • Get alerted when a page visually changes (pricing pages, landing pages, partner sites).
  • Screenshots for reports, QA and link previews.

Input

FieldWhat it does
URLsPages, one per line
DevicesDesktop, mobile or both
Full pageThe whole page instead of the visible area
FormatPNG or JPEG
Wait after loadExtra wait for late content (default 1 s)
Hide these elementsOptional CSS selectors (like #chat-widget) hidden before the shot
Hide common cookie bannersHides the consent boxes of the common cookie tools before the shot (off by default)
Change thresholdHow different a page must look to count as changed (default 12)
Output modeAll results, only new results, or new + changed + removed results

Output

One row per screenshot:

{
"id": "shot:https://example.com/|desktop|0",
"changeType": "changed",
"url": "https://example.com/",
"device": "desktop",
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/…/records/shot-….png",
"width": 1366,
"height": 768,
"partlyLoaded": null,
"capped": null,
"pageHeight": null,
"visualDistance": 31,
"previousScreenshotUrl": "https://api.apify.com/v2/key-value-stores/…/records/shot-….png"
}

Every row has every key (null when there's no value). changeType is new, changed, unchanged or removed; a changed row lists changedFields and the previous values. If a source fails or rate-limits the request, you get one row with changeType: "status" and a statusCode instead of an error, and it's free.

Schedule it

  1. Fill in the input and save it as a task.
  2. Run it once with Baseline only switched on: it remembers the current results and lists nothing. Or skip this and accept that the first scheduled run lists everything once.
  3. Set Output mode to Only new results or New, changed and removed, and add a schedule.
  4. Connect an integration (Slack, Google Sheets, Zapier, Make, n8n), or put a webhook URL in the input.

Each saved task keeps its own memory; switching a task between modes keeps it. Each run saves a summary (OUTPUT in the run's key-value store) with the counts.

Apify webhook template (Integrations → Webhook → payload):

{"datasetUrl": "https://api.apify.com/v2/datasets/{{resource.defaultDatasetId}}/items?clean=true&format=json"}

How much does it cost?

  • $3.00 per 1,000 screenshots of the visible area, $7.00 per 1,000 full-page screenshots (on paid Apify plans 10-30% less). In 'changes' mode you pay for every screenshot checked, but only the changes are listed.
  • Example: 1,000 screenshots cost $3.00 (full page: $7.00); a daily screenshot of 50 pages costs about $4.50 a month (full page: about $10.50), plus Apify's start fee: $0.00010 per run.
  • Status rows (errors) are free. Set a spending limit on the run and the tool stops there.

Good to know

  • You pay per screenshot taken; pages that fail to load (or answer an error) are free.
  • Each shot has 18 seconds in total (full page: 35 seconds). A slow page is captured as soon as its content is there, even if trackers are still loading; a page that can't be captured in time gets a free 'timed out' row.
  • Full-page shots scroll down the page first, so images that load on scroll appear, and wait up to 4 seconds for images still loading. If the page couldn't be scrolled to the end or images were still loading, the shot is taken anyway and the row says partlyLoaded: true.
  • If a pop-up locks the page so its lower part never renders, the tool undoes the lock (the pop-up stays in the picture). A full-page shot that still comes out blank below the first screen is retried once; if it's still blank, it's attached free with an error saying so.
  • Full-page shots are at most 10,000 pixels tall (on mobile, 5,000 page pixels at 2x). A taller page is captured from the top down to that height, and the row says capped: true with the page's real height in pageHeight. Most pages fit; long news front pages and articles (such as BBC, 13,000 pixels, or Wikipedia's 'United States', 76,000 pixels) are capped.
  • Pop-ups and cookie banners appear as a first-time visitor sees them, unless you hide them: 'Hide common cookie banners' hides the consent boxes of the common cookie tools (OneTrust, Cookiebot, Didomi, Usercentrics and others; never accepted, only hidden), and 'Hide these elements' hides anything else you name. Banners made another way may stay.
  • Screenshot links are stored in the run's storage; download them if you need them long term.
  • A visual change needs to hold on two runs in a row, so a one-off pop-up or rotating banner doesn't alert you.

How it compares

Instead ofWith this tool
Taking screenshots by handA whole list in one run, desktop or mobile, visible area or full page
A monthly screenshot planPay per screenshot taken; nothing when you don't run it
Change monitors that compare page textCompares how the page looks, and a change must hold on two runs in a row, so a one-off pop-up doesn't alert you

FAQ

What sizes can I get? Desktop (1366×768) or mobile (iPhone size), the visible area or the full page, as PNG or JPEG.

How tall can a full-page shot be? Up to 10,000 pixels (on mobile 5,000 page pixels at 2x). A taller page is captured from the top down to that height, and the row says capped: true with the page's real height.

What about cookie banners and pop-ups? By default they appear as a first-time visitor sees them. Switch on 'Hide common cookie banners' to hide the consent boxes of the common cookie tools (hidden, never accepted), and list anything else, like a chat widget, in 'Hide these elements'. If a pop-up locks the page so it can't scroll, the tool undoes the lock.

How do change alerts work? Set Output mode to 'New, changed and removed results' and schedule it. A page counts as changed when its look moves past a threshold on two runs in a row, and the row links the old and the new screenshot.

Am I charged when a page fails? No. Pages that don't load, answer an error or time out give a free row.

How long are the screenshots kept? They're in the run's storage in your Apify account, under Apify's data retention; download them if you need them for longer.

Source: the pages you provide, rendered in headless Chrome (Playwright). Check only sites you're allowed to.

More Afterstar tools

Found a problem or need a field? Open an issue on the Issues tab.