Whole Antidetect Catalog Donut Browser

Catalogue · Field log

Field check log

Every run of the sweep, what it read, and what it could not. A register that only prints its successes is a register that has never told you when it was wrong, so the refusals below are part of the record and not an appendix to it.


Runs

Run Edition in force Checked Failures What it produced
2026-08-14T09:12:00Z 2nd 153 2 dead · 9 refused 2ND ED., 1ST PRINTING. 64 repository reads and 89 link checks. Moved 107 entries , of which 2 were found dead.
2026-06-02 1st 64 — First edition, first printing. Repository metadata only; the first edition had no link liveness sweep, so the 89 non-repository entries were listed without a state.

Both rows above are manual sweeps. The nightly automated run this rubric is written for needs a server-side GitHub token for the rate limits and a store for the history; it is not in service yet, and this log will show it the moment it is. Until then the correction date in the folio is the only claim this catalogue makes about how current it is.

Dead on the last check

Entry Status Checked What happened
Are You Headless
https://arh.antoinevastel.com/bots/areyouheadless
502 2026-08-14 Bad Gateway. No earlier observation in this register, so no down-since date is printed.
deviceinfo.me
https://www.deviceinfo.me/
none 2026-08-14 Connection failure — no HTTP response at all, from two attempts.

Targets that refused the check, and are therefore not listed

These were attempted and could not be read. None of them appears as an entry, because this register does not list what it has not checked — and it does not silently drop them either, because "we tried and failed" is a field too. Several are widely cited by other lists.

Target Outcome Why it is not an entry
Reddit communities (r/webscraping, r/antidetect, r/proxies, r/selenium, r/Playwright) 403 / blocked Every request path available to the sweep was refused: direct fetch, about.json, and search. Existence and activity are unconfirmed, so none of them are listed as entries.
BlackHatWorld — anti-detect browsers forum 403 The site refuses automated clients. The forum may well exist; this register could not confirm that specific forum id, so it is not listed.
ZenRows blog 403 Refuses automated clients. Not listed.
ACM Digital Library 403 Refuses automated clients. Papers are listed via arXiv, HAL or author mirrors instead, which is why section 05 avoids publisher URLs.
Akamai techdocs — Bot Manager 302 → SAML login Gated behind SSO. The public product page is listed in its place and flagged as a substitution.
Kameleo docs
https://kameleo.io/docs
404 Path does not exist. help.kameleo.io is the live documentation host.
Kasada platform page 404 Path does not exist. The root is listed instead.
AmIUnique statistics (wrong path)
https://amiunique.org/stats
404 Widely copied and wrong. The live path is /fingerprints-global-statistics, which is what section 08 lists.
Scraping In Prod (Discord) invite expired The invite no longer resolves. The server may exist behind a new invite; without one there is nothing to list.

Why a link sweep is the part nobody else does

Cataloguing repositories is easy, because a repository publishes its own liveness: a push date, a release, an archive flag, all of it machine-readable from one endpoint. Everything else in this catalogue — the test pages, the vendor documentation, the papers, the communities — publishes nothing of the kind. The only liveness signal that exists for them is whether the address answers, and finding that out requires actually asking.

A browser cannot ask on your behalf: a cross-origin request to another site tells a page nothing it is allowed to read, which is why every list in this category that runs entirely in a browser or entirely from a README has no choice but to print links it has never requested. The check has to be made server-side, and the result has to be stored with the instant it was made, or it is not evidence of anything by the time you read it.

What the refusals tell you that the successes do not

Look at the second table. Every row in it is a target that a great many other lists print without hesitation, and not one of them could be confirmed from where this sweep runs. Some refuse automated clients on principle. Some sit behind single sign-on. One is a widely-copied path that has simply never existed, reproduced from list to list by people who never requested it — which is the failure mode this whole register was built against, caught in the act.

None of them is listed as an entry, because this catalogue does not list what it has not checked. They are printed here instead, with what was tried and what came back, so that the absence is a recorded decision rather than a gap you have to notice.


Questions about the sweep and its failures

Answered from the run log above, and from the rules that turned its results into states.

What is a field check in this registry?

One pass of the sweep: a repository metadata read for every entry that has one, and an HTTP request for every entry that does not. Every dated field in a printing carries the instant of that pass, and the rubric turns the results into states without anyone deciding anything by hand.

Why publish the checks that failed?

Because a register that prints only its successes has never told you when it was wrong, and because a target that refuses an automated client is a fact about that target rather than an embarrassment for the sweep. Several widely-cited addresses are absent from this catalogue entirely for that reason, and the attempt is recorded here instead of being silently dropped.

How often is this anti-detect registry updated?

This printing came from one manual sweep. The nightly automated run the rubric is written for needs a server-side token for the rate limits and a store for the history, and it is not in service yet — when it is, every run will appear in the table above. Until then the corrected-to date in the folio is the only claim this catalogue makes about how current it is.

A link marked dead works when I open it. What now?

Then this register is wrong about that row, and the status code, the endpoint and the instant of the check are printed on the entry page precisely so you can establish that. A host that refuses an automated client and answers a browser is a real and common case; it is recorded as a refusal rather than hidden. Every entry currently marked dead is listed together.


Everything on this page exists because a link that has not been requested is not evidence. Donut Browser is the tool the people who keep this register work on, and it is held to the same standard: an open-source anti-detect browser under AGPL-3.0 with the desktop application and the sync server both in the repository, engine-level fingerprint spoofing through the Wayfern Chromium fork rather than injected JavaScript, a local REST API and MCP server on your own machine, zero telemetry, and a pre-launch gate that refuses to start a profile when the proxy's exit geography contradicts the profile's fingerprint. Its row was read in the same sweep as every other row above.

Download Donut Browser

curl -fsSL https://donutbrowser.com/install.sh | sh

macOS · Windows · Linux · Nix. Desktop only. Source, AGPL-3.0 · Its entry · The rubric · The keepers' disclosure

The Reddit row is the one that costs us. Five active communities that every list in this category prints without hesitation, and not one of them could be confirmed from where the sweep runs. They stay off until someone checks them by hand and signs for it. — ED.