Public Website Change & Compliance Monitor
Pricing
from $10.00 / 1,000 results
Public Website Change & Compliance Monitor
Monitor public web pages, persist a baseline, and return compact change events for meaningful content changes.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Liam King
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
Public Website Change Monitor
Check public web pages for text changes and see what was added or removed. This Actor saves a baseline, compares it with the next successful check, and returns structured results in Apify.
Use it for small lists of public documentation, policy, pricing, or status pages whose content is available in the initial HTML. Run checks in the cloud without keeping your computer on.
Try it in two runs
- Click Try for free on the Store page and sign in to Apify. Account credits and the displayed Actor pricing apply.
- Enter one public URL. Leave Output only actionable rows off for the first test.
- Run the Actor.
first_seenmeans the initial baseline was saved. - Run again with the same URL, settings, and state namespace.
unchangedmeans the normalized content matches;changedmeans its hash differs and meets the configured threshold. - Inspect the Output tab. Export results as JSON or CSV through Apify.
{"urls": ["https://example.com"],"mode": "text","ignoreNumbers": false,"minChangeRatio": 0,"notifyOnly": false,"respectRobots": true,"stateKey": "my-first-monitor","timeoutMs": 30000}
Replace the example URL with a page you are authorized to monitor. Start with one page to confirm it returns the content you need.
Useful monitoring jobs
| Job | Suggested starting settings |
|---|---|
| Public pricing page | Keep ignoreNumbers false so numeric price changes remain visible. |
| Documentation or policy page | Use text mode and inspect the added/removed line preview. |
| Small agency watchlist | Use a different stateKey for each independent monitoring job. |
Each run checks the supplied URLs once. For recurring checks, save the input as an Apify task and configure an Apify schedule. Start with daily checks if that meets your needs. Avoid overlapping runs that share the same state namespace.
Settings
| Setting | What it does |
|---|---|
urls | Between 1 and 100 public HTTP(S) URLs per run. |
selector | Optional basic #id, .class, or tag selector. This is a simple extractor, not a full browser CSS engine; test it on your page before scheduling. |
mode | text removes tags and common script/style noise; html compares cleaned markup. |
ignorePatterns | Regular expressions removed before comparison. Start without these, then add only patterns you understand. |
ignoreNumbers | Replaces numbers before comparison. Leave false when tracking prices or dates. |
minChangeRatio | A heuristic line-change threshold. Start at 0; it is not a percentage of characters changed. |
notifyOnly | Suppresses unchanged, below-threshold, and robots-blocked rows. First-seen, changed, and error rows remain. It does not send notifications. |
respectRobots | Enables the current basic robots.txt check. A blocked or unreadable robots file produces robots_blocked. |
stateKey | Persistent monitoring namespace. Reuse it across runs; choose a new one when changing comparison settings or restarting a baseline. |
timeoutMs | Page request timeout, between 5,000 and 120,000 milliseconds. |
Understand your results
| Status | Meaning |
|---|---|
first_seen | Baseline saved; there is no previous observation to compare. |
unchanged | Normalized content matches the previous successful check. |
changed | Content hash changed and passed the threshold. |
below_threshold | Content changed but did not pass the threshold. The baseline still advances. |
robots_blocked | The robots check prevented the page request. |
error | The page could not be processed. Inspect the error message. |
Successful page rows include URL, check time, HTTP status, hashes, added/removed lines, and a compact preview. The diff shows up to 20 added and 20 removed lines. Counts and the threshold score use that bounded diff; they are not a complete audit of a large document. Reordered or repeated lines may not be represented fully.
Pricing
The configured launch price is US$0.01 per dataset row, plus US$0.00001 per Actor start, with platform usage included in the event price. Check the Pricing tab for current rates before running.
With notifyOnly: false, first-seen, unchanged, changed, below-threshold, error, and robots-blocked rows all count as results. A result charge does not mean a change was detected. With notifyOnly: true, fewer rows may be written, but errors and first observations still produce output.
For example, 10 URLs checked daily for 30 days with one row per URL per run produces 300 rows: US$3.00 in result charges plus US$0.00030 in start charges, before any applicable taxes or account-specific adjustments. This is an illustration, not a promise of usage or results.
Limits and troubleshooting
- Fetches the initial page HTML. JavaScript rendering, screenshots, login sessions, and anti-bot bypass are not included.
- Does not send email, Slack, or SMS alerts. Use a separately configured workflow if you need notifications.
- A missing selector can yield empty extracted content. Verify your selection before relying on a scheduled check.
- Baselines keep up to 250,000 characters. Use small pages; large-page comparisons may be incomplete.
- The current robots handling is basic. Choose authorized targets; a permitted request is not a determination of legal rights.
- This tool tracks text changes. It does not determine legal compliance or provide a compliance certification.
If a page fails, check its URL, HTTP status, robots access, and whether its useful content needs browser rendering. For support, open an issue on this Actor's Issues tab with a public example URL, sanitized input, and the observed status. Do not post credentials or private information.