Website Change Monitor — Detect Page Diffs on Schedule avatar

Website Change Monitor — Detect Page Diffs on Schedule

Pricing

from $1.50 / 1,000 page checkeds

Go to Apify Store
Website Change Monitor — Detect Page Diffs on Schedule

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

evanatlasx

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Security

Limited permissions

Share

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 selector and ignoreSelectors to focus on the region that matters.
  • Resilient — Per-URL failures are recorded as error rows; the run still SUCCEEDS.
  • Pay per event — Charged only for successful page-checked and change-detected events (plus a tiny Actor start fee). Errors are free.

Input

FieldTypeRequiredDescription
urlsstring[]yesPublic http(s) URLs to check (max 100; truncated by maxUrls).
selectorstringnoCSS selector for the region to hash. Empty = whole <body>.
ignoreSelectorsstring[]noCSS selectors to strip before hashing (ads, timestamps, cookie banners).
userAgentstringnoCustom User-Agent.
maxUrlsintegernoCap on URLs processed (default 50, max 100).
timeoutSecsintegernoPer-URL timeout in seconds (default 30).
followRedirectsbooleannoFollow HTTP redirects (default true).
saveHtmlbooleannoSave previous + current HTML to the snapshot store and include keys in the dataset (default false).
snapshotStoreNamestringnoNamed 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:

FieldMeaning
urlInput URL
finalUrlURL after redirects
changeTypenew | changed | unchanged | error
changedtrue only when changeType is changed
statusCodeHTTP status
checkedAtISO timestamp
contentHashSHA-256 of normalized text
previousHashPrior hash (null on first sight)
textSnippetFirst ~280 chars of extracted text
errorError message when changeType is error
httpElapsedMsRequest duration
selectorUsedSelector that was applied
htmlKey / previousHtmlKeyPresent 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.