Universal Price & Availability Change Monitor
Pricing
from $1.00 / 1,000 url checkeds
Universal Price & Availability Change Monitor
Monitor any web page or product URL for changes. Returns a structured diff and can POST alerts to a webhook. Scheduled, recurring, pay-per-event.
Pricing
from $1.00 / 1,000 url checkeds
Rating
0.0
(0)
Developer
Scott Holmes
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Watch any list of web pages for changes. On each run the Actor fetches every target, extracts a signal (raw content, a price, or a stock status), compares it to the snapshot saved from the previous run, and reports anything that changed. Optionally POSTs each change to a webhook so you can wire it into Slack, email, n8n, or your own app.
Built to run on a schedule (for example hourly or daily). The first run stores a baseline; later runs produce diffs.
Input
| Field | Type | Notes |
|---|---|---|
targets | array | Required. [{ "url": "...", "selector": ".price", "label": "..." }]. selector and label are optional. |
mode | string | content (any text change), price (first price-like value), or availability (in/out of stock). |
webhookUrl | string | Optional. Each change is POSTed here as JSON. |
renderJs | boolean | Turn on for client-side-rendered pages. Slower, uses a headless browser. |
proxyConfiguration | object | Apify Proxy config. Residential recommended for defended targets. |
Output
One dataset record per detected change:
{"label": "Widget product page","url": "https://shop.example.com/widget","selector": ".price","mode": "price","changed": true,"changeType": "price","before": "$19.99","after": "$17.49","checkedAt": "2026-07-11T14:03:00.000Z"}
Monetization (pay-per-event)
The code charges two events; define their prices in the Apify Console under Monetization:
url-checked— charged once per target per run (covers compute/proxy).change-detected— charged only when an actual change is found (the value moment).
This lets you price cheap polling with a premium on useful hits.
How it works
Snapshots are stored in a named Key-Value Store (change-monitor-snapshots), keyed on url + selector, so diffs survive across scheduled runs. Content mode compares normalized text (capped at 20k chars to keep runs cheap); price mode extracts the first currency-like token; availability mode looks for stock keywords.
Notes / next steps
- Add per-target
modeif you want to mix price and content watches in one run. - Add a "changed lines" diff (currently reports before/after values) if subscribers want granular content diffs.
- For heavily defended targets, enable
renderJsand residential proxies.