Vendor Policy Change Monitor
Pricing
$10.00 / 1,000 successful policy page checks
Vendor Policy Change Monitor
Monitor public vendor terms, privacy, DPA, and security-policy pages. Get a structured baseline, change status, and a concise text diff for each URL.
Pricing
$10.00 / 1,000 successful policy page checks
Rating
0.0
(0)
Developer
Maarten Vreeburg
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Monitor public vendor Terms of Service, Privacy Policy, DPA, Security, SLA, and acceptable-use pages for text changes. Each run emits one structured dataset record per URL, with a stable content hash and a concise diff when a previously seen page changes.
This is a lightweight procurement and vendor-management utility: it helps teams keep an audit trail of changes without manually revisiting every vendor policy page. It does not provide legal advice or determine whether a change is material.
Input
| Field | Required | Description |
|---|---|---|
monitorId | Yes | Stable, unique ID for one independent watchlist, e.g. procurement-acme-vendors. This prevents snapshot collisions between watchlists. |
urls | Yes | 1–100 public http/https policy-page URLs. |
selector | No | Simple tag (main), ID (#policy), class (.terms), or body. If it does not match, the Actor safely falls back to readable body text and marks selector_matched: false. |
ignorePatterns | No | Regexes removed before comparison, useful for dates or rotating banners. |
timeoutSeconds | No | Per-URL request timeout, 5–120 seconds (default 30). |
includeUnchangedText | No | Include a preview on unchanged results (default false). |
The default input checks the stable public IANA reserved-domains page, so it is suitable for a quick QA run. Replace monitorId and urls before setting a schedule.
Output
Every URL produces one dataset record.
status | Meaning |
|---|---|
initial_snapshot | First successful check for this monitorId + URL. A baseline was stored. |
unchanged | The normalized text has not changed since the last successful check. |
changed | The text changed. The record includes a truncated unified diff and current preview. |
fetch_error | The page could not be retrieved or no readable text was extracted. No prior baseline is overwritten. |
Common fields include url, final_url, checked_at, http_status, content_hash, previous_hash, selector_matched, text_length, and state_store_mode.
Pricing
The Actor charges for one policy_page_check event only after it successfully fetches, extracts, compares, and stores a policy-page snapshot. Invalid URLs and fetch_error records are not charged. The current Store price is shown on the Actor listing.
Persistence and scheduling
Successful snapshots are stored in the named key-value store vendor-policy-change-monitor-state-v1, rather than in run-scoped default storage. This allows scheduled cloud runs to compare against prior successful runs. Use a unique monitorId for each independent watchlist. The Actor stores normalized public-page text to create a later diff; do not use it for confidential or authenticated URLs.
Schedule the Actor daily or weekly in Apify. Use dataset integrations, webhooks, or your own downstream workflow to route changed records to the appropriate review process.
Local development
python3 -m venv .venv.venv/bin/pip install -r requirements.txtAPIFY_LOCAL_STORAGE_DIR=./local-storage .venv/bin/python -m src.main
For a custom local input, create local-storage/key_value_stores/default/INPUT.json before running. The Docker image uses Apify's Python 3.11 base image.
Limitations
- Monitors publicly accessible HTML only; it does not log in, bypass access controls, or solve CAPTCHAs.
- JavaScript-rendered content that is absent from the initial response may require a source page with server-rendered policy text.
- The text diff is an operational signal, not a legal interpretation. Review source pages and consult qualified counsel for legal decisions.