Reviews & changes · Terms and policy changes
Terms of service and privacy policy change monitoring by market
Terms and policy change monitoring keeps a dated, versioned copy of the legal and pricing pages that matter to you and tells you what changed, in which market, on which day. Fetch each page from the country whose version you need, because many services publish different terms by region.
Pay per GB · No subscription · Prices in EUR, excl. VAT
- €0.75
- per GB on ARC Basic, excl. VAT
- −21%
- at 1 TB (€0.59 / GB)
- 185+
- countries, city targeting
- Never
- expires — no subscription
Written for
- Legal operations teams
- Compliance and vendor risk teams
- Platform policy researchers
- Competitive intelligence analysts
The short answer
- Many services publish a different terms or privacy page per region: an EU version, a UK version, US state notices. Fetch each from an exit in its market.
- Diff extracted text, not raw HTML. Navigation, timestamps and session tokens change on every load and drown the real edits.
- Keep every version with its fetch time, exit location and hash. A change log is only useful as evidence if you can show what the page said and when.
- Some changes come with legal notice requirements, such as at least 15 days' notice to business users under the EU platform-to-business regulation. Monitoring is how you check the date you were given.
- Policy pages change rarely and weigh little. Conditional requests make an unchanged check cost almost nothing.
The problem
What goes wrong without the right IPs
Geo-redirects hide the version you need
Request a global service's terms from one country and you get that country's version every time. The EU version can change while your monitor reports no difference.
Noise from page furniture
Cookie banners, rotating promotions, CSRF tokens and 'last visited' timestamps make every fetch different at the byte level. A raw diff alerts on every run and gets ignored.
Silent edits without a new date
Not every change updates the 'last updated' line. Some edits are made in place, and the only record is the one you kept.
Policies are split across many pages
A privacy policy links to a cookie notice, a state-specific annex and a subprocessor list. Watching the main page alone misses the annex where the substantive change happened.
Pricing pages render by script and currency
Plan prices are often filled in by JavaScript after a currency lookup on the visitor's location. A plain HTTP fetch sees an empty table; one from the wrong country sees the wrong currency.
What to collect
What you can collect
- Document URL and type
- Terms, privacy policy, cookie notice, acceptable use, pricing, subprocessor list. Changes mean different things in each.
- Market and language
- Which regional version you fetched, and from where. The same service can change its EU terms and leave its US terms alone.
- Extracted main text
- The policy content without navigation or banners. This is what you diff.
- Content hash
- A hash of the normalised text. Equal hashes mean no change and no need to store a new version.
- Stated effective date
- The 'last updated' or 'effective from' line, stored separately from your own fetch date, because the two diverge.
- Raw HTML and screenshot
- The evidence copy. If a change is disputed, this is what shows how the page looked.
- Section-level diff
- Which clauses were added, removed or reworded. Reviewers read the diff, not the whole document.
- Prices, currency and tax display
- For pricing pages: plan, price, billing period and whether tax is included, per market.
How it runs
How a collection run works
- 01
Inventory the documents per service and market
For each service you track, list every legal and pricing page and every regional variant. Follow links from the main policy to annexes and include them.
- 02
Fetch on a schedule, from the right country
Check each document once or twice a day through an exit in its market, with conditional requests. Pricing pages that render by script go to a headless browser on a sticky exit.
- 03
Normalise, hash and store only real changes
Extract the main text, strip dates, tokens and banners, collapse whitespace and hash. Store a new version only when the hash changes.
Fetch, normalise and hash a policy page24 linesimport hashlibimport reimport httpxfrom selectolax.parser import HTMLParserGATEWAY, PASSWORD = "proxy.arcproxies.io:8000", "PASSWORD"NOISE = re.compile(r"\b(csrf|nonce|session)[^\s]*|\d{1,2}:\d{2}(:\d{2})?", re.I)def snapshot(url: str, country: str, etag: str | None = None): user = f"USERNAME_pool-arc_country-{country}" headers = {"If-None-Match": etag} if etag else {} with httpx.Client(proxy=f"http://{user}:{PASSWORD}@{GATEWAY}", timeout=30, follow_redirects=True) as c: r = c.get(url, headers=headers) if r.status_code == 304: return None # unchanged since the last check tree = HTMLParser(r.text) for sel in ("nav", "header", "footer", "script", "style", "[id*=cookie]"): for node in tree.css(sel): node.decompose() main = tree.css_first("main") or tree.body text = NOISE.sub("", " ".join(main.text(separator=" ").split())) return {"final_url": str(r.url), "etag": r.headers.get("etag"), "sha256": hashlib.sha256(text.encode()).hexdigest(), "text": text} - 04
Diff by section and route the alert
Split the text on headings and diff section by section. Send the changed sections, with a link to both versions, to the reviewer who owns that service or market.
- 05
Keep the archive
Retain every version with raw HTML, screenshot, fetch time, exit location and hash. The archive is what turns an alert into evidence.
Setup
Recommended setup
This is the lightest workload we serve: small pages, checked a few times a day. Stay on the cheapest pool and add residential exits only for rendered pricing pages.
| Plan | Role | Session | Targeting | Price |
|---|---|---|---|---|
ARC Basic Rotating ISP | Default for legal pages Our lowest price per GB, and a policy check is tens of kilobytes. Country targeting returns the regional version you are monitoring. | Rotating | Country | €0.75 / GB €0.59 at 1 TB (−21%) |
ARC Fast Rotating residential | For script-rendered pricing pages A residential exit held for one browser render, so the currency lookup and the price table come from the same visitor. | Sticky, 5 minutes per page | Country + city | €2.00 / GB €1.12 at 1 TB (−44%) |
Prices are list prices in EUR, excl. VAT. Volume discounts apply automatically at checkout — full ladder on the pricing page.
Connect
One connection string per market
The country, city and sticky session are tokens in the username. Change the token, change the market; keep the session handle, keep the IP.
http://USERNAME_pool-arcfast_country-de_session-k3f9a1x2_sesstime-10:PASSWORD@proxy.arcproxies.io:8000Swap _country-de for any market you quote. The full grammar is on the residential proxies page.
Illustration
What 3,000 documents in eight markets, twice a day costs
An illustration with round numbers — your pages, payloads and retry rate will differ. The arithmetic is the real price ladder.
Assumptions
- Documents
- 3,000 legal and pricing pages
- Markets
- 8 regional versions each
- Checks
- twice a day
- Weight per check
- 80 KB average, less when unchanged
- Period
- 30 days
- Bandwidth per month
- ≈ 116 GB
On ARC Basic
€78.88per month, excl. VAT
116 GB bought in one purchase at €0.68 / GB (−9% volume rung, applied automatically).
The same 116 GB on ARC Fast: €157.76 at €1.36 / GB. Route only the jobs that need it through the pricier pool.
A worst case: servers that honour conditional requests answer an unchanged page with a few hundred bytes, which cuts the real figure well below this.
Bandwidth never expires, so a bigger single purchase is only ever cheaper per GB. See the ladder.
In depth
Terms and policy changes, in depth
Legal notice periods you can check with a change log
Some changes to terms come with obligations attached, which makes an independent record useful:
- Business users of online platforms. The EU platform-to-business regulation (2019/1150) requires providers of online intermediation services to notify business users of proposed changes to their terms on a durable medium, with a notice period of at least 15 days before the change applies.
- Users of intermediary services. The Digital Services Act (2022/2065) requires providers to inform recipients of any significant change to their terms and conditions.
- Very large platforms and search engines. The same article requires them to publish a concise, machine-readable summary of their terms and to publish the terms in the official languages of all Member States where they offer their services, which is a reason to monitor more than one language version.
A dated archive of what each page said lets your legal team compare the notice they received with the change that went live. Interpreting whether a change met the rules is their call, not the monitor's.
Policies get longer, and change more than people notice
The most extensive longitudinal study of privacy policies, by researchers at Princeton and published at The Web Conference 2021, assembled 1,071,488 English-language policies covering more than 130,000 websites over two decades, from Internet Archive snapshots. It found policies became substantially longer and harder to read over time.
Archives built after the fact have gaps, which is why the researchers had to reconstruct history from whatever snapshots existed. If a service matters to you, keep your own record from the market you care about.
For broad public coverage, Open Terms Archive is an open-source project that records versions of the terms and privacy policies of many online services several times a day and publishes them as datasets. Use it where it covers your services, and run your own monitor for the regional versions, annexes and pricing pages it does not.
Static and rendered pages: which fetcher
| Page | Fetcher | Exit | Typical weight |
|---|---|---|---|
| Terms, privacy policy, cookie notice | Plain HTTP with conditional requests | ARC Basic, country | 30–150 KB, a few hundred bytes when unchanged |
| Policy annexes and subprocessor lists | Plain HTTP, often PDF | ARC Basic, country | 50 KB–2 MB |
| Pricing pages filled in by script | Headless browser | ARC Fast, sticky, country | 1–3 MB rendered |
| Region pickers and geo-redirects | Plain HTTP, follow redirects, store final URL | Exit in each market | Small |
Detecting change on pages more generally, from stock levels to landing pages, is covered on the parent page for review and change monitoring. For reviews themselves, see app store reviews.
Monitoring pricing pages across markets
Pricing pages are the commercial counterpart of terms pages: they change more often, differ by currency and tax display per market, and are often rendered by script. Store plan names, prices, billing periods and whether tax is included, per market and per day.
For comparing the resulting prices across countries, including currency conversion and tax, see comparing prices across markets. If you are tracking retail product prices rather than service plans, start on price monitoring.
Works with anything that takes a proxy URL
- changedetection.io
- Python requests / httpx
Playwright
- n8n
- Docker
FAQ
Questions
Something not covered? Write to contact@arcproxies.io.
Why monitor terms of service from different countries?
Because many services publish separate terms, privacy notices and prices per region and choose the version by the visitor's location. Fetching from an exit in each market records the version that applies there, rather than whichever one your office is served.
How do I avoid false alerts when diffing policy pages?
Diff the extracted main text, not raw HTML. Remove navigation, cookie banners, scripts, timestamps and tokens, collapse whitespace and hash the result. Alert only when the hash changes, and show the reviewer a section-level diff.
How much notice must a platform give before changing its terms?
Under the EU platform-to-business regulation, online intermediation services must notify business users of proposed changes on a durable medium at least 15 days before they apply, longer where users need time to adapt. Other relationships have other rules; ask counsel which apply to you.
Is there a public archive of terms of service changes?
Open Terms Archive is an open-source project that records versions of many services' terms and privacy policies several times a day and publishes them as datasets. It does not cover every service, region or pricing page, which is where your own monitor comes in.
How often should policy pages be checked?
Once or twice a day is enough for most legal pages, since they change rarely. Pricing pages and pages under active dispute justify more frequent checks. With conditional requests, an unchanged check costs a few hundred bytes.
Sources & review
Last reviewed by the ARC Proxies team. Prices are read from the live catalog at build time.
- [1]EUR-Lex: Regulation (EU) 2019/1150 on promoting fairness and transparency for business users of online intermediation services
- [2]EUR-Lex: Regulation (EU) 2022/2065 on a Single Market for Digital Services (Digital Services Act)
- [3]Princeton University (Amos et al., The Web Conference 2021): Privacy Policies over Time: Curation and Analysis of a Million-Document Dataset
- [4]Open Terms Archive: Open Terms Archive
Reviews & changes
More on reviews & changes
Get started
Buy a gigabyte and try it on your own targets.
No subscription, no sales call. Code WELCOME15 takes 15% off your first purchase, and whatever you do not use is still there next quarter.