Website Change Monitor — Detect Page Diffs on Schedule
Pricing
from $1.50 / 1,000 page checkeds
Website Change Monitor — Detect Page Diffs on Schedule
Detect content changes on any public webpage. Cheerio HTTP checks (no browser), persistent SHA-256 snapshots, optional CSS selectors. Outputs new/changed/unchanged/error. Pay only for pages checked and changes detected — failed URLs are free.
Pricing
from $1.50 / 1,000 page checkeds
Rating
0.0
(0)
Developer
evanatlasx
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Security
Limited permissionsShare
Website Change Monitor
Detect content changes on any public webpage. The Actor fetches each URL with a lightweight HTTP + Cheerio parser (no browser), hashes the visible text (or a CSS-selected region), and compares it to the previous run's snapshot. Results are written to the dataset as new, changed, unchanged, or error rows. Snapshots live in a named Key-Value Store so they persist across scheduled runs.
Ideal for price-page monitoring, competitor landing pages, terms-of-service diffs, status pages, and any text that should not change silently.
Features
- Cheap HTTP checks — Cheerio only; no Playwright/Puppeteer browser cost.
- Persistent snapshots — Named KV store (default
website-change-monitor-snapshots) survives across runs and schedules. - CSS targeting — Optional
selectorandignoreSelectorsto focus on the region that matters. - Resilient — Per-URL failures are recorded as
errorrows; the run still SUCCEEDS. - Pay per event — Charged only for successful
page-checkedandchange-detectedevents (plus a tiny Actor start fee). Errors are free.
Input
| Field | Type | Required | Description |
|---|---|---|---|
urls | string[] | yes | Public http(s) URLs to check (max 100; truncated by maxUrls). |
selector | string | no | CSS selector for the region to hash. Empty = whole <body>. |
ignoreSelectors | string[] | no | CSS selectors to strip before hashing (ads, timestamps, cookie banners). |
userAgent | string | no | Custom User-Agent. |
maxUrls | integer | no | Cap on URLs processed (default 50, max 100). |
timeoutSecs | integer | no | Per-URL timeout in seconds (default 30). |
followRedirects | boolean | no | Follow HTTP redirects (default true). |
saveHtml | boolean | no | Save previous + current HTML to the snapshot store and include keys in the dataset (default false). |
snapshotStoreName | string | no | Named KV store for snapshots (default website-change-monitor-snapshots). Use a different name per project if you want isolated histories. |
Example input
{"urls": ["https://example.com","https://httpbin.org/html"],"selector": "body","ignoreSelectors": [".cookie-banner", "time"],"maxUrls": 10,"timeoutSecs": 30,"followRedirects": true,"saveHtml": false,"snapshotStoreName": "website-change-monitor-snapshots"}
Output
Each dataset item:
| Field | Meaning |
|---|---|
url | Input URL |
finalUrl | URL after redirects |
changeType | new | changed | unchanged | error |
changed | true only when changeType is changed |
statusCode | HTTP status |
checkedAt | ISO timestamp |
contentHash | SHA-256 of normalized text |
previousHash | Prior hash (null on first sight) |
textSnippet | First ~280 chars of extracted text |
error | Error message when changeType is error |
httpElapsedMs | Request duration |
selectorUsed | Selector that was applied |
htmlKey / previousHtmlKey | Present only when saveHtml is true |
Scheduling tip
Create an Apify Schedule that runs this Actor every hour/day with the same urls and the same snapshotStoreName. The first run baselines every page as new; later runs report changed or unchanged.
Pricing (pay-per-event)
- Actor start — small fixed fee per run
- page-checked — each URL that returned a successful check (
new/changed/unchanged) - change-detected — each URL where
changed === true
Failed URLs (error) are not charged as page-checked or change-detected.
Limitations
- Does not execute JavaScript — content rendered only by client-side JS will not appear.
- Bot-protected / login-walled pages may return errors or empty content.
- Very large pages are truncated in the text snippet; the hash still covers the extracted region.
Support
Questions or feature requests: open an issue on the Actor page or email the publisher listed on the Store.