Checkly Check Groups API
The Check Groups API from Checkly — 11 operation(s) for check groups.
The Check Groups API from Checkly — 11 operation(s) for check groups.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/checkly-check-groups-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Checkly Public Check groups API
version: v1
description: These are the docs for the newly released Checkly Public API.<br />If you have any questions, please do not hesitate to get in touch with us.
servers:
- url: https://api.checklyhq.com
security:
- Bearer: []
tags:
- name: Check groups
paths:
/v1/check-groups:
get:
summary: List all check groups
operationId: getV1Checkgroups
description: Lists all current check groups in your account. The "checks" property is an array of check UUID's for convenient referencing. It is read only and you cannot use it to add checks to a group.
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: limit
in: query
schema:
type: integer
description: Limit the number of results
default: 10
minimum: 1
maximum: 100
description: Limit the number of results
- name: page
in: query
schema:
type: number
description: Page number
default: 1
x-constraint:
sign: positive
description: Page number
- name: tag
in: query
schema:
type: array
description: Filters check groups by tags. Returns check groups that have at least one of the specified tags.
x-constraint:
single: true
items:
type: string
description: Filters check groups by tags. Returns check groups that have at least one of the specified tags.
style: form
explode: true
- name: name
in: query
schema:
type: array
description: Filters check groups by exact name match. Accepts one or more names and returns groups that match any of the specified names.
x-constraint:
single: true
items:
type: string
description: Filters check groups by exact name match. Accepts one or more names and returns groups that match any of the specified names.
style: form
explode: true
tags:
- Check groups
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroupList'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
post:
summary: Create a check group
operationId: postV1Checkgroups
description: Creates a new check group. You can add checks to the group by setting the "groupId" property of individual checks.
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: autoAssignAlerts
in: query
schema:
type: boolean
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
tags:
- Check groups
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroupCreate'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroup'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'402':
description: Payment Required
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequiredError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
deprecated: true
/v1/check-groups/{groupId}/checks/{checkId}:
get:
summary: Retrieve one check in a specific group with group settings applied
operationId: getV1CheckgroupsGroupidChecksCheckid
description: Show details of one check in a specific check group with the group settings applied.
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: groupId
in: path
schema:
type: integer
x-constraint:
sign: positive
required: true
- name: checkId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Check groups
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroupCheck'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
/v1/check-groups/{id}:
delete:
summary: Delete a check group.
operationId: deleteV1CheckgroupsId
description: Permanently removes a check group. You cannot delete a check group if it still contains checks.
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: id
in: path
schema:
type: integer
x-constraint:
sign: positive
required: true
tags:
- Check groups
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
get:
summary: Retrieve a check group
operationId: getV1CheckgroupsId
description: Show details of a specific check group
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: id
in: path
schema:
type: integer
x-constraint:
sign: positive
required: true
tags:
- Check groups
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroupRead'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
put:
summary: Update a check group
operationId: putV1CheckgroupsId
description: Updates a check group.
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: id
in: path
schema:
type: integer
x-constraint:
sign: positive
required: true
- name: autoAssignAlerts
in: query
schema:
type: boolean
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
tags:
- Check groups
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroupUpdate'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroup'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
deprecated: true
/v1/check-groups/{id}/checks:
get:
summary: Retrieve all checks in a specific group with group settings applied
operationId: getV1CheckgroupsIdChecks
description: Lists all checks in a specific check group with the group settings applied.
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: id
in: path
schema:
type: integer
x-constraint:
sign: positive
required: true
- name: limit
in: query
schema:
type: integer
description: Limit the number of results
default: 10
minimum: 1
maximum: 100
description: Limit the number of results
- name: page
in: query
schema:
type: number
description: Page number
default: 1
x-constraint:
sign: positive
description: Page number
tags:
- Check groups
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Model22'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
/v2/check-groups:
post:
summary: Create a check group (V2)
operationId: postV2Checkgroups
description: Creates a new check group. You can add checks to the group by setting the "groupId" property of individual checks.
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: autoAssignAlerts
in: query
schema:
type: boolean
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
tags:
- Check groups
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroupCreateOrUpdateV2'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroup'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'402':
description: Payment Required
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequiredError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
/v2/check-groups/{groupId}/checks/{checkId}:
get:
summary: Retrieve one check in a specific group with group settings applied (V2)
operationId: getV2CheckgroupsGroupidChecksCheckid
description: 'Show details of one check in a specific check group with the group settings applied.
Unlike `/v1`, this endpoint does not return the flat `project`, `logicalId`, `member` and `pending` fields. A check can be managed by more than one project and each of those fields can name only one of them; `projectBindings` reports every binding, and is identical on `/v1` and `/v2`.
Versioning is per endpoint. Only endpoints whose response or payload changed have a `/v2`; everything else remains on `/v1` and is unaffected. In particular the check groups themselves, and creating, updating and deleting checks, are unchanged and stay on `/v1`.'
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: groupId
in: path
schema:
type: integer
x-constraint:
sign: positive
required: true
- name: checkId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Check groups
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroupCheckV2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
/v2/check-groups/{id}:
put:
summary: Update a check group (V2)
operationId: putV2CheckgroupsId
description: Updates a check group.
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: id
in: path
schema:
type: integer
x-constraint:
sign: positive
required: true
- name: autoAssignAlerts
in: query
schema:
type: boolean
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
tags:
- Check groups
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroupCreateOrUpdateV2'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroup'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
/v2/check-groups/{id}/checks:
get:
summary: Retrieve all checks in a specific group with group settings applied (V2)
operationId: getV2CheckgroupsIdChecks
description: 'Lists all checks in a specific check group with the group settings applied.
Unlike `/v1`, this endpoint does not return the flat `project`, `logicalId`, `member` and `pending` fields. A check can be managed by more than one project and each of those fields can name only one of them; `projectBindings` reports every binding, and is identical on `/v1` and `/v2`.
Versioning is per endpoint. Only endpoints whose response or payload changed have a `/v2`; everything else remains on `/v1` and is unaffected. In particular the check groups themselves, and creating, updating and deleting checks, are unchanged and stay on `/v1`.'
parameters:
- name: x-checkly-account
in: header
schema:
type: string
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
x-format:
guid: true
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
- name: id
in: path
schema:
type: integer
x-constraint:
sign: positive
required: true
- name: limit
in: query
schema:
type: integer
description: Limit the number of results
default: 10
minimum: 1
maximum: 100
description: Limit the number of results
- name: page
in: query
schema:
type: number
description: Page number
default: 1
x-constraint:
sign: positive
description: Page number
tags:
- Check groups
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/CheckGroupCheckListV2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
components:
schemas:
attributes:
type: object
Model2:
type: string
enum:
- Too Many Requests
Assertion:
type: object
properties:
source:
$ref: '#/components/schemas/AssertionSource'
comparison:
$ref: '#/components/schemas/AssertionComparison'
property:
type: string
default: ''
target:
type: string
default: ''
regex:
type:
- string
- 'null'
default: ''
PaymentRequiredError:
type: object
properties:
statusCode:
type: number
enum:
- 402
error:
$ref: '#/components/schemas/Model3'
message:
type: string
example: Payment Required
attributes:
$ref: '#/components/schemas/attributes'
required:
- statusCode
- error
EnvironmentVariableGet:
type: object
properties:
key:
type: string
description: The key of the environment variable (this value cannot be changed).
example: API_KEY
value:
type: string
locked:
type: boolean
description: Used only in the UI to hide the value like a password.
default: false
secret:
type: boolean
description: Set an environment variable as secret. Once set, its value cannot be unlocked.
default: false
required:
- key
- value
Model22:
type: array
items:
$ref: '#/components/schemas/CheckGroupCheck'
ForbiddenError:
type: object
properties:
statusCode:
type: number
enum:
- 403
error:
$ref: '#/components/schemas/Model1'
message:
type: string
example: Forbidden
required:
- statusCode
- error
AssertionSource:
type: string
enum:
- STATUS_CODE
- JSON_BODY
- HEADERS
- TEXT_BODY
- RESPONSE_TIME
AlertSettingsRunBasedEscalation:
type: object
properties:
failedRunThreshold:
type: number
description: After how many failed consecutive check runs an alert notification should be send.
enum:
- 1
- 2
- 3
- 4
- 5
KeyValue:
type: object
properties:
key:
type: string
value:
type: string
default: ''
locked:
type: boolean
default: false
required:
- key
- value
Model3:
type: string
enum:
- Payment Required
AlertSettingsEscalationType:
type: string
description: Determines what type of escalation to use
default: RUN_BASED
enum:
- RUN_BASED
- TIME_BASED
Model7:
type: string
enum:
- us-east-1
- us-east-2
- us-west-1
- us-west-2
- ca-central-1
- sa-east-1
- eu-west-1
- eu-central-1
- eu-west-2
- eu-west-3
- eu-north-1
- eu-south-1
- me-south-1
- ap-southeast-1
- ap-northeast-1
- ap-east-1
- ap-southeast-2
- ap-southeast-3
- ap-northeast-2
- ap-northeast-3
- ap-south-1
- af-south-1
Model86:
type:
- array
- 'null'
description: An array of one or more private locations where to run the checks.
example:
- data-center-eu
items:
type: string
Model85:
type: array
description: List of alert channel subscriptions.
example: []
items:
$ref: '#/components/schemas/Model8'
runtimeId:
type:
- string
- 'null'
description: The runtime version, i.e. fixed set of runtime dependencies, used to execute checks in this group.
example: null
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
CheckGroupAlertSettings:
type: object
description: Alert settings.
default:
escalationType: RUN_BASED
runBasedEscalation:
failedRunThreshold: 1
reminders:
amount: 0
interval: 5
parallelRunFailureThreshold:
enabled: false
percentage: 10
properties:
escalationType:
$ref: '#/components/schemas/escalationType'
reminders:
$ref: '#/components/schemas/AlertSettingsReminders'
sslCertificates:
$ref: '#/components/schemas/AlertSettingsSSLCertificates'
runBasedEscalation:
$ref: '#/components/schemas/AlertSettingsRunBasedEscalation'
timeBasedEscalation:
$ref: '#/components/schemas/AlertSettingsTimeBasedEscalation'
parallelRunFailureThreshold:
$ref: '#/components/schemas/parallelRunFailureThreshold'
AlertSettingsParallelRunFailureThreshold:
type: object
properties:
enabled:
type: boolean
description: Determines if parallel run threshold is enabled
default: false
percentage:
type: number
description: The percentage of parallel runs that should fail before an alert is triggered
default: 10
enum:
- 10
- 20
- 30
- 40
- 50
- 60
- 70
- 80
- 90
- 100
Model89:
type: object
properties:
amount:
type: number
description: How many reminders to send out after the initial alert notification
default: 0
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 100000
interval:
type: number
description: At what interval the reminders should be send
default: 5
enum:
- 1
- 2
- 3
- 4
- 5
- 10
- 15
- 30
AlertSettings:
type: object
description: Alert settings.
default:
escalationType: RUN_BASED
runBasedEscalation:
failedRunThreshold: 1
reminders:
amount: 0
interval: 5
parallelRunFailureThreshold:
enabled: false
percentage: 10
properties:
escalationType:
$ref: '#/components/schemas/escalationType'
reminders:
$ref: '#/components/schemas/AlertSettingsReminders'
sslCertificates:
$ref: '#/components/schemas/AlertSettingsSSLCertificates'
runBasedEscalation:
$ref: '#/components/schemas/AlertSettingsRunBasedEscalation'
timeBasedEscalation:
$ref: '#/components/schemas/AlertSettingsTimeBasedEscalation'
parallelRunFailureThreshold:
$ref: '#/components/schemas/parallelRunFailureThreshold'
CheckGroupRead:
type: object
properties:
id:
type: number
example: 1
name:
type: string
description: The name of the check group.
example: Check group
activated:
type: boolean
description: Determines if the checks in the group are running or not.
muted:
type: boolean
description: Determines if any notifications will be send out when a check in this group fails and/or recovers.
tags:
$ref: '#/components/schemas/CheckGroupTagList'
locations:
$ref: '#/components/schemas/CheckGroupLocationList'
concurrency:
type: number
description: Determines how many checks are invoked concurrently when triggering a check group from CI/CD or through the API.
default: 3
minimum: 1
x-constraint:
sign: positive
apiCheckDefaults:
$ref: '#/components/schemas/CheckGrou
# --- truncated at 32 KB (67 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/checkly/refs/heads/main/openapi/checkly-check-groups-api-openapi.yml