What actually gets a profile flagged, how agents drive a real browser, and the detector runs behind our claims.
A profile directory holds cookies, storage and increasingly passkeys that cannot be re-issued if the directory is lost. Copying a raw Chromium user-data folder between machines usually fails quietly.
Public data collection and logged-in account work want opposite things from a proxy, a browser and a budget. Buying one tool for both usually means overpaying for one job and underserving the other.
Old headless Chrome gave itself away through a UA token, empty plugin arrays and zeroed window dimensions, and new headless mode closed most of that. What is left to detect is almost always the absence of a real GPU, not a flag.
Any page can make Chrome download gigabytes of on-device AI models, once per profile, through that profile's proxy. The two obvious switches either change what the page sees or keep the download and stop security updates, so the fix went into the engine.
Cloudflare scores IP reputation and TLS behaviour before your browser fingerprint is ever read, then layers a managed challenge and a behavioural score on top. Most blocks people blame on fingerprinting are actually decided one layer earlier.
Twenty client accounts opened from one browser share more than you think, and most of what links them is not the browser at all. A practical setup for agencies with legitimate access, plus the offboarding step everyone forgets.
puppeteer-extra-plugin-stealth rewrites the JS properties a stock Chromium exposes, one evasion module per property. It has nothing to say about identity across runs, proxy-bound timezone, or passkeys. Here is where that boundary actually sits.
WebRTC gathers ICE candidates over UDP, outside the HTTP or SOCKS proxy path, so a site can read your real public IP with two lines of JavaScript regardless of what the address bar shows. Disabling WebRTC outright trades one tell for another.
The TLS handshake and HTTP/2 frame order reveal what software made a request, regardless of the User-Agent header. JA3 and JA4 hash that order, which is why a copied Chrome header over a Python handshake fails before content loads.
A page draws text to a hidden canvas, reads the pixels back and hashes them. The result is stable on one machine and different across machines, which is exactly what makes it useful for tracking and hard to fake convincingly.
Selling a warmed-up browser environment used to mean exporting a file and hoping the buyer paid afterwards. Ownership transfer makes it one atomic handover instead - and the buyer no longer needs a subscription first. Here is what the one-time 30-day handover window carries, what it deliberately withholds, and what happens on day 31.
Handing a browser environment to someone else comes down to three choices - export a file, share a link, or transfer ownership - and each one trades a different amount of control for convenience. Here's exactly what you keep, what you give up, and what revoking can and can't undo.
Named, sourced, and dated. Where a vendor's price is not on their own page, we say so instead of quoting a number.
// Every competitor figure on those pages carries its source and the date we captured it. Where we could not source a number, it is missing rather than estimated.