Website Change Monitor & AI Alerts
Pricing
$3.50 / 1,000 page checks
Website Change Monitor & AI Alerts
Monitor public web pages for price, policy, product, job, and content changes. Get structured diffs, optional AI summaries, and webhook alerts.
Pricing
$3.50 / 1,000 page checks
Rating
0.0
(0)
Developer
Inus Grobler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Monitor public web pages for the changes that matter. Paste one or more URLs, run the Actor once to create a baseline, then run it again—or schedule it—to receive clear, structured change results.
Use it to track price updates, product availability, policy and legal pages, job listings, documentation, public announcements, and status pages. It can return concise change summaries, detailed added and removed text, optional AI classifications, and webhook alerts for your workflows.
Start in three steps
- Add the public page URLs you want to watch.
- Run the Actor. The first successful run saves a baseline for each page.
- Run the same input again or schedule it. Later runs show whether the page changed and why.
You do not need to configure storage, timeouts, retries, or AI settings for a normal monitoring workflow. Each URL and page-selection setting keeps its own comparison history automatically.
Simple input
Paste URLs into the Pages to monitor field in the Apify Console, or send the same small JSON object through the API:
{"urls": ["https://example.com/pricing", "https://example.com/terms"]}
The first result for a page has changeType: "baseline". That is expected: it means the Actor saved the starting version for later comparison.
Pricing
$3.50 per 1,000 successful page checks ($0.0035 each). Error rows are free. With Only return meaningful changes enabled, unchanged checks filtered from the dataset are also free.
When optional AI is enabled and a detected change is sent for classification, the Actor reserves one page-check charge before contacting the provider. That same charge covers the resulting dataset row, so it is never charged twice. The charge still applies when AI classifies a change as cosmetic and Only return meaningful changes filters the row, because the AI work was completed. Apify platform usage can be billed separately according to the client's Apify plan and the Actor's current platform-usage billing setting.
Set a maximum spend for each run in Apify to keep a firm budget. The Actor stops processing further results as soon as the page-check spending limit is reached.
Optional controls
The Console groups less-common settings into collapsible sections.
- Monitor a page section: Add one CSS selector, such as
main,.price,#availability, orarticle, to compare only that part of every page in the run. - Ignore page noise: Add selectors such as
.cookie-banneror.last-updatedso routine banners and timestamps do not create false alerts. - Keep results focused: Enable Only return meaningful changes to suppress routine unchanged rows. First-run baselines and errors are still returned.
- Send webhook alerts: Provide a public endpoint to receive meaningful changes automatically. If it needs bearer authentication, add your own Webhook bearer token secret. Receivers should deduplicate repeated
eventIdvalues. Console alerts use meaningful changes by default. - Add AI summaries: AI is opt-in. When it is available, bounded text from changed public pages is sent to the configured provider for classification; normal change detection still works without it. AI requests run one at a time so spend limits stop cleanly.
Saved Apify Tasks automatically keep separate monitoring histories, so there is no history setting to manage in the Console. API users can still provide stateStoreName when they intentionally need to share or isolate history outside a saved Task. Operational safety limits use tested defaults: downloads default to 400 KB, are capped at 500 KB, and automatically keep no more than 1 MB of response payloads in flight.
Optional AI setup
AI summaries require one Actor environment variable: OPENROUTER_API_KEY. Add that value as an Apify secret named OPENROUTER_API_KEY and enable Add an AI change summary when you want it. No environment variables are required for ordinary monitoring, selectors, webhook alerts, or history. Apify supplies its own runtime variables automatically.
What you receive
The default dataset contains one row per checked page. The Change overview view highlights the fields most clients need:
| Field | Meaning |
|---|---|
status | ok when a page was checked, or error when it could not be fetched or extracted. |
changed | Whether the normalized page content differs from the prior successful check. |
isMeaningful | Whether the change passed the importance rules. |
changeType | A useful category such as price, availability, policy, job, product, news, or cosmetic. |
summary | A readable explanation of the result. |
addedLines / removedLines | Bounded text showing the detected change. |
errorCode | A machine-readable reason when a check could not complete. |
Example change result:
{"status": "ok","url": "https://example.com/pricing","changed": true,"isMeaningful": true,"changeType": "price","summary": "1 line added and 1 line removed (8.33% changed).","addedLines": ["Pro plan: $29/month"],"removedLines": ["Pro plan: $19/month"]}
Each run also stores a RUN_SUMMARY record with the number of pages checked, changes found, errors, alerts sent, AI usage, and run duration.
Schedule recurring checks
After the baseline run, schedule the same task or input at the interval you need. Keep the interval longer than the expected run time so two runs do not update the same history at once. For price or availability monitoring, a short interval may fit; for policies and documentation, daily or weekly checks are often enough.
Privacy and safe use
- This Actor monitors publicly accessible HTTP or HTTPS pages only. It does not log in, bypass access controls, or access private or local networks.
- AI analysis is disabled by default. If you enable it, only bounded normalized text and change data from changed public pages are sent to the configured AI provider.
- Webhook delivery is best-effort and may repeat an event. Use
eventIdto make your receiver idempotent. - The Actor applies download, retry, concurrency, AI-prompt, and text-size limits to keep runs predictable.
Troubleshooting
- The first result says
baseline: This is normal. Run the same input again to compare the page with that saved starting version. - A page reports
error: Confirm that it is publicly accessible without a login and that its important content appears in the initial HTML response. - Routine updates create unwanted changes: Use Elements to ignore for timestamps, cookie notices, banners, and similar page noise.
- No webhook arrived: Check
notificationSent,notificationAttempts, andnotificationErrorin the dataset. Your endpoint must be public and should accept repeatedeventIdvalues. - No AI summary appears: AI must be enabled and available for the Actor. The built-in analysis remains active when AI is unavailable.
Limitations
- This version reads the initial HTTP response. It may not capture content that exists only after JavaScript rendering or user interaction.
- If a page blocks automated requests, requires a login, or returns an unsupported format, the dataset returns an error row instead of a change result.
- Very large pages are safely capped; the result indicates when downloaded or retained text was truncated.
- AI classification is a helpful summary, not a substitute for human review in high-stakes legal, financial, safety, or compliance decisions.
Python API example
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("thescrapelab/ai-content-changes-detector").call(run_input={"urls": ["https://example.com/pricing"],"onlyMeaningfulChanges": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["url"], item["changed"], item["changeType"], item["summary"])
For the simplest experience, run the Actor once in the Console, review the baseline result, and then schedule the same task for ongoing website change monitoring.