Learn more about Check Groups in the Groups overview.
CheckGroup is deprecated. Please use CheckGroupV2 instead. See CheckGroupV2 documentation for details.
Use CheckGroup to organize your checks into logical groups. This provides better organization, shared configuration, and group-level controls for your monitoring setup.
import { ApiCheck, CheckGroup, Frequency } from "checkly/constructs"

const group = new CheckGroup("api-group-1", {
  name: "API Endpoints Group",
  activated: true,
  muted: false,
  frequency: Frequency.EVERY_15M,
  locations: ["us-east-1", "eu-west-1"],
  tags: ["api-group"],
})

new ApiCheck("api-check-1", {
  name: "API check #1",
  group,
  request: {
    method: "GET",
    url: "https://api.example.com/health",
  },
})

Configuration

ParameterTypeRequiredDefaultDescription
namestring-Friendly name for your check group
activatedbooleantrueWhether checks in the group are running
apiCheckDefaultsobject-Default settings for API checks in the group
alertEscalationPolicyAlertEscalationPolicy-Advanced alert escalation settings
alertChannelsAlertChannel[][]Alert channels for all checks in the group
environmentVariablesobject[][]Group-level environment variables
concurrencynumber10Number of concurrent Checks to run when a group is triggered
frequencyFrequency-How often to run checks within the group
localSetupScript (deprecated)string-Code to run before each check/monitor in this group
localTearDownScript (deprecated)string-Code to run after each check/monitor in this group
locationsstring[]-Public locations for all checks in the group
mutedbooleanfalseWhether alert notifications are muted
privateLocationsstring[]-Private Location slugs
retryStrategyRetryStrategy-Strategy for configured retries
runtimeIdstring-Runtime ID for all checks in the group
runParallelboolean-Whether to run checks in parallel across locations
tagsstring[][]Tags to organize all checks in the group
browserChecksobject-Settings for Browser Checks in the group
multistepChecksobject-Settings for Multistep Checks in the group

Group Options

name
string
required
Friendly name for your check group that will be displayed in the Checkly dashboard and used for organization.Usage:
const group = new CheckGroup("api-monitoring-group", {
  name: "API Monitoring Group",
})
Use cases: Group organization, dashboard display, team coordination.
activated
boolean
default:"true"
Whether checks in the group are running. When false, all checks in the group are paused.Usage:
const group = new CheckGroup("api-monitoring-group", {
  name: "API Monitoring Group",
  activated: false,
})
Use cases: Environment-specific checks, maintenance windows, temporary disabling.
muted
boolean
default:"false"
Whether to mute alerts for all checks in the group. Checks will still run but won’t send notifications.Usage:
const group = new CheckGroup("api-monitoring-group", {
  name: "API Monitoring Group",
  muted: true, // Silence all alerts
})
Use cases: Non-production environments, testing phases, scheduled maintenance.
frequency
Frequency
How often to run checks within the group. This frequency applies to all checks in the group unless overridden at the check level.Usage:
import { Frequency } from 'checkly/constructs'

const group = new CheckGroup("api-monitoring-group", {
  name: "API Monitoring Group",
  frequency: Frequency.EVERY_10M,
})
Available frequencies: EVERY_10S, EVERY_20S, EVERY_30S, EVERY_1M, EVERY_2M, EVERY_5M, EVERY_10M, EVERY_15M, EVERY_30M, EVERY_1H, EVERY_2H, EVERY_6H, EVERY_12H, EVERY_24H
Generally, Check Groups support all available frequencies, but if a group includes a check type that doesn’t support high frequencies, npx checkly deploy will fail. We recommend separating high-frequency ones into their own groups.
locations
string[]
default:"[]"
Public locations for all checks in the group. Checks inherit these locations unless they specify their own.Usage:
const group = new CheckGroup("api-monitoring-group", {
  name: "API Monitoring Group",
  locations: ["us-east-1", "eu-west-1", "ap-southeast-1"],
})
Use cases: Global monitoring, regional service coverage, user experience testing.
browserChecks
object
Setting to automatically create and apply Browser Checks to a group.Usage:
const group = new CheckGroup("api-monitoring-group", {
  name: "API Monitoring Group",
  browserChecks: {
    testMatch: "./*.spec.ts",
  },
})
Use cases: Automated test discovery, E2E test organization, user flow monitoring.
multiStepChecks
object
Setting to automatically create and apply MultiStep Checks to a group.Usage:
const group = new CheckGroup("api-multistep-group", {
  name: "API Multistep Monitoring Group",
  multiStepChecks: {
    testMatch: "./*.multi-step.spec.ts",
  },
})
Use cases: Automated test discovery, E2E test organization, user flow monitoring.

Examples

const apiGroup = new CheckGroup("api-monitoring-group", {
  name: "API Monitoring",
  activated: true,
  frequency: Frequency.EVERY_5M,
  locations: ["us-east-1", "eu-west-1"],
  tags: ["api", "production"],
  environmentVariables: [
    { key: "API_BASE_URL", value: "https://api.example.com" },
    { key: "API_VERSION", value: "v2" },
  ],
  alertChannels: [slackChannel],
})

new ApiCheck("users-api", {
  name: "Users API",
  group: apiGroup,
  request: {
    method: "GET",
    url: "{{API_BASE_URL}}/{{API_VERSION}}/users",
  },
})

new ApiCheck("orders-api", {
  name: "Orders API",
  group: apiGroup,
  request: {
    method: "GET",
    url: "{{API_BASE_URL}}/{{API_VERSION}}/orders",
  },
})