Distribution Model
Why There Is No Lookup API.
The obvious design — ask the server "is tracker.example a
tracker?" — would hand us a live feed of everything you browse. It is
cheaper to build and it is disqualifying.
Instead the full ruleset ships to the client, signed and versioned. Evaluation is local. From a rule download, the only thing this server learns is that some browser requested the current dataset.
sessyn.io
↓ signed + versioned ruleset
Extension verifies the signature
↓
Rules stored locally
↓
Browsing evaluated on device
Requests to sessyn.io per page load: 0
Published Ruleset
Every Rule, With Its Evidence.
A classification without a source is an opinion. Each rule carries an owner, a category, a confidence level, and a review date. Anything above "unknown" confidence must cite a reviewable source, and the schema rejects rules that do not.
| Rule | Owner | Category | Action | Confidence | Reviewed |
|---|---|---|---|---|---|
| tracker.google.analytics | Google LLC | analytics | block | verified | 2026-09-12 |
| tracker.google.tagmanager | Google LLC | analytics | restrict | verified | 2026-09-12 |
| tracker.google.doubleclick | Google LLC | advertising | block | verified | 2026-09-21 |
| tracker.meta.pixel | Meta Platforms, Inc. | advertising | block | verified | 2026-09-12 |
| tracker.microsoft.clarity | Microsoft Corporation | analytics | block | verified | 2026-09-12 |
| tracker.tiktok.pixel | ByteDance Ltd. | advertising | block | verified | 2026-09-12 |
| tracker.segment.api | Twilio Inc. (Segment) | analytics | block | verified | 2026-09-17 |
| cdn.jsdelivr | jsDelivr | cdn | allow | verified | 2026-09-12 |
| payment.stripe.js | Stripe, Inc. | payment | allow | verified | 2026-09-12 |
| asset.meta.fbcdn | Meta Platforms, Inc. | cdn | allow | verified | 2026-09-14 |
| asset.google.gstatic | Google LLC | cdn | allow | verified | 2026-09-14 |
| asset.github.githubassets | GitHub, Inc. | cdn | allow | verified | 2026-09-14 |
| asset.x.twimg | X Corp. | cdn | allow | verified | 2026-09-14 |
| asset.meta.cdninstagram | Meta Platforms, Inc. | cdn | allow | verified | 2026-09-14 |
| asset.reddit.static | Reddit, Inc. | cdn | allow | verified | 2026-09-14 |
| asset.linkedin.licdn | LinkedIn Corporation | cdn | allow | verified | 2026-09-14 |
| asset.google.ytimg | Google LLC | cdn | allow | verified | 2026-09-14 |
| asset.ebay.static | eBay Inc. | cdn | allow | verified | 2026-09-21 |
| tracker.google.adservices | Google LLC | advertising | block | verified | 2026-09-22 |
| tracker.google.syndication | Google LLC | advertising | block | verified | 2026-09-22 |
| tracker.mixpanel.api | Mixpanel, Inc. | analytics | block | verified | 2026-09-22 |
| tracker.mixpanel.sdk | Mixpanel, Inc. | analytics | block | verified | 2026-09-22 |
| tracker.heap.api | Heap Inc. (Contentsquare) | analytics | block | verified | 2026-09-22 |
| tracker.amplitude.api | Amplitude, Inc. | analytics | block | verified | 2026-09-22 |
| tracker.pinterest.tag | Pinterest, Inc. | advertising | block | verified | 2026-09-22 |
| tracker.adobe.analytics | Adobe Inc. | analytics | block | verified | 2026-09-22 |
| tracker.adobe.analytics-legacy | Adobe Inc. | analytics | block | verified | 2026-09-22 |
| tracker.adobe.audience-manager | Adobe Inc. | advertising | block | verified | 2026-09-22 |
| tracker.hubspot.analytics | HubSpot, Inc. | analytics | block | verified | 2026-09-22 |
| tracker.hubspot.ads | HubSpot, Inc. | advertising | block | verified | 2026-09-22 |
| tracker.google.analytics.all-hosts | Google LLC | analytics | block | likely | 2026-09-26 |
| tracker.fullstory.edge.fullstory.com | FullStory, Inc. | analytics | block | likely | 2026-09-26 |
| tracker.fullstory.rs.fullstory.com | FullStory, Inc. | analytics | block | likely | 2026-09-26 |
| tracker.microsoft.bat.bing.com | Microsoft Corporation | advertising | block | likely | 2026-09-27 |
| tracker.microsoft.bat.bing.net | Microsoft Corporation | advertising | block | likely | 2026-09-27 |
| tracker.x.static.ads-twitter.com | X Corp. | advertising | block | likely | 2026-09-27 |
| tracker.x.ads-twitter.com | X Corp. | advertising | block | likely | 2026-09-27 |
| tracker.x.ads-api.twitter.com | X Corp. | advertising | block | likely | 2026-09-27 |
| tracker.x.analytics.twitter.com | X Corp. | advertising | block | likely | 2026-09-27 |
| tracker.quantcast.pixel | Quantcast Corporation | analytics | block | likely | 2026-09-27 |
| tracker.mouseflow.mouseflow.com | Mouseflow ApS | analytics | block | likely | 2026-09-28 |
| tracker.crazyegg.crazyegg.com | Crazy Egg, Inc. | analytics | block | likely | 2026-09-28 |
| tracker.fullstory.edge.eu1.fullstory.com | FullStory, Inc. | analytics | block | likely | 2026-09-28 |
| tracker.fullstory.rs.eu1.fullstory.com | FullStory, Inc. | analytics | block | likely | 2026-09-28 |
Note the allow entries. A payment script and a content
network are not trackers, and a blocklist that cannot express "this one is
fine" breaks the web and gets switched off.
Integrity
Rulesets are signed with ECDSA P-384, and the public key is embedded in the extension. The private key is non-exportable inside an Azure Key Vault HSM, so signing is a remote operation and the key cannot be copied off — including by whoever is doing the signing.
A signature is checked on your device, not on the server. That is the point: whoever serves this file cannot change what your browser enforces, so a compromised host, a mis-issued certificate and a hostile proxy all fail the same way — the update is rejected and the installed rules stay.
Current status: remote rule fetching is live. Updates are fetched, verified and applied only when the signature checks out and the version is newer than the one installed; the ruleset shipped inside the extension is the floor and is never replaced by an older one. One signature is required: ECDSA-P384, from a key held in an Azure hardware security module that signs only after a person approves the change with a passkey (ADR-0021). The earlier post-quantum ML-DSA-65 signature was retired in 0.2.65; current builds refuse a ruleset that still carries one rather than half-check it.
Where These Rules Come From
Every rule above cites at least one source with a retrieval date, and the strongest evidence is the least dramatic kind: a provider's own documentation describing what its own product does. After that, browser and web standards, then standards bodies, then published regulatory findings. A cookie database or another blocklist is treated as a lead to investigate, never as proof on its own — copying a blocklist would import its mistakes along with its coverage.
Candidates are researched automatically, and that research cannot publish anything. It produces a proposal that a person has to promote by hand, and it is held to a deliberately low ceiling: an automated proposal may never claim the top confidence level, because a machine cannot confirm that a page says what it is claimed to say. Since an allowlist entry and the essential, security and preference categories all require that top level, automated research structurally cannot produce them — it can only ever suggest something be blocked or restricted, and only a person can agree.
Before a proposal is even written down, every citation is opened to check it exists, and at least one must be the operator of that endpoint documenting its own behavior, or a standards body or regulator. Sign-in, bot-defense, payment and certificate endpoints are refused outright: a wrong block there locks someone out of their bank rather than costing them an advertiser. Those two mistakes are not equally expensive, and the rules are not written as though they were.
The confidence levels these rules carry, and what Sessyn will and will not
do at each one, are set out in
how it works. The full
sourcing policy — the hierarchy above, what is not admissible, and
the review cadence — ships in the project repository as
docs/rules/RULE_SOURCES.md.
Disputes and Corrections
If you operate a domain classified here and believe it is wrong, write to contact us with your evidence. Corrections are published with a changed review date.
Classification is never for sale. Sessyn will not accept payment to allowlist a tracker or to describe tracking as essential — that is written into the project's monetization guardrails, not left to good intentions.
Machine-Readable Endpoints
| Path | Purpose | Status |
|---|---|---|
| /rules/index.json | Points at the current version, with its size and SHA-256 | Live |
| /rules/<version>.json | The ruleset for that version. Immutable once published | Live |
| /rules/<version>.json.sig | Detached ECDSA P-384 signature over those exact bytes | Live |
| /cookies/index.json | Points at the current signed cookie library (what each cookie is for, with sources), with its size and SHA-256 | Live |
| /cookies/<version>.json | The cookie library for that version, read beside the rule check with the same key. Immutable once published; readable at sessyn.org | Live |
| /cookies/<version>.json.sig | Detached ECDSA P-384 signature; the signed document says it is a cookie library, so it can never be taken for a ruleset | Live |
| POST reports.sessyn.io/v1/reports | Receives a diagnostic report a person chose to send from the extension, after seeing it. Sealed on arrival; kept 30 days; answers with a receipt | Live |
| DELETE reports.sessyn.io/v1/reports/<receipt> | Deletes that report. Answers the same whether or not it existed | Live |
| /security.txt | Security contact | Live |
No endpoint answers a question about a URL or a hostname. One accepts
browsing input: reports.sessyn.io/v1/reports, which takes
only a report a person chose to send, in a fixed format, and refuses
anything else. It names the sites that person captured, so it is not
anonymous; it never contains page addresses, cookie values, times or
identifiers. It is on its own host, deliberately not behind Cloudflare,
so the report is encrypted all the way to Sessyn's server, and no request
log is kept for it. Sessyn will not operate an API that could be turned
into an open proxy or an internal-network scanner.