👉 NEW: Automatic performance & error tracing on every browser check. Learn more

Whitelisting & filtering traffic

Whitelisting Checkly traffic in your firewall or load balancer by IP address is not possible at this moment as Checkly uses a non-static set of IP addresses in the cloud to run its checks.

You can however fetch a list of the dynamic IP addresses in use at AWS, our cloud provider.

Filtering Google Analytics

If you want to filter Checkly traffic in Google Analytics because Checkly browser checks are skewing your numbers, here is one way how to do it:

  1. Add a UTM source tag to the URL’s your requesting, i.e.
await page.goto('https://app.checklyhq.com/login?utm_source=monitoring')
await page.goto('https://app.checklyhq.com/login?utm_source=monitoring')
  1. In Google Analytics, filter on campaign source.

filter google analytics traffic on campaign source

For detailed instructions, see the Google Analytics docs on custom filters.

Note, it will take some hours for this to take effect.

Cloudflare Whitelisting

If you are using Cloudflare, one or more of your automated checks might trigger its bot detection mechanism.

If you want to prevent that from happening, without exposing your website to any and all automated traffic, you might want to set up a new firewall rule allowing traffic from Checkly as long as it contains a specific header or sets a certain user agent.

You can make the header and/or user agent specific to your own Checkly user account by grabbing the first eight digits of your unique user ID, which you can find below your account name on the Account Settings page. Embedding this value in your checks will enable them to be allowed through by your firewall rules.

Whitelisting API checks

To whitelist API checks, allow traffic that contains a cookie in the shape of Cookie: "checkly-account:<UUID>", with <UUID> being your shortened Checkly ID.

You can then set the Cookie header while editing your check.

Whitelisting browser checks

To whitelist browser checks, allow traffic with user agent containing Checkly/<UUID>, with <UUID> being your shortened Checkly ID.

You will then be able to set up the matching user agent in your browser checks using Puppeteer’s setUserAgent method, or the {userAgent} option passed to Playwright’s newPage method.

const puppeteer = require('puppeteer')
const browser = await puppeteer.launch()
const page = await browser.newPage()

const userAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 Checkly/abcd1234'
await page.setUserAgent(userAgent);
const playwright = require('playwright')
const browser = await playwright.chromium.launch()

const userAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 Checkly/abcd1234'
const page = await browser.newPage({userAgent})

Default Checkly user agent

This is what Checkly sends as user-agent:

  • API checks: Checkly/1.0 (https://www.checklyhq.com).
  • Browser checks: Checkly, https://www.checklyhq.com.

Changing the user agent of a check will not change the browser or browser version, it will simply set a new string for user-agent.