Stealth Routes
BrowserQL's stealth routes provide advanced anti-detection capabilities specifically optimized for GraphQL-based browser automation. These routes combine BrowserQL's powerful automation features with comprehensive browser fingerprint mitigations and entropy injection for maximum effectiveness against bot detection systems.
Available Stealth Routes
-
Stealth Route (Recommended) -
/stealth/bql
Our recommended stealth route for BrowserQL users. This managed stealth environment provides advanced anti-detection and realistic fingerprinting with comprehensive browser fingerprint mitigations and entropy injection for maximum effectiveness against bot detection systems. -
Chromium Stealth -
/chromium/stealth/bql
Optimized for Chromium, this route applies a comprehensive set of fingerprinting mitigations and entropy injection tailored to Chromium. It modifies browser APIs with subtle, realistic values to closely emulate a real browser and reduce detectability. Chromium's flexibility allows this route to be better tailored for stealthiness. -
Chrome Stealth -
/chrome/stealth/bql
Designed for the standard Chrome experience, this route delivers anti-detection protections adjusted to preserve Chrome's native behaviors, while also providing enhanced resistance to bot-detection systems. Chrome includes additional codecs for multimedia rendering, making it appear more human-like in certain scenarios.
All routes work seamlessly with BrowserQL's GraphQL API and incorporate advanced stealth mechanisms including WebGL, Canvas, and WebRTC spoofing. We minimize web-compatibility issues as much as possible, though certain automation tasks that depend on spoofed technologies could theoretically see unexpected results.
Using Stealth Routes
To use stealth routes with BrowserQL, simply specify the stealth endpoint in your API calls:
REST API
# Stealth (Recommended)
curl -X POST \
https://production-sfo.browserless.io/stealth/bql?token=YOUR_API_TOKEN_HERE \
-H 'Content-Type: application/json' \
-d '{
"query": "query { goto(url: \"https://example.com\") { status } }"
}'
# Chromium Stealth
curl -X POST \
https://production-sfo.browserless.io/chromium/stealth/bql?token=YOUR_API_TOKEN_HERE \
-H 'Content-Type: application/json' \
-d '{
"query": "query { goto(url: \"https://example.com\") { status } }"
}'
# Chrome Stealth
curl -X POST \
https://production-sfo.browserless.io/chrome/stealth/bql?token=YOUR_API_TOKEN_HERE \
-H 'Content-Type: application/json' \
-d '{
"query": "query { goto(url: \"https://example.com\") { status } }"
}'
JavaScript/TypeScript
const STEALTH_ENDPOINT = 'https://production-sfo.browserless.io/stealth/bql?token=YOUR_API_TOKEN_HERE';
// Using Stealth (Recommended)
const response = await fetch(STEALTH_ENDPOINT, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: `
query {
goto(url: "https://example.com") {
status
}
html
}
`
})
});
const data = await response.json();
console.log(data);
Python
import requests
STEALTH_ENDPOINT = "https://production-sfo.browserless.io/stealth/bql?token=YOUR_API_TOKEN_HERE"
# Using Stealth (Recommended)
query = """
query {
goto(url: "https://example.com") {
status
}
html
}
"""
response = requests.post(
STEALTH_ENDPOINT,
json={"query": query},
headers={"Content-Type": "application/json"}
)
data = response.json()
print(data)
Combining with Other Features
Stealth routes work seamlessly with BrowserQL's other bot detection features:
With Residential Proxies
Combine stealth routes with residential proxies for maximum effectiveness:
const query = `
query {
goto(url: "https://example.com", options: {
proxy: {
type: residential,
country: "us"
}
}) {
status
}
html
}
`;
const response = await fetch(
'https://production-sfo.browserless.io/stealth/bql?token=YOUR_API_TOKEN_HERE',
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query })
}
);
With CAPTCHA Solving
Stealth routes automatically work with BrowserQL's built-in CAPTCHA solving:
const query = `
query {
goto(url: "https://example.com") {
status
}
solveCaptcha {
success
message
}
html
}
`;
const response = await fetch(
'https://production-sfo.browserless.io/stealth/bql?token=YOUR_API_TOKEN_HERE',
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query })
}
);
With Human-like Behavior
Enable human-like mouse movements and typing patterns:
const query = `
query {
goto(url: "https://example.com") {
status
}
type(selector: "#search", text: "example query", options: {
humanLike: true
})
click(selector: "#submit", options: {
humanLike: true
})
html
}
`;
const response = await fetch(
'https://production-sfo.browserless.io/stealth/bql?token=YOUR_API_TOKEN_HERE',
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query })
}
);
Additional Bot Detection Strategies
To further enhance your ability to bypass bot detection with BrowserQL:
- Use Residential Proxies: Many sites monitor IP addresses and may block data-center IPs or enforce rate limits. BrowserQL supports built-in residential proxies with country selection and proxy reuse options. For setup details, see our Proxies documentation.
- Enable Human-like Behavior: Configure mouse movements and typing patterns to appear more natural and human-like.
- Block Ads: Using ad-blocking can make your sessions appear more like real users, as most humans use ad blockers.
- Advanced Techniques: If standard stealth features aren't enough, contact us at support@browserless.io. We can assist with advanced solutions and specialized infrastructure available on our enterprise plans.
Next Steps
Ready to implement stealth routes in your BrowserQL automation? Explore these key areas:
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.