Web Page Change Monitor avatar

Web Page Change Monitor

Pricing

from $0.60 / 1,000 page checks

Go to Apify Store
Web Page Change Monitor

Web Page Change Monitor

Watch any web page for changes. Each run compares the page with the version saved before and returns the lines that were added and removed. Watch a whole page or one part of it, ignore noise such as dates and ads, and send changes to Slack, Discord or any webhook.

Pricing

from $0.60 / 1,000 page checks

Rating

0.0

(0)

Developer

Sanira Botheju

Sanira Botheju

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What does Web Page Change Monitor do?

Web Page Change Monitor watches web pages and tells you exactly what changed: the lines that were added and the lines that were removed since the last check.

Add the pages you care about, put the tool on a schedule, and you have a website change detection service that runs by itself. The first run saves each page as the starting point. Every later run compares the page with the saved version.

  • Shows the change, not just that something changed: added lines, removed lines and a readable diff for every page.
  • Watch one part of a page: give a CSS selector such as #pricing and the rest of the page is ignored.
  • Cut out noise: ignore parts of the page (ads, footers, clocks) or text patterns (dates, counters) so you only hear about real changes.
  • Alerts where you work: send changes to a Slack or Discord channel, or to Zapier, Make, n8n or your own server through a webhook. Nothing is sent when nothing changed.
  • Text or HTML: compare the visible text, or the HTML if you also want to catch changed links and images.
  • Works on JSON too: point it at a JSON API address and get the changed fields.

What can you monitor?

  • Competitor pricing pages: know the day a price or plan changes.
  • Terms, privacy policies and legal notices: keep a record of every wording change.
  • Job boards and tender pages: see new postings as they appear.
  • Product pages: stock status, specifications, delivery times.
  • Documentation and changelogs of tools you depend on.
  • Your own website: catch unplanned changes, defacement or a broken deployment.
  • Government and regulator pages: notices, fee tables, deadlines.

How to monitor a web page for changes

  1. Enter the pages under Pages to watch.
  2. Optional: enter a CSS selector under Watch only this part of the page, and a webhook address under Send changes to this webhook.
  3. Press Start. This first run saves the starting point; every page has the status new.
  4. Open Schedules in Apify Console and run the tool as often as you need, for example every hour or every morning.
  5. From then on each run reports every page as unchanged or changed, with the changed lines.

How much does it cost to monitor a website?

You pay per page check: $1.00 per 1,000 page checks. Apify subscribers on the Silver plan pay $0.80 and on the Gold plan $0.60 per 1,000. Each run also has a start fee of $0.00005.

What you watchChecks a monthCost a month
10 pages once a day300$0.30
50 pages once a day1,500$1.50
10 pages every hour7,200$7.20
100 pages every hour72,000$72.00

Apify's free plan includes $5 of credit each month, enough for about 5,000 page checks. There is no monthly fee and no limit on the number of pages.

Input

Only Pages to watch is required.

{
"urls": [{ "url": "https://www.example.com/pricing" }],
"selector": "#pricing",
"ignoreSelectors": [".cookie-banner", "footer"],
"ignoreText": ["/Updated: .*/", "/\\d+ visitors/"],
"compare": "text",
"webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ"
}
FieldWhat it does
urlsThe pages to watch
selectorCSS selector of the part to watch; empty means the whole page
webhookUrlWhere to send changes; stored encrypted
ignoreSelectorsCSS selectors of parts that should not count
ignoreTextText or regular expressions removed before comparing
comparetext (visible text) or html
monitorNameKeeps saved versions apart, so one page can be watched in several ways
resetBaselineForget the saved versions and start over
includeContentAdd the compared text to each result

Output example

One record per page and run:

{
"url": "https://www.example.com/pricing",
"status": "changed",
"changed": true,
"checkedAt": "2026-10-13T08:00:04.512Z",
"lastChangedAt": "2026-10-13T08:00:04.512Z",
"changesDetected": 3,
"httpStatus": 200,
"title": "Pricing",
"addedCount": 2,
"removedCount": 1,
"changePercent": 4.2,
"addedLines": ["Basic plan: $12 a month", "New: phone support"],
"removedLines": ["Basic plan: $10 a month"],
"diff": " Pricing\n- Basic plan: $10 a month\n+ Basic plan: $12 a month\n Support by e-mail\n+ New: phone support",
"error": null
}

status is one of new (saved as the starting point), unchanged, changed or error. A page that could not be reached gets error with a code such as HTTP_404 or TIMEOUT; its saved version is kept, so a short outage is not reported as a change.

Getting alerts

Slack or Discord: create an incoming webhook in your channel settings and paste its address into Send changes to this webhook. You get a message listing the changed pages with their first added and removed lines.

Zapier, Make, n8n or your own server: paste the webhook address. The tool posts JSON like this when at least one page changed:

{
"event": "pages-changed",
"monitorName": "default",
"pagesChecked": 12,
"changedCount": 1,
"changes": [{ "url": "https://www.example.com/pricing", "title": "Pricing", "addedCount": 2, "removedCount": 1, "addedLines": ["..."], "removedLines": ["..."], "diff": "..." }],
"resultsUrl": "https://api.apify.com/v2/datasets/DATASET_ID/items?clean=true"
}

E-mail: use a Zapier, Make or n8n webhook that sends an e-mail. That way you get mail only when something changed.

FAQ

Why does a page report changes every time?

Something on the page differs on every visit: a date, a visitor counter, a rotating banner, a random token. Look at the diff to see what it is, then add it under Parts to ignore (by CSS selector) or Text to ignore (by text or regular expression).

Does it work on pages that load their content with JavaScript?

No. The tool reads the HTML the server sends and does not run a browser, which is what keeps it fast and cheap. If the part you want is built by JavaScript, the tool reports SELECTOR_NOT_FOUND or EMPTY_CONTENT. Many such sites load their data from a JSON address, which you can watch directly.

Where are the saved versions kept?

In a key-value store named web-page-change-monitor in your own Apify account. Nobody else can read it. Delete the store, or turn on Start over, to reset.

What happens when I change the selector or the ignore rules?

The page is saved again as a new starting point under the new settings, because the old saved version would not be comparable. The next run after that reports changes as usual.

Can it log in to a page?

No. It watches pages that are open to everyone.

How often can it check?

As often as you schedule it in Apify Console. Please pick an interval that is fair to the website; for most pages once an hour or once a day is enough.

Something does not work

Open an issue on the Issues tab and include the page address and your settings. Every report is read and answered.