Browser Sessions
Stealth & Anti-Detection
How Banata stealth mode makes your browser sessions appear as regular user browsers to bot detection systems.
When you create a browser session with stealth: true, the platform applies comprehensive anti-detection measures to make the browser appear as a regular user's browser. Stealth mode is available on Builder plans and above.
Enabling Stealth
Pass stealth: true when creating a session:
curl -X POST "https://api.boxes.banata.dev/v1/browsers" \
-H "Authorization: Bearer br_live_..." \
-H "Content-Type: application/json" \
-d '{"stealth": true}'Stealth is off by default. If you are on the Free plan and try to enable it, the API returns:
{
"error": "Stealth mode is not available on the Free plan. Upgrade to Builder or higher to enable anti-detection.",
"code": "PLAN_FEATURE_UNAVAILABLE",
"requiredPlan": "builder"
}What Gets Spoofed
Every stealth session generates a coherent, realistic browser fingerprint. All values within a single session are internally consistent — a macOS user agent gets macOS platform strings, Apple GPU renderers, and matching hardware values.
| Category | What's Covered |
|---|---|
| User Agent | navigator.userAgent, navigator.userAgentData (Client Hints) |
| Platform | navigator.platform, navigator.oscpu |
| Hardware | navigator.hardwareConcurrency, navigator.deviceMemory |
| Locale & Timezone | navigator.language, navigator.languages, Intl.DateTimeFormat timezone |
| WebGL | Vendor and renderer strings via WEBGL_debug_renderer_info |
| Chrome Object | window.chrome.runtime, window.chrome.loadTimes |
| Plugins | navigator.plugins array with realistic entries |
| Permissions | Notification.permission and related APIs |
| Screen | Resolution and color depth consistent with the user agent |
The fingerprint includes a matching viewport, which is included in the session response:
{
"fingerprint": {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ...",
"viewport": { "width": 1440, "height": 900 },
"locale": "en-US",
"timezone": "America/New_York"
}
}What's Detected and Evaded
Stealth mode specifically addresses these common bot detection vectors:
- WebDriver flag —
navigator.webdriveris properly hidden - Chrome runtime —
window.chromeobject is present and correctly structured - Headless indicators — All known headless Chrome artifacts are removed
- Plugin enumeration — Realistic plugin and MIME type arrays
- Permission API consistency — Permissions match what a real browser would report
- WebGL fingerprint — Renderer strings correspond to real GPU models
- User agent consistency — UA string matches across all APIs (navigator, HTTP headers, Client Hints)
- CDP artifacts — Protocol-level indicators are suppressed
- iframe behavior — Consistent behavior in cross-origin frames
- Font fingerprinting — Standard font list matches the spoofed platform
Detection Coverage
The stealth system passes 34 out of 34 checks in our validation suite, covering the most common detection techniques used by anti-bot services.
What this means in practice
Stealth mode handles the detection techniques used by the majority of websites and provides strong coverage against common anti-bot services.
That said, the most advanced detection systems combine browser fingerprinting with:
- Behavioral analysis (mouse movement patterns, typing cadence)
- Network reputation scoring
- Account-level risk signals
- JavaScript challenge telemetry
No browser-level spoofing can address all of these signals. For the best results with heavily protected sites, combine stealth sessions with:
- Realistic browsing patterns — Add appropriate delays between actions, scroll naturally, and avoid perfectly timed clicks.
- Residential proxies — Use the
rotating-residentialorstatic-residentialegress profiles (Scale plan) or bring your own residential proxy. - Profile persistence — Reuse browser profiles with established cookies and history using the
profileKeyoption.
Stealth and CDP Connection Timing
When stealth is enabled, all anti-detection measures are fully applied before your CDP commands are processed. If you connect to the cdpUrl immediately after the session reaches ready, your commands are queued and replayed once the browser is fully prepared.
This means you do not need to add any delays or checks — just connect and start working. Anti-detection is also automatically reapplied on every page navigation within the session.
When to Disable Stealth
Set stealth: false (or omit it, since it defaults to false) when:
- You are automating your own applications for testing
- You are scraping sites that do not use bot detection
- You want the fastest possible session startup time
Next Steps
- Browser Sessions — All session creation options
- Egress & Proxies — Combine stealth with proxy profiles for maximum coverage
- CDP Connection — Connecting to your stealth browser