← neout/agents · Docs · Pricing

Anti-detect spec

The exact fingerprint stack every neout/agents browser emits. Published so you can audit it, not just trust the marketing copy.

Why a public spec? Every other "AI agent browser cloud" markets "stealth" or "advanced anti-detect" as a feature but never tells you what's in it. Detection vendors test against published specs — opaque vendors are easier to bucket. This page lists every value we patch, the layer it lives at, and the verification path for each.

If something on this page doesn't match what our burner actually emits, that's a bug — file it at support@neout.com.

The stack at a glance

LayerWhat we patchWhere
navigatorUA, platform, languages, vendor, webdriver, hardware_concurrency, deviceMemoryChromium C++ patch + V8 binding override
screenwidth, height, availHeight, colorDepth, pixelDepth, devicePixelRatioChromium C++ patch
WebGLUNMASKED_VENDOR, UNMASKED_RENDERER, getShaderPrecisionFormat, WEBGL_debug_renderer_info, extensionsChromium C++ patch with per-OS values (Apple Inc. / ANGLE-Apple-M2 for macOS, Google Inc. / Intel UHD for Windows)
CanvasPer-session deterministic noise on toDataURL / getImageData (canvas-session-ID plumbed end-to-end per profile)Chromium C++ patch (Skia path)
AudioAudioBuffer noise injection, hardware-coherent baseLatency derived from sample_rate / buffer_sizeChromium C++ patch (Blink AudioContext)
FontsReal OS font list (not the "Docker SwiftShader stub" that gives bots away)Phantom Docker image includes the real macOS/Windows font set
CDP signalnavigator.webdriver = false, all cdc_* properties stripped, Runtime.evaluate non-detectionChromium C++ patch + STEALTH_MODE flags
TLS / JA3Client Hello fingerprint matches real Chrome 147 — utls MITM proxy emits the same SNI extension order, GREASE values, cipher listPhase 4 sidecar (ja3-proxy / phantom-forwarder)
HTTP/2 settingsSETTINGS frame order + values match Chrome 147Phase 4 sidecar
Timezone / localeDerived from proxy.country at burner boot — primary_language + accept_languages + Intl.DateTimeFormat all coherentcloud-runner boot-time env injection

Per-OS values

The exact strings we emit per os_type. GET /v1/agents/{id}/fingerprint returns this shape for any provisioned agent.

OS_TYPE_MACOS (default)

navigator.userAgentMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.7727.25 Safari/537.36
navigator.platformMacIntel
WebGL UNMASKED_VENDORApple Inc.
WebGL UNMASKED_RENDERERANGLE (Apple, ANGLE Metal Renderer: Apple M2, Unspecified Version)
screen.colorDepth30 (matches real M-series Macs)
screen.pixelDepth30
hardware_concurrency8
deviceMemory8

OS_TYPE_WINDOWS

navigator.userAgentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.7727.25 Safari/537.36
navigator.platformWin32
WebGL UNMASKED_VENDORGoogle Inc. (Intel)
WebGL UNMASKED_RENDERERANGLE (Intel, Intel(R) UHD Graphics 630 Direct3D11 vs_5_0 ps_5_0, D3D11)
screen.colorDepth24

Detection-harness results

We run every Phantom build through an automated harness against the major detection sites. Current pass rate on a fresh burner (no warmup, US proxy):

DetectorVerdictNotes
antoinevastel.com/botsPASSFull clean — no headless signal
fingerprint.com BotD (open source)PASSbot: false with STEALTH_MODE
fingerprint.com Pro demoPASSSuspect Score 29 (≤30 = not flagged)
browserleaks.comPASSClean across UA, fonts, WebGL, audio
creepjs (abrahamjuliot)SUSPICIOUSTrust ~38% — improvement on persistent identities with warmup recipe
iphey.com BROWSERSUSPICIOUSMissing-API signals (navigator.share, contentIndex, contacts) — fix in next Phantom build

Trust Score reflects this signal: burner default ~870-890; persistent identities with warmup land in the 900-940 range. See trust_score docs.

Verify it yourself

Four ways to audit the fingerprint without taking our word for it:

  1. GET /v1/agents/{id}/fingerprint — the wire-level preview for any provisioned agent.
  2. GET /v1/agents/{id}/trust — the per-factor trust-score breakdown.
  3. GET /v1/agents/{id}/detection-signal — the most-recent detection-harness verdict for your identity's fingerprint shape (sites_tested + sites_passed + per-site verdicts). The empirical data behind the score number.
  4. Connect to the agent via CDP (c.connect(agent_id) in the SDK) and run any detection-site URL through it — we publish that we pass; you can confirm it.
from neout_agents import Client
c = Client(api_key="agt_live_...")

agent = c.create_agent(country="us", os_type="OS_TYPE_MACOS")
print(c.fingerprint(agent["id"]))  # full wire spec
print(c.trust_breakdown(agent["id"]))  # why the score is what it is
print(c.connect(agent["id"]))  # paste-ready Playwright snippet

Why we publish this

Anti-detect platforms that hide behind "Advanced stealth" marketing eventually lose to vendors that ship verifiable specs. We'd rather you find a gap and tell us than have a detection site find it and silently bucket your traffic. If a value on this page doesn't match what our burners emit, that's a P0 — email support@neout.com with your agent_id and we fix it.

Start free — 100 credits