// the hero artifact
bot-detection capability matrix
every tracked anti-detect tool scored 0 to 3 against the seven detection layers. 66 tools, 7 layers, no execution needed, just the always-current knowledge of which capability each tool declares. see also the published datasets.
the measured column could not be read for this build
the measured verdict was not readable when this page was generated, so every measured cell is unknown rather than empty. that is not the same as nothing having been measured, and this page will not guess which. what fills it: the next regeneration, once the free matrix endpoint answers again. this page is rebuilt hourly. the 66 tools and their 7 declared layer scores below are unaffected, because they are compiled from the catalog at build time.
the same verdicts are published as downloadable datasets.
how to read this table
- measured
- the live pass rate over definitive benchmark attempts, with its sample size n. rows are ordered by the wilson lower bound of that rate, never the raw rate, so a tool cannot lead the table on a single lucky attempt. declared and measured answer different questions and are never merged.
- the 7 layer columns
- capability the catalog DECLARES, not a result: 0 unaddressed · 1 partial · 2 strong · 3 native · · = the tool declares nothing for that layer. each carries a confirmed / speculative provenance tag.
7 layer columns (tls / network fingerprint · ip reputation · js fingerprint · behavioral · challenge · attestation · server coherence). on a narrow screen the table scrolls sideways to reach them all.
| tool | measured | tls | ip-reputation | js-fingerprint | behavioral | challenge | attestation | server-coherence |
|---|---|---|---|---|---|---|---|---|
| 2captcha speculative mentioning | unread | · | · | · | 2 | 3 | · | · |
| abcproxy speculative mentioning | unread | · | 2 | · | · | · | · | · |
| AdsPower speculative mentioning | unread | · | · | 2 | · | · | · | 2 |
| anti-captcha speculative mentioning | unread | · | · | · | 2 | 3 | · | · |
| Apify fingerprint-injector speculative testing | unread | · | · | 2 | · | · | · | 2 |
| Attach to real user Chrome (CDP) speculative testing | unread | 3 | · | 1 | 1 | · | · | · |
| bright data speculative mentioning | unread | · | 3 | · | · | · | · | · |
| Bright Data Scraping Browser speculative mentioning | unread | · | 3 | 2 | · | 3 | · | 2 |
| Browserbase speculative mentioning | unread | · | · | 2 | · | 1 | · | 1 |
| BrowserForge (FP generator) speculative testing | unread | · | · | 1 | · | · | · | 2 |
| Browserless speculative mentioning | unread | · | · | 1 | · | · | · | 1 |
| byteful speculative mentioning | unread | · | 2 | · | · | · | · | · |
| Camoufox (anti-detect Firefox) confirmed testing | unread | 2 | · | 2 | 1 | · | · | · |
| Camoufox FP (BrowserForge + Skia) speculative testing | unread | · | · | 2 | · | · | · | 2 |
| capmonster cloud speculative mentioning | unread | · | · | · | · | 3 | · | · |
| capsolver speculative mentioning | unread | · | · | · | · | 3 | · | · |
| CloakBrowser (stealth Chromium) confirmed testing | unread | 2 | · | 3 | 1 | · | · | · |
| curl_cffi (transport baseline) confirmed testing | unread | 3 | · | · | · | · | · | · |
| deathbycaptcha speculative mentioning | unread | · | · | · | 2 | 2 | · | · |
| decodo (ex-smartproxy) speculative testing | unread | · | 3 | · | · | · | · | · |
| Dolphin{anty} speculative mentioning | unread | · | · | 2 | · | · | · | 2 |
| evomi speculative mentioning | unread | · | 2 | · | · | · | · | · |
| ez-captcha speculative mentioning | unread | · | · | · | · | 2 | · | · |
| fakebrowser (JS-override control) speculative testing | unread | · | · | 1 | · | · | · | · |
| ghost-cursor (mouse, Node) speculative mentioning | unread | · | · | · | 2 | · | · | · |
| ghost-cursor-playwright speculative mentioning | unread | · | · | · | 2 | · | · | · |
| GoLogin speculative mentioning | unread | · | · | 2 | · | · | · | 2 |
| human_mouse (mouse, Python) speculative mentioning | unread | · | · | · | 2 | · | · | · |
| Hyperbrowser speculative mentioning | unread | · | · | 2 | · | 1 | · | 1 |
| Incogniton speculative mentioning | unread | · | · | 2 | · | · | · | 1 |
| infatica speculative mentioning | unread | · | 2 | · | · | · | · | · |
| iproyal speculative mentioning | unread | · | 3 | · | · | · | · | · |
| ixBrowser speculative mentioning | unread | · | · | 2 | · | · | · | 1 |
| Kameleo speculative mentioning | unread | · | · | 3 | · | · | · | 2 |
| massive speculative mentioning | unread | · | 2 | · | · | · | · | · |
| Multilogin X speculative mentioning | unread | · | 2 | 3 | · | · | · | 2 |
| netnut speculative mentioning | unread | · | 3 | · | · | · | · | · |
| nodemaven speculative mentioning | unread | · | 3 | · | · | · | · | · |
| nodriver (minimal raw CDP) confirmed testing | unread | 2 | · | 2 | 1 | · | · | · |
| nopecha speculative mentioning | unread | · | · | · | · | 2 | · | · |
| Octo Browser speculative mentioning | unread | · | · | 3 | · | · | · | 2 |
| oxylabs speculative mentioning | unread | · | 3 | · | · | · | · | · |
| packetstream speculative mentioning | unread | · | 2 | · | · | · | · | · |
| Patchright (patched Playwright) speculative testing | unread | 2 | · | 2 | 1 | · | · | · |
| ping proxies speculative mentioning | unread | · | 2 | · | · | · | · | · |
| Playwright (CDP launch), control baseline confirmed testing | unread | 1 | · | 1 | · | · | · | · |
| Playwright connectOverCDP speculative testing | unread | 1 | · | 1 | · | · | · | · |
| playwright-extra + stealth speculative testing | unread | 2 | · | 2 | 1 | · | · | · |
| proxyempire speculative mentioning | unread | · | 2 | · | · | · | · | · |
| Puppeteer (vanilla, no stealth) speculative testing | unread | 1 | · | 1 | · | · | · | · |
| puppeteer-extra + stealth speculative testing | unread | 2 | · | 2 | 1 | · | · | · |
| rayobyte speculative mentioning | unread | · | 2 | · | · | · | · | · |
| rebrowser-patches (Playwright) speculative testing | unread | 2 | · | 2 | 1 | · | · | · |
| scrapeless speculative mentioning | unread | · | · | · | · | 3 | · | · |
| scraperapi speculative mentioning | unread | · | 2 | · | · | · | · | · |
| scrapingbee speculative mentioning | unread | · | 2 | · | · | · | · | · |
| selenium-driverless speculative testing | unread | 2 | · | 2 | 1 | · | · | · |
| soax speculative mentioning | unread | · | 3 | · | · | · | · | · |
| solvecaptcha speculative mentioning | unread | · | · | · | 2 | 2 | · | · |
| Steel speculative mentioning | unread | · | · | 2 | · | 1 | · | 1 |
| typing humanizer (keystroke) speculative mentioning | unread | · | · | · | 1 | · | · | · |
| undetected-chromedriver confirmed testing | unread | 2 | · | 2 | 1 | · | · | · |
| WebDriver BiDi (reserved) speculative testing | unread | 1 | · | 1 | · | · | · | · |
| webshare speculative mentioning | unread | · | 1 | · | · | · | · | · |
| zendriver (nodriver fork) speculative testing | unread | 2 | · | 2 | 1 | · | · | · |
| zyte (smart proxy manager) speculative mentioning | unread | · | 2 | · | · | · | · | · |
every declared score carries its provenance: confirmed is grounded in a capture, speculative is best-known. measured and declared answer different questions and are never merged into one number.
questions
- what does the capability matrix measure?
- it scores 66 tracked tools 0 to 3 on each of the seven detection layers: 0 unaddressed, 1 partial, 2 strong, 3 native. the layer scores are the catalog's declared, confidence-tagged capability, which the catalog carries undated. the measured column is live: no tool has a verified run yet.
- which detection layers are modelled?
- tls / network fingerprint, ip reputation, js fingerprint, behavioral, challenge, attestation, server coherence.
- why do some tools show no measured pass rate?
- the measured verdict could not be read when this page was generated, so every measured cell reads unread rather than a number. that is unknown, not zero, and not a claim that nothing has been measured. the declared 0 to 3 layer scores are compiled from the catalog and are unaffected.
check the target you actually care about
the field above is per tool. the per-site half is free too: a detection profile names the vendors and layers a hostname enforces, no account needed. a free account is credited a one-time token grant at signup, which is what a current-best config lookup spends once a site has been measured.