Skip to main content

Bypassing Bot Detectors

If you're automating a UI, you're probably coming up against bot detectors and CAPTCHAs. BrowserQL hides most fingerprints, but there are still some settings to be aware of.

Built-In Proxies

Use the proxy mutation to connect through the Browserless residential proxy to avoid IP-based detection mechanisms.

The example below shows how to use the proxy mutation with browserless's proxy for all requests and proxy through Brazil:

mutation residential_proxy_example{
proxy(
url: "*"
country: BR
) {
time
}
}
Proxy Mutation

You can see detailed information on the proxy mutation here.

External Proxies

You can use the proxy mutation to connect your own proxies. This mutation can proxy requests by a specified set of conditions, through your external proxy. Only requests that match these conditions are proxies and the rest are sent from the instance's own IP address.

To use your own proxy for all requests, you will use the following query:

mutation external_proxy_example{
proxy(
url: "*"
server: "http://username:password@my-proxy.com:12321"
) {
time
}
}

Where the server parameter takes the following format:

${protocol}://${username}:${password}@${host}:${port}

For example, if you have:

  • Username: john
  • Password: 1337code
  • URL: myproxy.com
  • Port: 1234

The server argument would look like:

http://john:1337@myproxy.com:1234

If you don't have a username or password, you can simply omit those fields in the URI.

Chrome/Chromium Browsers

You can run Chrome or Chromium browsers, which you can change in the session settings. Chrome is more resource-intensive but recommended for getting past CAPTCHAs.

Humanized Interactions

BrowserQL can humanize your page interactions. When humanized is selected in the session settings, it will:

  • Wait until the previous action's finished.
  • Scroll if needed until the field is visible.
  • Mouse over to somewhere within the form field.
  • Click into the field.
  • Type at a realistic speed.
  • Make and correct typos.