Website Change Monitor: Page Diffs, Price & Keyword Alerts
website_change_monitorMonitor web pages over time and get alerts on added or removed text, price changes, and keyword appearances. Track competitor pricing, terms, or product pages on a schedule with optional webhook notifications.
Instructions
Check a watch list of web pages against snapshots saved by your previous run and report added and removed text, change percent, price changes and keyword appear/disappear alerts, with an optional webhook when something changes. Unlike ai_search_seo_audit (one-time quality audit) and hidden_ai_instructions_scanner (concealed AI-directed text), this is stateful diffing over time. Use when you need to track competitor pricing, terms, product or careers pages on a schedule. Do not use for a one-off page read or audit (use ai_search_seo_audit), or for pages behind a login. Parameters: the first run per monitorName only saves baselines (status 'baseline saved'); reuse the same monitorName for every later run, and use a new name for a separate watch list. cssSelector, ignorePatterns and ignoreNumbersAndDates cut false alarms from banners, counters and timestamps. Below minChangePercent the old snapshot is kept, so small edits accumulate. onlyReportChanges shrinks output but every page checked is still billed; unreachable pages are free. webhookUrl posts outside the Apify run; only set it if you control that endpoint. Returns per item: agentSummary, url, label, status, changed, changePercent, addedCount, removedCount, addedLines, removedLines, prices, priceChanges, keywordsPresent, keywordsAppeared, keywordsDisappeared, titleBefore, titleAfter, previousCheckAt.
Behavior: read-only; runs the Apify Actor pandadad0214/website-change-monitor (https://apify.com/pandadad0214/website-change-monitor) on your own Apify account. Price: $0.0015 per page checked. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxPages when you leave it unset, so it also limits what is billed; setting maxPages higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| urls | No | Pages to watch. One URL per line. Optional label after ' | ' (e.g. https://acme.com/pricing | Acme pricing). Leave empty for a 2-page demo. | |
| maxPages | No | Maximum pages. You pay per page checked, so this also caps the cost. | |
| webhookUrl | No | Webhook URL for changes (optional). Optional https URL (Slack/Zapier/Make/n8n webhook). Gets a JSON POST listing changed pages, only when something changed. | |
| cssSelector | No | Only watch this part (CSS selector). Optional. Compare only the matching elements, e.g. main or #pricing. Ignores headers, footers and banners. | |
| monitorName | No | Monitor name. Snapshots are saved in your account under this name (key-value store panda-change-monitor-). Use different names for separate watch lists; each run compares with the last run of the same name. | default |
| run_max_items | No | Optional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field. | |
| watchKeywords | No | Alert keywords. Optional. Reports when any of these words appear on or disappear from a page. | |
| ignorePatterns | No | Ignore text matching (regex). Optional regular expressions removed before comparing (counters, timestamps, rotating promos). | |
| minChangePercent | No | Minimum change to report (%). Changes smaller than this are reported as 'unchanged (below threshold)' and the old snapshot is kept, so small edits add up. | |
| run_timeout_secs | No | Optional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300). | |
| onlyReportChanges | No | Dataset: changed pages only. Skip unchanged pages in the dataset (handy for alerts and integrations). Every page checked is still billed; failed pages never are. | |
| run_max_charge_usd | No | Optional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50). | |
| ignoreNumbersAndDates | No | Ignore dates and times. Strip dates and clock times before comparing, to avoid noise from 'updated today' widgets. |