Website Change Monitor avatar

Website Change Monitor

Pricing

$2.00 / 1,000 page checkeds

Go to Apify Store
Website Change Monitor

Website Change Monitor

Watch any web pages and detect changes between runs. Stores a snapshot and reports what changed.

Pricing

$2.00 / 1,000 page checkeds

Rating

0.0

(0)

Developer

Ken Agland

Ken Agland

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Share

Watch any web pages and detect changes between runs. Stores a snapshot and reports what changed.

What it does

  • Fetches one or more URLs and extracts their content with Cheerio.
  • Compares each page against a snapshot saved from the previous run.
  • Reports whether the page changed, with added and removed line counts and a short summary.
  • Optionally watches a single region via a CSS selector.
  • Optionally ignores numbers to cut noise from counters, view counts, and dates.
  • Built to run on a schedule so each run compares to the last one.

Example input

{
"urls": [
"https://example.com",
"https://news.ycombinator.com"
],
"selector": "",
"mode": "text",
"ignoreNumbers": false
}

Input

FieldTypeDescription
urlsarrayOne or more page URLs to fetch and monitor. Required.
selectorstringOptional CSS selector to watch only one region (for example #price). Empty watches the whole page.
modestringtext compares visible text (less noisy), html compares raw markup. Default text.
ignoreNumbersbooleanReplace digits before comparing to reduce noise. Default false.

Output

One dataset item per URL:

{
"url": "https://example.com",
"changed": true,
"isFirstRun": false,
"previousHash": "9c1185a5c5e9fc54612808977ee8f548b2258d31",
"currentHash": "a3f5b2c1d4e6f7089aabbccddeeff00112233445",
"addedLines": 3,
"removedLines": 1,
"changeSummary": "3 line(s) added, 1 removed. + New headline | - Old headline",
"checkedAt": "2026-07-04T12:00:00.000Z"
}

On the first run for a URL, isFirstRun is true, changed is false, and the baseline snapshot is stored for next time.

Run summary (OUTPUT)

The run's default key-value store record OUTPUT holds an aggregate:

{
"urlsChecked": 2,
"changed": 1,
"new": 1,
"unchanged": 0,
"errors": 0,
"mode": "text",
"selector": null,
"ignoreNumbers": false,
"checkedAt": "2026-07-04T12:00:00.000Z"
}

How it works

The Actor fetches each URL with a plain HTTP request (retrying on 429 and 5xx with backoff), extracts the text or HTML with Cheerio, normalizes it into lines, and computes a content hash. Snapshots are kept in a named key-value store keyed by a hash of each URL, so a scheduled run always compares against the previous run. When the hash differs, it reports the added and removed lines. It needs no API key.