Website Screenshot Monitor - Visual Diff & Change Alerts
Pricing
from $10.00 / 1,000 results
Website Screenshot Monitor - Visual Diff & Change Alerts
Capture full-page screenshots on a schedule, compare them pixel-by-pixel with the previous run, highlight what changed, and get webhook alerts. No API keys needed.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Starsurfer
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Website Screenshot Monitor — Visual Diff & Change Alerts
Capture pixel-perfect full-page screenshots of any website on a schedule, automatically compare them with the previous run, and get alerted the moment a page visually changes — with the percentage changed, the exact changed regions highlighted, and a red-on-gray diff image you can eyeball in seconds.
No API keys. No LLMs. No proxies required. Just URLs in → screenshots, diffs, and alerts out.
What it does
- 📸 Opens each URL in a real Chrome browser and captures a full-page (or viewport) PNG screenshot.
- 🔍 Compares it pixel-by-pixel against the screenshot from the previous run (stored automatically between runs).
- 📊 Reports % of pixels changed, the number of changed pixels, and bounding boxes of every changed region.
- 🖼️ Saves three images per changed page: the new screenshot, a diff image (changes in red on a faded page), and a highlight image (red boxes drawn on the real screenshot).
- 🔔 Optionally POSTs a webhook alert (Slack, Zapier, Make, n8n, or your own endpoint) — only when something actually changed.
Why this one?
- ✅ Reliable by design — automatic retries, per-URL error isolation (one broken URL never kills the run), CSS-animation freezing to prevent false positives, and lazy-load scrolling so below-the-fold images actually render.
- ✅ True visual diffing — most "website change monitors" compare text or HTML only. This Actor sees what your users see: layout shifts, image swaps, banner changes, redesigns, broken CSS.
- ✅ Changes-only mode — schedule it hourly/daily and process only what changed. Every run pushes at least one dataset item (a heartbeat when nothing changed), so your integrations never see an empty dataset and can tell "no changes" apart from "monitor broke".
- ✅ Catches small changes on long pages — reports a change when EITHER the changed-pixel percentage OR an absolute changed-pixel floor is hit, so a single price digit changing on a 10,000-px-tall page still triggers.
- ✅ Two baseline modes — compare against the previous run (classic monitoring) or a fixed baseline (visual-regression testing against an approved state).
Common use cases
- Competitor monitoring — know when a competitor changes pricing, launches a banner, or redesigns.
- Visual regression testing — verify deploys didn't visually break production pages (use
baselineMode: fixed). - Compliance & legal archiving — scheduled, timestamped screenshot evidence of how a page looked.
- Uptime/defacement watch — a hacked or badly broken page is a massive visual change; alert on it.
- Landing-page QA — catch broken images, overflowing text, or CSS regressions across your marketing pages.
Input
The only required field is startUrls. Sensible defaults handle the rest.
{"startUrls": [{ "url": "https://example.com" }],"deltaMode": "changes-only","webhookUrl": "https://hooks.example.com/notify","hideSelectors": ["#cookie-banner", ".ad-slot"]}
Key options (see the input tab for the full list):
| Option | Default | What it does |
|---|---|---|
deltaMode | all | changes-only pushes items only for changed/new/error pages + a heartbeat when nothing changed |
fullPage | true | Full scrollable page vs. viewport only |
hideSelectors | [] | CSS selectors to hide before capture (cookie banners, ads, clocks…) |
minChangePct | 0.1 | Minimum % of pixels changed to count as a change |
minChangedPixels | 200 | Absolute changed-pixel floor — catches small localized changes |
baselineMode | previous-run | Or fixed to always compare against the original baseline |
forceBaseline | false | Reset baselines this run (after an intentional site change) |
webhookUrl | — | POST a JSON alert when any page changed |
Output
One dataset item per monitored URL (plus a heartbeat item when nothing changed in changes-only mode):
{"url": "https://example.com","status": "changed","pageTitle": "Example Domain","changedPct": 2.41,"changedPixels": 55296,"totalPixels": 2293760,"dimensionsChanged": false,"regions": [{ "x": 0, "y": 224, "width": 896, "height": 96 }],"screenshotUrl": "https://api.apify.com/v2/key-value-stores/…/records/screenshot-….png","previousScreenshotUrl": "https://api.apify.com/v2/key-value-stores/…/records/baseline-…","diffUrl": "https://api.apify.com/v2/key-value-stores/…/records/diff-….png","highlightUrl": "https://api.apify.com/v2/key-value-stores/…/records/highlight-….png","checkedAt": "2026-07-20T12:00:00.000Z"}
status is one of baseline (first run for a URL), changed, unchanged, error, or heartbeat.
Webhook alert payload
Sent once per run, only if at least one page changed:
{"source": "website-screenshot-monitor","changedCount": 1,"changes": [{"url": "https://example.com","changedPct": 2.41,"regions": 1,"screenshotUrl": "…", "diffUrl": "…", "highlightUrl": "…"}],"datasetUrl": "https://api.apify.com/v2/datasets/…/items","timestamp": "2026-07-20T12:00:00.000Z"}
Scheduling
Pair this Actor with an Apify Schedule (e.g. every hour) and deltaMode: "changes-only" + a webhook for a fully hands-off visual monitoring pipeline.
Tips for clean diffs
- Hide dynamic elements (carousels, ads, cookie banners, live chats, clocks) with
hideSelectors— this is the #1 fix for noisy diffs. - Animations and transitions are frozen automatically; keep
disableAnimationson. - After an intentional site update, run once with
forceBaseline: trueto accept the new look. - Very long pages are capped at
maxScreenshotHeight(default 8,000 px) to keep memory predictable — raise it up to 16,000 px if you need more.
Related Actors from signalgrove
- AI Search Rank Tracker — track how ChatGPT & Gemini rank your brand in AI search results.
- ATS Jobs API — jobs from Greenhouse, Lever, Ashby, Workday & more, with delta mode and webhook alerts.