The endpoints your television reports to

The list

Every endpoint below was measured or reported, and each rule carries the sentence that decided what it is. The keep-working hosts are filtered out before a list is rendered, so a list this app serves cannot carry a rule for a host your set needs in order to update, install an app, or play.

Point a Pi-hole or an AdGuard Home at one of these and it stays current:

https://zpe.vc/tv/_/api/v1/blocks?brand=samsung&dialect=pihole

Swap dialect for adguard, dnsmasq, hosts, nextdns or unbound, and brand for any of the 10 platforms in the catalogue.

The dataset

What a set actually resolves is not public anywhere. A machine running the local scanner can contribute one anonymous submission a week: a rotating pseudonym, the platform, and the hostnames with a bucketed count. No address, no account, no model string, no timestamps beyond the week.

One address is touched and it is not stored: a per-instance rate-limit counter keeps an address in memory for an hour to stop a flood, and that counter is never written to a row, never logged and never joined to a submission. Everything else about a caller is unread.

A host is published only after 3 distinct weekly pseudonyms across 2 separate weeks have reported it, so no single submission can put a host on this page. The dataset endpoint publishes the counts and the number it withheld for being below that floor.

What it cannot say

It cannot tell you a host is safe, only what the catalogue knows it to be. It cannot see a set that ignores its DNS setting, and it cannot touch a hardcoded address. And the dataset is a signal, not a census: a determined actor can mint pseudonyms, so a surprising row is a question.

The machine surface

/tv/_/api/v1/openapi.json describes every operation. /_/api/v1/blocks is the list. /_/api/v1/catalog is the catalogue with its provenance and the sha256 of the artifact it was built from. /_/api/v1/dataset reads the aggregates, and POST to the same address takes one submission.