Skip to main content
Extra Stealth is available on our Growth tier.Upgrade Now
Anchor Browser provides built-in stealth capabilities that help avoid detection by anti-bot systems and website fingerprinting. These features enable automated browsing that mimics human behavior and bypasses common detection mechanisms.

What is Extra Stealth Mode?

Extra Stealth Mode leverages a specialized Chrome browser environment that provides:
  • 🔒 Advanced Anti-Detection - Bypass sophisticated bot detection systems and CAPTCHAs
  • 🛡️ Automation Consistency - Maintain consistent access without getting blocked
  • 👤 Human-Like Behavior - Mimic real user patterns to avoid suspicion
Alternative Cloudflare-verified access to webpages is available through our Cloudflare Web Bot Auth Integration.

Quick start - Enable stealth features

1

Create a session with extra stealth enabled

Create a browser session with extra stealth features enabled using the SDK:
Extra stealth mode requires proxy configuration to be active. If proxy is disabled, extra stealth will be automatically disabled by the system.Read more about Proxy Configuration
import Anchorbrowser from "anchorbrowser";

const anchorClient = new Anchorbrowser()
const session = await anchorClient.sessions.create({
    browser: {
        extra_stealth: {
            active: true
        }
    },
    session: {
        proxy: {
            active: true
        }
    }
});

console.log(session);
2

Use the session for automated browsing

Once your stealth session is created, you can use it for automated browsing that bypasses common detection mechanisms:
import Anchorbrowser from "anchorbrowser";

const anchorClient = new Anchorbrowser()
 
// Create stealth session
const session = await anchorClient.sessions.create({
    browser: {
        extra_stealth: {
            active: true
        }
    },
    session: {
        proxy: {
            active: true
        }
    }
 })

// Use the session for automated tasks
const result = await anchorClient.agent.task(
    "Navigate to a website and check if I'm detected as a bot",
    {
        sessionId: session.data.id
    }
);

console.log(result);

Usage with Profiles

Use stealth mode with saved browser profiles for persistent authenticated sessions:
import Anchorbrowser from "anchorbrowser";

const anchorClient = new Anchorbrowser()
const session = await anchorClient.sessions.create({
    browser: {
        extra_stealth: {
            active: true
        },
        profile: {
            name: 'stealth-profile',
            persist: true   // Only on Profile Creation
        }
    },
    session: {
        proxy: {
            active: true
        }
    }
})
console.log(session)

Enabling Console Logs

When extra stealth mode is enabled, page.on('console') events are disabled by default to prevent detection. If you need to capture console output, you must explicitly enable it.
To receive console log events while using extra stealth, enable console_logs in your session configuration:
import Anchorbrowser from "anchorbrowser";

const anchorClient = new Anchorbrowser();

const session = await anchorClient.sessions.create({
  browser: {
    extra_stealth: { active: true },
    console_logs: { active: true }
  },
  session: {
    proxy: { active: true }
  }
});

// Connect to the browser
const browser = await anchorClient.browser.connect(session.data.id);
const context = browser.contexts()[0];
const page = context.pages()[0];

// Now page.on('console') will work
page.on('console', (msg) => {
  console.log(`[${msg.type()}] ${msg.text()}`);
});

await page.goto("https://example.com");

Catching Captcha Events

When using stealth mode with captcha solving enabled, you can listen to captcha lifecycle events via CDP (Chrome DevTools Protocol). This allows you to track when captchas are detected, solved, or failed.
import Anchorbrowser from "anchorbrowser";

const anchorClient = new Anchorbrowser();

// Create a session with extra stealth and captcha solving enabled
const session = await anchorClient.sessions.create({
  browser: {
    extra_stealth: { active: true },
    captcha_solver: { active: true }
  },
  session: {
    proxy: { active: true }
  }
});

// Connect to the browser
const browser = await anchorClient.browser.connect(session.data.id);
const context = browser.contexts()[0];
const page = context.pages()[0];

// Create CDP session and listen to captcha events
const client = await context.newCDPSession(page);

client.on('Captcha.lifecycle', (event) => {
  if (event.name === 'detected') {
    console.log(`${event.captchaType} captcha detected on ${event.url}`);
  }
  
  if (event.name === 'solved') {
    console.log(`Captcha solved in ${event.timeToSolve}ms`);
  }

  if (event.name === 'failed') {
    console.log(`Captcha failed: ${event.error}`);
  }
});

// Navigate to a page with captcha
await page.goto("https://example.com");

Event Types

Event NameDescriptionProperties
detectedFired when a captcha is detected on the pagecaptchaType, url
solvedFired when the captcha is successfully solvedtimeToSolve (in milliseconds)
failedFired when captcha solving failserror