Policy Change Monitor - Terms & Privacy Diffs
Pricing
$2.00 / 1,000 policy page checkeds
Policy Change Monitor - Terms & Privacy Diffs
Terms of service and privacy policy change monitor. Watch policy pages and PDFs, get line-level diffs when they change, with moved-page detection and webhook alerts.
Pricing
$2.00 / 1,000 policy page checkeds
Rating
0.0
(0)
Developer
Data Foundry
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Policy Change Monitor
Watch terms of service, privacy policies and DPAs, and get a readable diff when they change - "3 lines added, here they are" rather than "the page changed". Works on HTML pages and PDFs.
| What you get | Built for |
|---|---|
|
📄 HTML and PDF policies, parsed the same way |
⚖️ Compliance monitoring for DPOs and legal |
What data do I get?
One dataset record per URL per run, with the diff already computed.
changed- true when the normalised text differs from the previous runaddedLines/removedLines- how much movedaddedSample/removedSample- up to five of the actual lines, truncated for readabilitysimilarity- word overlap with the previous version (0 to 1)replaced- true below 0.4 similarity, which usually means a redesign or a different document at the same URLbeyondWindow- true when the page changed past the 20,000 character diff windowsuspicious- the page shrank to almost nothing but the previous state is kept, so a broken parse never looks like a deletionwordCount,pageHash,scrapedAt- for auditing
How much does it cost?
Pay per event: $2.00 per 1,000 pages checked ($0.002 each), whether the page is HTML or PDF. You are not charged for pages that fail.
| You monitor | Runs | Monthly cost |
|---|---|---|
| 20 policies, weekly | 87 | $0.17 |
| 50 policies, daily | 1,500 | $3.00 |
| 200 policies, daily | 6,000 | $12.00 |
That is roughly 50x cheaper than the change monitors that charge $100 per 1,000 checks.
How do I use it?
- Create a free Apify account.
- Open Policy & Terms Change Monitor in Apify Console.
- Paste the policy URLs you are accountable for.
- Add a
webhookUrlif you want to be notified rather than check. - Run it once as a baseline, then schedule it daily or weekly.
- Read
addedSampleto see the wording that changed.
Input
| Field | Type | Description |
|---|---|---|
urls | array | Policy URLs. HTML and PDF are both accepted. |
minWords | integer | Below this word count a page is treated as an extraction failure (default 50). |
webhookUrl | string | Optional https endpoint, called only when a policy changed. |
webhookSecret | string | Optional. Adds X-Signature-256: sha256=.... |
proxyConfiguration | object | Optional, for sites that block datacenter IPs. |
concurrency | integer | Pages fetched in parallel (default 4). |
{"urls": ["https://policies.google.com/terms","https://stripe.com/legal/terms"],"minWords": 50,"webhookUrl": "https://hooks.slack.com/services/..."}
Output
{"url": "https://pdfobject.com/pdf/sample.pdf","title": "sample","changed": false,"addedLines": 0,"removedLines": 0,"addedSample": [],"removedSample": [],"wordCount": 415,"pageHash": "87657b40d081b94240333a512684ce80e04f131685aebc9f074df6587aa4b96c","beyondWindow": false,"similarity": 1,"replaced": false,"scrapedAt": "2026-11-06T09:24:51+00:00"}
The POLICY_SIGNALS record holds per-URL state plus totals (changed, addedLines, suspicious, failed) and any errors.
Notes and exceptions
- The first run is a baseline.
changedis false by construction; the second run is where diffs start. - Scanned PDFs have no text layer. They are reported as an extraction failure rather than an empty policy. OCR is not included.
- Only the first 20,000 characters are stored and diffed. A change deeper in a very long policy still sets
beyondWindow: true, but the diff lines themselves are not available. - Pages that render entirely in JavaScript will fail the
minWordscheck and be reported as errors. Server-rendered policy pages and PDFs are the supported path. - A redesigned page scores low on similarity. That is what
replacedis for - it distinguishes "your terms were edited" from "a different document now lives at this URL". - Login-protected and paywalled pages are out of scope.
What can I do with the data?
Vendor risk reviews. You are accountable for the policies of every supplier who touches customer data. Point the actor at 50 of them, run it weekly, and read only the entries where changed is true.
Compliance evidence. Keep every dataset run. pageHash plus scrapedAt is a record that a policy said a particular thing on a particular date.
Watching a competitor's terms. Pricing and terms often move together. When they add an arbitration clause or change a refund window, you see the exact wording.
FAQ
Does it work on PDF terms? Yes - application/pdf is parsed and diffed like HTML, including PDFs served as application/octet-stream. A PDF with no text layer is reported as a failure.
How is this different from a website change monitor? Most of those only tell you "changed: true" or diff the whole DOM. This returns the actual added and removed lines, detects moved or redesigned pages, and refuses to report a parser failure as a deletion.
What happens if a page goes down? The URL is reported as failed, previous state is preserved, and nothing is charged.
Can I be alerted only? Yes - set webhookUrl and ignore the dataset. Delivery retries on 5xx and 429 and never fails the run.
Related Actors
- Competitor Pricing Page Monitor - price points and diffs from pricing pages.
- Review Scraper - reviews across 11 sources with a new-since-last-run diff.
- App Store Rank Tracker - chart rank, rating and version changes.
Changelog
- 0.6 - PDF support, magic-byte sniffing, linear similarity (a quadratic path could stall for 35s), page caps.
- 0.5 -
replacedandsimilarityfor moved or redesigned pages. - 0.4 -
beyondWindowso changes past the diff window are not missed. - 0.1 - First release.