15% off your first purchase with code WELCOME15, up to 25 GB.

See pricing

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

Illustration. The URLs and values are fictional; the connection string is the real grammar.
€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

  1. 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.

  2. 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.

  3. 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 page
    import 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}
  4. 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.

  5. 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.

PlanRoleSessionTargetingPrice
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.
RotatingCountry
€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 pageCountry + 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.

sticky · Germany · 10 min
http://USERNAME_pool-arcfast_country-de_session-k3f9a1x2_sesstime-10:PASSWORD@proxy.arcproxies.io:8000

Swap _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

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

PageFetcherExitTypical weight
Terms, privacy policy, cookie noticePlain HTTP with conditional requestsARC Basic, country30–150 KB, a few hundred bytes when unchanged
Policy annexes and subprocessor listsPlain HTTP, often PDFARC Basic, country50 KB–2 MB
Pricing pages filled in by scriptHeadless browserARC Fast, sticky, country1–3 MB rendered
Region pickers and geo-redirectsPlain HTTP, follow redirects, store final URLExit in each marketSmall

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. [1]EUR-Lex: Regulation (EU) 2019/1150 on promoting fairness and transparency for business users of online intermediation services
  2. [2]EUR-Lex: Regulation (EU) 2022/2065 on a Single Market for Digital Services (Digital Services Act)
  3. [3]Princeton University (Amos et al., The Web Conference 2021): Privacy Policies over Time: Curation and Analysis of a Million-Document Dataset
  4. [4]Open Terms Archive: Open Terms Archive

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.