Stealth Routes
Our stealth routes provide advanced anti-detection capabilities that go beyond traditional approaches. These routes use a path-based semantic and work with libraries that support the Chrome Devtools Protocol, offering more comprehensive stealth behaviors than standard solutions like puppeteer-stealth. The stealth features are available at the /chromium/stealth
and /chrome/stealth
endpoints.
Stealth routes are designed to work seamlessly today, but as we add deeper protections, features like WebGL, Canvas, or WebRTC may sometimes behave differently. This means certain automation tasks that depend on those technologies could see unexpected results. To give you flexibility, these advanced stealth options will be offered as toggleable settings so you can choose the right balance of stability and protection.
- Puppeteer
- Playwright
// Chromium:
await puppeteer.connect({
browserWSEndpoint:
"wss://production-sfo.browserless.io/chromium/stealth?token=YOUR_API_TOKEN_HERE",
});
// Chrome:
await puppeteer.connect({
browserWSEndpoint:
"wss://production-sfo.browserless.io/chrome/stealth?token=YOUR_API_TOKEN_HERE",
});
- Javascript
- Python
- Java
- C#
// Chromium
const chromiumBrowser = await playwright.chromium.connectOverCDP(
"wss://production-sfo.browserless.io/chromium/stealth?token=YOUR_API_TOKEN_HERE"
);
// Chrome
const chromeBrowser = await playwright.chromium.connectOverCDP(
"wss://production-sfo.browserless.io/chrome/stealth?token=YOUR_API_TOKEN_HERE"
);
import asyncio
from playwright.async_api import async_playwright
CHROMIUM_URL = "wss://production-sfo.browserless.io/chromium/stealth?token=YOUR_API_TOKEN_HERE"
CHROME_URL = "wss://production-sfo.browserless.io/chrome/stealth?token=YOUR_API_TOKEN_HERE"
async def main():
async with async_playwright() as p:
# Chromium
chromium_browser = await p.chromium.connect_over_cdp(CHROMIUM_URL)
# Chrome
chrome_browser = await p.chromium.connect_over_cdp(CHROME_URL)
asyncio.run(main())
import com.microsoft.playwright.*;
public class PlaywrightConnectExample {
public static void main(String[] args) {
String CHROMIUM_URL = "wss://production-sfo.browserless.io/chromium/stealth?token=YOUR_API_TOKEN_HERE";
String CHROME_URL = "wss://production-sfo.browserless.io/chrome/stealth?token=YOUR_API_TOKEN_HERE";
try (Playwright playwright = Playwright.create()) {
// Chromium
Browser chromiumBrowser = playwright.chromium().connectOverCDP(CHROMIUM_URL);
// Chrome
Browser chromeBrowser = playwright.chromium().connectOverCDP(CHROME_URL);
}
}
}
using System;
using System.Threading.Tasks;
using Microsoft.Playwright;
class Program
{
static async Task Main(string[] args)
{
string chromiumUrl = "wss://production-sfo.browserless.io/chromium/stealth?token=YOUR_API_TOKEN_HERE";
string chromeUrl = "wss://production-sfo.browserless.io/chrome/stealth?token=YOUR_API_TOKEN_HERE";
var playwright = await Playwright.CreateAsync();
// Chromium
var chromiumBrowser = await playwright.Chromium.ConnectOverCDPAsync(chromiumUrl);
// Chrome
var chromeBrowser = await playwright.Chromium.ConnectOverCDPAsync(chromeUrl);
}
}
These routes incorporate many of the anti-detection mechanisms below, which you're free to try as well.
Additional Bot Detection Strategies
To further enhance your ability to bypass bot detection, consider the following approaches:
- Use Proxies: Many sites monitor IP addresses and may block data-center IPs or enforce rate limits. Browserless supports both built-in residential proxies and third-party proxies to help you avoid these restrictions. For setup details, see our Proxies documentation.
- Advanced Techniques: If proxies and standard stealth features aren't enough, contact us at support@browserless.io. We can assist with advanced solutions such as captcha solving, BQL methods, and specialized infrastructure available on our enterprise plans.
If you need more help or want to discuss your specific use case, don't hesitate to reach out. We're here to help you succeed with even the toughest bot detection challenges.