Website change watch
Public page diffs on targets you already watch
Watch public page content you are allowed to fetch and emit source-linked change rows when the page diff crosses your settings.
Not a SaaS pricing-page specialist (use SaaS Pricing Competitor Monitor). Not a docs/changelog drift Actor. Not a full-site crawler. You supply targets (name + url); live required array is empty.
from $80.00 / 1,000 URL change detected ($0.08 per delivered url-change-detected); $0.02 per URL snapshot; $5.00 per Change digest report. No Actor Start.
Open Website Change Monitor on Apify
Website Change Monitor, not a neighboring Actor
Use this page for this Actor’s job. Use SaaS Pricing Competitor Monitor for Competitor pricing HTML; Use Docs & Changelog Drift Scraper for Docs/changelog drift; Use SaaS Pricing Tracker for SaaS page change alerts.
| This Actor | SaaS Pricing Competitor Monitor | Docs & Changelog Drift Scraper | SaaS Pricing Tracker | |
|---|---|---|---|---|
| Intent | Page-diff alerts on a URL watchlist | Competitor pricing HTML | Docs/changelog drift | SaaS page change alerts |
| Primary input | targets | urls | urls | urls |
| What it reads | User-supplied public page HTML | Public pricing pages | Public docs HTML | Public HTML |
| Primary output | url-change-detected, optional url-snapshot, and change-digest-report events | Price-change rows | Drift rows | Page-change rows |
| Not this job | Not a SaaS pricing-page specialist (use SaaS Pricing Competitor Monitor). Not a docs/changelog drift Actor. Not a full-site crawler. You supply targets (name + url); live required array is empty. | Not a generic page-diff watch. | Not an arbitrary URL diff watch. | Not a generic URL watch with page diffs. |
Store ID: taroyamada/url-change-watch-scraper. Respect source terms, robots.txt, and rate limits.
Use cases
- One target with emitSnapshots false and generateDigest false on a first live run
- Keep maxTargets at 1 until the selector is stable
- Respect robots.txt and source terms
How is Website Change Monitor different from SaaS Pricing Competitor Monitor and Docs & Changelog Drift Scraper?
Website Change Monitor (taroyamada/url-change-watch-scraper): Watch public page content you are allowed to fetch and emit source-linked change rows when the page diff crosses your settings. Not a SaaS pricing-page specialist (use SaaS Pricing Competitor Monitor). Not a docs/changelog drift Actor. Not a full-site crawler. You supply targets (name + url); live required array is empty. SaaS Pricing Competitor Monitor is for Competitor pricing HTML (input urls; Public pricing pages; Price-change rows). Not a generic page-diff watch. Docs & Changelog Drift Scraper is for Docs/changelog drift (input urls; Public docs HTML; Drift rows). Not an arbitrary URL diff watch. SaaS Pricing Tracker is for SaaS page change alerts (input urls; Public HTML; Page-change rows). Not a generic URL watch with page diffs.
What input is required?
Live required fields: none (see live fields). Published exampleRunInput is shown below.
| Field | Type | Default | Notes |
|---|---|---|---|
targets |
any[] | [{"name": "Example page", "url": "https://example.com/", "cssSelector": "", "ignoreSelectors": []}] |
Watch targets. Public pages to monitor. Optional cssSelector narrows the hashed region; ignoreSelectors remove noisy nodes (as text patterns). |
maxTargets |
integer | 25 |
Max targets. Maximum targets to check in one run. minimum=1 maximum=100 |
emitSnapshots |
boolean | false |
Emit snapshot rows. Emit a url-snapshot row whenever a page is successfully fetched (in addition to change rows). |
generateDigest |
boolean | true |
Generate digest report. When any change is detected, emit one change-digest-report summarizing the run. |
stripDates |
boolean | true |
Strip date-like tokens. Remove ISO-like dates and common timestamps before hashing to reduce false positives. |
stripVolatileNumbers |
boolean | false |
Strip volatile counters. Normalize long digit runs (view counts, etc.) before hashing. |
maxDiffSegments |
integer | 20 |
Maximum added/removed segments. Maximum number of added and removed text segments included in each change row. minimum=1 maximum=100 |
emitUnchanged |
boolean | false |
Emit unchanged rows. When false (default), repeated unchanged runs emit zero rows and zero charges. |
dryRun |
boolean | false |
Dry run. Emit local sample rows without fetching or charging. |
initialRunMode |
string enum | "baseline_only" |
Initial run mode. emit_backfill allows first-run change rows when no baseline exists; baseline_only records hashes with zero output rows. enum: emit_backfill, baseline_only |
snapshotKey |
string | empty |
Snapshot key. Optional state namespace for canary and recurring schedules. |
maxChargeUsd |
number | 10 |
Maximum event charge per run. Fail before delivery when configured output events would exceed this buyer-approved cap. minimum=0.01 maximum=1000 |
Published Store example run input (omitted fields take schema defaults):
{
"targets": [
{
"name": "Example page",
"url": "https://example.com/",
"cssSelector": "",
"ignoreSelectors": []
}
],
"maxTargets": 3,
"emitSnapshots": false,
"generateDigest": true,
"stripDates": true,
"stripVolatileNumbers": false,
"maxDiffSegments": 3,
"emitUnchanged": false
}
Run Website Change Monitor on Apify
How do dataset, webhook, and dry-run delivery work?
Dataset output is the billable surface when rows are written. See live PPE for which events bill. dryRun true validates or samples without the usual dataset/webhook side effects described on the Store schema. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.
What does a result contain?
Published README Output Example / Sample Output JSON. Illustration: { "rowType": "url_change", "billingEventName": "url-change-detected", "targetName": "Competitor pricing", "sourceUrl": "https://example.com/pricing", "changeKind": "content_hash_diff", "addedSegments": [ "The Pro plan now includes priority support." ], "removedSegments": [ "The Pro plan includes standard support." ], "addedSegmentCount": 1, "removedSegmentCount": 1, "changeRatio": 0.25, "contentHash": "bcf38e4a58839f6c7686c3f1", "previousContentHash": "dba4a91988d5ed0d5f3dbd31", "checkedAt": "2026-07-27T01:00:00.000Z" } Treat README samples as illustrations, not a live coverage guarantee. There is no published output JSON schema on the Store page.
How is Website Change Monitor priced?
Billing is pay per event. The live Store card is from $80.00 / 1,000 URL change detected ($0.08 per delivered url-change-detected); $0.02 per URL snapshot; $5.00 per Change digest report. No Actor Start. Current PPE:
| Event | Price | Emitted when |
|---|---|---|
url-change-detected (URL change detected) |
$0.08 | Charged for each source-linked public page change row. |
url-snapshot (URL snapshot) |
$0.02 | Charged for each optional successful page snapshot row. |
change-digest-report (Change digest report) |
$5.00 | Charged for each run-level digest when changes were detected. |
from $80.00 / 1,000 URL change detected ($0.08 per delivered url-change-detected); $0.02 per URL snapshot; $5.00 per Change digest report. No Actor Start.
See Website Change Monitor pricing on Apify
Limits to keep in mind
- Live required array is empty; supply targets
- Public pages only
- generateDigest is a separate billed event
- Unchanged polls write zero rows when emitUnchanged is false
- Respect source terms, robots.txt, and rate limits.
Open Website Change Monitor on Apify
Related pages
- SaaS Pricing Competitor Monitor — Not a generic page-diff watch.
- Docs & Changelog Drift Scraper — Not an arbitrary URL diff watch.
- SaaS Pricing Tracker — Not a generic URL watch with page diffs.
- Tools