Website Change Monitor
Pricing
from $2.50 / 1,000 page check completeds
Website Change Monitor
Monitor company web pages for content changes. Returns content hash, changed yes/no, and a short diff summary. Ideal for pricing, careers, and impresszum watch lists across CEE/EU SMEs.
Pricing
from $2.50 / 1,000 page check completeds
Rating
0.0
(0)
Developer
Viktor Kondas
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Monitor company web pages for content changes — content hash, changed flag, and a short diff summary.
Standalone Apify actor for pricing, careers, impresszum/privacy, and homepage watch lists. Pairs well with the Google Maps CEE Supplier Shortlist Builder and Website Intelligence + Contact Extractor when you already have company URLs.
Optional next step after Website Intel: schedule this actor on key pages (pricing, careers, legal) to catch updates.
What it does
- Fetches each watch URL (HTTP first, Playwright + residential proxy fallback).
- Normalizes HTML (strips scripts/styles/noise) and computes a SHA-256 content hash.
- Compares against the previous snapshot in a named Apify Key-Value store (persists across scheduled runs).
- Returns
changedyes/no,isBaselineon first check, and a short diff summary. - Built for n8n, Make, Zapier, and vibe-coder agent workflows.
Who it's for
- Sales / ops teams watching competitor pricing or careers pages.
- Procurement teams monitoring supplier impresszum / compliance pages.
- Agencies running client watch lists on a schedule.
- Vibe coders wiring change alerts into Slack / Telegram / CRM.
- Market researchers tracking public page churn across SME lists.
What this actor is — and is not
This actor helps you detect public page content changes. It does not interpret legal meaning, prove intent, or replace a full visual regression suite.
Use the output for:
- change alerts
- watch-list scheduling
- evidence that a page moved
Do not treat a hash change as automatic proof of a price or policy change without reading the page.
What data you get
| Field | Description |
|---|---|
url, finalUrl, statusCode | Request identity |
contentHash, previousHash | SHA-256 of normalized text |
changed, isBaseline | Change flags (baseline = first snapshot) |
diffSummary | Short human-readable change hint |
contentLength, previousContentLength | Normalized text lengths |
checkedAt, previousCheckedAt | Timestamps |
error | Set when the page could not be fetched |
How to use it
- Configure input — URL list, snapshot store name, proxy.
- Run on Apify cloud (recommended on a schedule) or locally with
apify run. - Download dataset as JSON, CSV, or Excel from the run page.
Input presets
Wise terms & privacy (Store example)
{"urls": ["https://wise.com/terms-and-conditions","https://wise.com/privacy-policy"],"maxUrls": 2,"snapshotStoreName": "website-change-monitor-snapshots","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Published Store example: Wise terms & privacy — change monitor demo.
SME homepage, about & privacy (QA / prefill)
{"urls": ["https://www.vibecoderslife.com/","https://www.vibecoderslife.com/about","https://www.projectisconsulting.com/adatvedelem"],"maxUrls": 3,"snapshotStoreName": "website-change-monitor-snapshots","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Store input prefill uses this small SME set so Apify automated QA finishes within 5 minutes. First run saves baselines (isBaseline: true); later scheduled runs report changed.
Competitor pricing watch
{"urls": ["https://example-competitor.com/pricing","https://example-competitor.com/careers"],"maxUrls": 20,"snapshotStoreName": "website-change-monitor-snapshots","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
After Google Maps / Website Intel
{"urls": ["https://example-clinic.hu/","https://example-clinic.hu/impresszum","https://example-clinic.hu/arak"],"maxUrls": 50,"snapshotStoreName": "website-change-monitor-snapshots","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output example
{"url": "https://www.vibecoderslife.com/","finalUrl": "https://www.vibecoderslife.com/","statusCode": 200,"contentHash": "e3b0c44298fc1c149afbf4c8996fb924…","previousHash": null,"changed": false,"isBaseline": true,"diffSummary": "Baseline snapshot saved — no previous hash to compare.","contentLength": 18422,"previousContentLength": null,"checkedAt": "2026-07-20T10:20:00.000Z","previousCheckedAt": null,"error": null}
Snapshots, scheduling, and noise
| Feature | Support |
|---|---|
| Named KV store | Default website-change-monitor-snapshots persists hashes across runs |
| Normalization | Scripts/styles/comments stripped; whitespace collapsed |
| First run | Always isBaseline: true (expected for Store demos) |
| Schedule tip | Apify Schedule daily/hourly — only later runs show real changed: true |
Tips to avoid Store QA timeouts
- Keep prefill / public-task demos at
maxUrls: 3. - Prefer fast SME pages over heavy enterprise SPAs.
- Raise
maxUrlsonly for paid production watch lists.
Secrets and local development
- Never commit
apify/website-change-monitor/.env— it is listed in.gitignore. apify pushexcludes.envvia.gitignoreand.actorignore.- Docker builds exclude
.envvia.dockerignore. - On Apify cloud, customers configure Proxy via input — not from your local
.env. - For local runs only, copy
.env.example→.envand addAPIFY_TOKENif you call the platform. - Only
.env.example(placeholders, no real keys) is in git.
FAQ
Why is everything unchanged / baseline on the first run?
There is no previous hash yet. Schedule the actor or run it again — the second run compares against the saved snapshot.
Will cookie banners flip changed every day?
Normalization removes scripts/styles and collapses whitespace, which reduces noise. Highly dynamic personalization can still cause flips — watch stable pages (pricing, impresszum) when possible.
Do I need an LLM key?
No. Diff summaries are deterministic. No Apify AI event fee.
How many URLs can I check per run?
Up to 200 (maxUrls). Prefill/demo stays at 3.
Local development
cd apify/website-change-monitornpm installnpm testnpm run buildnpm run dry-runapify run --input-file=INPUT.smoke.json
Dry run fetches the SME hero URLs twice (baseline → unchanged). Install Playwright Chromium once: npx playwright install chromium.
Pricing
Pay-per-event: $2.50 per 1,000 page checks (page-check event @ $0.0025), minimum charge $0.10 per run.
Enable Pay per event + usage in Apify Console so platform compute/proxy costs are passed through to users.
Related actors (suite)
| Actor | Role |
|---|---|
| Google Maps CEE Supplier Shortlist | Discover local suppliers |
| Website Intelligence + Contact | Enrich websites (contacts, tech, compliance) |
| Dealer / Distributor Locator | Expand brand locator pages |
| PDF Procurement Document Extractor | Find certs / reports / datasheets |
| Website Change Monitor (this Actor) | Watch pages for changes |
Each Actor runs standalone; use them as an optional suite when chaining discovery → enrichment → monitoring.
Feedback
Open an issue on the actor’s Apify page or contact Vibe Coder's Life.