---
title: "Update a check group (V2)"
method: PUT
path: "/v2/check-groups/{id}"
tags: ["Check groups"]
---

# Update a check group (V2)

`PUT /v2/check-groups/{id}`

Updates a check group.

## Path parameters

- `id` integer, required

## Query parameters

- `autoAssignAlerts` boolean — Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.

## Headers

- `x-checkly-account` string — Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general

## Request body

- CheckGroupCreateOrUpdateV2
  - `name` string, required — The name of the check group.
  - `activated` boolean — Determines if the checks in the group are running or not.
  - `muted` boolean — Determines if any notifications will be send out when a check in this group fails and/or recovers.
  - `tags` string[] — Tags for organizing and filtering checks.
  - `locations` Model305[] — An array of one or more data center locations where to run the checks.
  - `concurrency` number — Determines how many checks are invoked concurrently when triggering a check group from CI/CD or through the API.
  - `apiCheckDefaults` CheckGroupCreateAPICheckDefaults
    - `url` string, nullable — The base url for this group which you can reference with the {{GROUP_BASE_URL}} variable in all group checks.
    - `headers` KeyValue[]
      - `key` string, required
      - `value` string, required
      - `locked` boolean
    - `queryParameters` KeyValue[]
      - `key` string, required
      - `value` string, required
      - `locked` boolean
    - `assertions` Assertion[] — Check the main Checkly documentation on assertions for specific values like regular expressions and JSON path descriptors you can use in the "property" field.
      - `source` 'STATUS_CODE' | 'JSON_BODY' | 'HEADERS' | 'TEXT_BODY' | 'RESPONSE_TIME'
      - `comparison` 'EQUALS' | 'NOT_EQUALS' | 'HAS_KEY' | 'NOT_HAS_KEY' | 'HAS_VALUE' | 'NOT_HAS_VALUE' | 'IS_EMPTY' | 'NOT_EMPTY' | 'GREATER_THAN' | 'LESS_THAN' | 'CONTAINS' | 'NOT_CONTAINS' | 'IS_NULL' | 'NOT_NULL'
      - `property` string
      - `target` string
      - `regex` string, nullable
    - `basicAuth` BasicAuth, nullable
      - `username` string, required
      - `password` string, required
  - `browserCheckDefaults` string
  - `runtimeId` '2026.04' | '2025.04' | '2024.09' | '2024.02' | '2023.09' | '2023.02' | '2022.10', nullable — The runtime version, i.e. fixed set of runtime dependencies, used to execute checks in this group.
  - `environmentVariables` EnvironmentVariableUpdate[], nullable
    - `key` string — The key of the environment variable (this value cannot be changed).
    - `value` string, required — The value of the environment variable.
    - `locked` boolean — Used only in the UI to hide the value like a password.
    - `secret` boolean — Set an environment variable as secret. Once set, its value cannot be unlocked.
  - `alertChannelSubscriptions` Model42[] — List of alert channel subscriptions.
    - `alertChannelId` number, required
    - `activated` boolean, required
  - `setupSnippetId` number, nullable — An ID reference to a snippet to use in the setup phase of an API check in this group.
  - `tearDownSnippetId` number, nullable — An ID reference to a snippet to use in the teardown phase of an API check in this group.
  - `localSetupScript` string, nullable — A valid piece of Node.js code to run in the setup phase of an API check in this group.
  - `localTearDownScript` string, nullable — A valid piece of Node.js code to run in the teardown phase of an API check in this group.
  - `privateLocations` string[], nullable — An array of one or more private locations where to run the checks.
  - `runParallel` boolean, nullable — When true, the checks in the group will run in parallel in all selected locations.
  - `alertSettings` InternalAlertSettingsCreate, nullable
    - `escalationType` 'RUN_BASED' | 'TIME_BASED' — Determines what type of escalation to use
    - `runBasedEscalation` Model310
      - `failedRunThreshold` 1 | 2 | 3 | 4 | 5 — After how many failed consecutive check runs an alert notification should be send
    - `timeBasedEscalation` Model311
      - `minutesFailingThreshold` 5 | 10 | 15 | 30 — After how many minutes after a check starts failing an alert should be send
    - `reminders` Model312
      - `amount` 0 | 1 | 2 | 3 | 4 | 5 | 100000 — How many reminders to send out after the initial alert notification
      - `interval` 1 | 2 | 3 | 4 | 5 | 10 | 15 | 30 — At what interval the reminders should be send
    - `parallelRunFailureThreshold` AlertSettingsParallelRunFailureThreshold
      - `enabled` boolean — Determines if parallel run threshold is enabled
      - `percentage` 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 — The percentage of parallel runs that should fail before an alert is triggered
  - `retryStrategy` union — Either a retry strategy object or the literal string "FALLBACK".
    - RetryStrategy, nullable — The strategy to determine how failed checks are retried.
      - `type` 'FIXED' | 'LINEAR' | 'EXPONENTIAL' | 'SINGLE_RETRY', required — Determines which type of retry strategy to use.
      - `baseBackoffSeconds` number — The number of seconds to wait before the first retry attempt.
      - `sameRegion` boolean — Whether retries should be run in the same region as the initial check run.
      - `maxRetries` number — The maximum number of attempts to retry the check. Not supported for SINGLE_RETRY
      - `maxDurationSeconds` number — The total amount of time to continue retrying the check. Not supported for SINGLE_RETRY
      - `onlyOn` RetryOnlyOnValue[]
    - 'FALLBACK'
  - `useGlobalAlertSettings` boolean, nullable — When true, the checks in the group will use the alert settings that are configured on the account
  - `doubleCheck` boolean

## Response `200`

Successful

- CheckGroup
  - `id` number
  - `name` string, required — The name of the check group.
  - `activated` boolean, required — Determines if the checks in the group are running or not.
  - `muted` boolean — Determines if any notifications will be send out when a check in this group fails and/or recovers.
  - `tags` string[] — Tags for organizing and filtering checks.
  - `locations` Model41[] — An array of one or more data center locations where to run the checks.
  - `concurrency` number, required — Determines how many checks are invoked concurrently when triggering a check group from CI/CD or through the API.
  - `apiCheckDefaults` CheckGroupAPICheckDefaults, required
    - `url` string, nullable — The base url for this group which you can reference with the {{GROUP_BASE_URL}} variable in all group checks.
    - `headers` KeyValue[]
      - `key` string, required
      - `value` string, required
      - `locked` boolean
    - `queryParameters` KeyValue[]
      - `key` string, required
      - `value` string, required
      - `locked` boolean
    - `assertions` Assertion[] — Check the main Checkly documentation on assertions for specific values like regular expressions and JSON path descriptors you can use in the "property" field.
      - `source` 'STATUS_CODE' | 'JSON_BODY' | 'HEADERS' | 'TEXT_BODY' | 'RESPONSE_TIME'
      - `comparison` 'EQUALS' | 'NOT_EQUALS' | 'HAS_KEY' | 'NOT_HAS_KEY' | 'HAS_VALUE' | 'NOT_HAS_VALUE' | 'IS_EMPTY' | 'NOT_EMPTY' | 'GREATER_THAN' | 'LESS_THAN' | 'CONTAINS' | 'NOT_CONTAINS' | 'IS_NULL' | 'NOT_NULL'
      - `property` string
      - `target` string
      - `regex` string, nullable
    - `basicAuth` BasicAuth, nullable
      - `username` string, required
      - `password` string, required
  - `browserCheckDefaults` string
  - `environmentVariables` EnvironmentVariableGet[], nullable
    - `key` string, required — The key of the environment variable (this value cannot be changed).
    - `value` string, required
    - `locked` boolean — Used only in the UI to hide the value like a password.
    - `secret` boolean — Set an environment variable as secret. Once set, its value cannot be unlocked.
  - `doubleCheck` boolean — [Deprecated] Retry failed check runs. This property is deprecated, and `retryStrategy` can be used instead.
  - `useGlobalAlertSettings` boolean, nullable — When true, the account level alert setting will be used, not the alert setting defined on this check group.
  - `alertSettings` CheckGroupAlertSettings — Alert settings.
    - `escalationType` 'RUN_BASED' | 'TIME_BASED' — Determines what type of escalation to use.
    - `reminders` AlertSettingsReminders
      - `amount` 0 | 1 | 2 | 3 | 4 | 5 | 100000 — How many reminders to send out after the initial alert notification.
      - `interval` 1 | 2 | 3 | 4 | 5 | 10 | 15 | 30 — At what interval the reminders should be send.
    - `sslCertificates` AlertSettingsSSLCertificates — [DEPRECATED] `sslCertificates` is deprecated and is not longer used. Please ignore it, will be removed in a future version.
      - `enabled` boolean — Determines if alert notifications should be send for expiring SSL certificates.
      - `alertThreshold` integer — At what moment in time to start alerting on SSL certificates.
    - `runBasedEscalation` AlertSettingsRunBasedEscalation
      - `failedRunThreshold` 1 | 2 | 3 | 4 | 5 — After how many failed consecutive check runs an alert notification should be send.
    - `timeBasedEscalation` AlertSettingsTimeBasedEscalation
      - `minutesFailingThreshold` 5 | 10 | 15 | 30 — After how many minutes after a check starts failing an alert should be send.
    - `parallelRunFailureThreshold` ParallelRunFailureThreshold
      - `enabled` boolean — Determines if parallel run threshold is enabled
      - `percentage` 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 — The percentage of parallel runs that should fail before an alert is triggered
  - `alertChannelSubscriptions` Model42[] — List of alert channel subscriptions.
    - `alertChannelId` number, required
    - `activated` boolean, required
  - `setupSnippetId` number, nullable — An ID reference to a snippet to use in the setup phase of an API check in this group.
  - `tearDownSnippetId` number, nullable — An ID reference to a snippet to use in the teardown phase of an API check in this group.
  - `localSetupScript` string, nullable — A valid piece of Node.js code to run in the setup phase of an API check in this group.
  - `localTearDownScript` string, nullable — A valid piece of Node.js code to run in the teardown phase of an API check in this group.
  - `runtimeId` '2026.04' | '2025.04' | '2024.09' | '2024.02' | '2023.09' | '2023.02' | '2022.10', nullable — The runtime version, i.e. fixed set of runtime dependencies, used to execute checks in this group.
  - `privateLocations` string[], nullable — An array of one or more private locations where to run the check.
  - `retryStrategy` union — Either a retry strategy object or the literal string "FALLBACK".
    - RetryStrategy, nullable — The strategy to determine how failed checks are retried.
      - `type` 'FIXED' | 'LINEAR' | 'EXPONENTIAL' | 'SINGLE_RETRY', required — Determines which type of retry strategy to use.
      - `baseBackoffSeconds` number — The number of seconds to wait before the first retry attempt.
      - `sameRegion` boolean — Whether retries should be run in the same region as the initial check run.
      - `maxRetries` number — The maximum number of attempts to retry the check. Not supported for SINGLE_RETRY
      - `maxDurationSeconds` number — The total amount of time to continue retrying the check. Not supported for SINGLE_RETRY
      - `onlyOn` RetryOnlyOnValue[]
    - 'FALLBACK'
  - `created_at` string, date
  - `updated_at` string, date-time, nullable
  - `runParallel` boolean, nullable — When true, the checks in the group will run in parallel in all selected locations.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `429` — Too Many Requests

---

[API](https://skmtc.net/checklyhq/apis/checkly-public-api.md) · [All operations](https://skmtc.net/checklyhq/apis/checkly-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/checklyhq/checkly-public-api/versions/9e903da4f3da/schema)
