openapi: 3.2.0
info:
title: Checkly Public Monitors API
version: v1
description: These are the docs for the newly released Checkly Public API.
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: Monitors
paths:
/v1/checks/dns/{id}:
put:
summary: Update an DNS Monitor
operationId: putV1ChecksDnsId
description: Updates an DNS monitor.
tags:
- Monitors
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1DnsMonitorMutationResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
parameters:
- schema:
type: string
minLength: 1
format: uuid
required: true
name: id
in: path
- schema:
type: boolean
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
required: false
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
name: autoAssignAlerts
in: query
- schema:
type: string
format: uuid
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
required: false
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
name: x-checkly-account
in: header
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1DnsMonitorUpdate'
/v1/checks/icmp:
post:
summary: Create an ICMP monitor
operationId: postV1ChecksIcmp
description: "Creates a new ICMP monitor. Will return a `402` when you are over the limit of your plan.\n When using the `globalAlertSetting`, the `alertSetting` can be `null`"
tags:
- Monitors
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1IcmpMonitor'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'402':
description: Payment Required
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
parameters:
- schema:
type: boolean
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
required: false
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
name: autoAssignAlerts
in: query
- schema:
type: string
format: uuid
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
required: false
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
name: x-checkly-account
in: header
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1IcmpMonitorCreate'
/v1/checks/icmp/{id}:
put:
summary: Update an ICMP Monitor
operationId: putV1ChecksIcmpId
description: Updates an ICMP monitor.
tags:
- Monitors
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1IcmpMonitor'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
parameters:
- schema:
type: string
minLength: 1
format: uuid
required: true
name: id
in: path
- schema:
type: boolean
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
required: false
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
name: autoAssignAlerts
in: query
- schema:
type: string
format: uuid
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
required: false
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
name: x-checkly-account
in: header
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1IcmpMonitorUpdate'
/v1/checks/ssl:
post:
summary: Create an SSL monitor
operationId: postV1ChecksSsl
description: "Creates a new SSL monitor. Will return a `402` when you are over the limit of your plan.\n When using the `globalAlertSetting`, the `alertSetting` can be `null`"
tags:
- Monitors
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1SslMonitorMutationResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'402':
description: Payment Required
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
parameters:
- schema:
type: boolean
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
required: false
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
name: autoAssignAlerts
in: query
- schema:
type: string
format: uuid
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
required: false
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
name: x-checkly-account
in: header
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1SslMonitorCreate'
/v1/checks/ssl/{id}:
put:
summary: Update an SSL Monitor
operationId: putV1ChecksSslId
description: Updates an SSL monitor.
tags:
- Monitors
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1SslMonitorMutationResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
parameters:
- schema:
type: string
minLength: 1
format: uuid
required: true
name: id
in: path
- schema:
type: boolean
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
required: false
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
name: autoAssignAlerts
in: query
- schema:
type: string
format: uuid
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
required: false
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
name: x-checkly-account
in: header
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1SslMonitorUpdate'
/v1/checks/url:
post:
summary: Create a URL monitor
operationId: postV1ChecksUrl
description: "Creates a new URL monitor. Will return a `402` when you are over the limit of your plan.\n When using the `globalAlertSetting`, the `alertSetting` can be `null`"
tags:
- Monitors
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1UrlMonitorMutationResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'402':
description: Payment Required
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
parameters:
- schema:
type: boolean
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
required: false
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
name: autoAssignAlerts
in: query
- schema:
type: string
format: uuid
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
required: false
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
name: x-checkly-account
in: header
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1UrlMonitorCreate'
/v1/checks/url/{id}:
put:
summary: Update an URL Monitor
operationId: putV1ChecksUrlId
description: Updates an URL monitor.
tags:
- Monitors
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1UrlMonitorMutationResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
parameters:
- schema:
type: string
minLength: 1
format: uuid
required: true
name: id
in: path
- schema:
type: boolean
default: true
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
required: false
description: Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.
name: autoAssignAlerts
in: query
- schema:
type: string
format: uuid
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
required: false
description: Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
name: x-checkly-account
in: header
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChecksV1UrlMonitorUpdate'
components:
schemas:
ChecksV1IcmpRequestPatch:
type: object
properties:
hostname:
type: string
minLength: 1
maxLength: 2048
ipFamily:
type:
- string
- 'null'
enum:
- IPv4
- IPv6
- null
pingCount:
type:
- integer
- 'null'
minimum: 1
maximum: 50
assertions:
type: array
items:
$ref: '#/components/schemas/ChecksV1IcmpAssertionPatch'
required:
- hostname
ChecksV1SslRequestRead:
type: object
properties:
sslConfig:
$ref: '#/components/schemas/ChecksV1SslConfigRead'
sslClientCertificateId:
type:
- string
- 'null'
minLength: 1
format: uuid
assertions:
type: array
items:
$ref: '#/components/schemas/ChecksV1SslAssertionPatch'
required:
- sslConfig
ChecksV1UrlMonitorMutationResponse:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
default: true
muted:
type: boolean
default: false
doubleCheck:
type: boolean
default: true
shouldFail:
type: boolean
default: false
locations:
type:
- array
- 'null'
items:
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
default: []
tags:
type: array
items:
type: string
minLength: 1
default: []
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettings'
useGlobalAlertSettings:
type: boolean
default: true
groupId:
type:
- number
- 'null'
default: null
groupOrder:
type:
- number
- 'null'
minimum: 0
default: null
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
default: null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategy'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
default: false
description:
type:
- string
- 'null'
maxLength: 500
default: null
intent:
type:
- object
- 'null'
properties:
goal:
type: string
minLength: 1
maxLength: 2000
description: The user or system outcome this check protects.
requiredOutcomes:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Observable outcomes the check must continue to prove.
mustPreserve:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Guardrails an AI repair must not weaken or bypass.
default: null
required:
- goal
additionalProperties: false
aiAutoRepairEnabled:
type:
- boolean
- 'null'
default: null
id:
type: string
created_at:
type: string
format: date-time
updated_at:
type:
- string
- 'null'
format: date-time
alertChannels:
$ref: '#/components/schemas/ChecksV1AlertChannels'
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
default: 10
frequencyOffset:
type: integer
minimum: 1
degradedResponseTime:
type:
- number
- 'null'
maxResponseTime:
type:
- number
- 'null'
checkType:
type: string
enum:
- URL
request:
$ref: '#/components/schemas/ChecksV1UrlRequest'
required:
- name
ProjectBindingReferencesV1:
type: array
description: Projects that use this resource without owning it; their deploys leave it alone. Empty when there are none.
items:
$ref: '#/components/schemas/ProjectBindingV1'
ChecksV1AlertSettingsCreatePatch:
type: object
properties:
escalationType:
type: string
enum:
- RUN_BASED
- TIME_BASED
reminders:
type: object
properties:
amount:
type: integer
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 100000
interval:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
- 10
- 15
- 30
sslCertificates:
type: object
properties:
enabled:
type: boolean
alertThreshold:
type: integer
runBasedEscalation:
$ref: '#/components/schemas/ChecksV1AlertSettingsRunBasedEscalation'
timeBasedEscalation:
$ref: '#/components/schemas/ChecksV1AlertSettingsTimeBasedEscalation'
parallelRunFailureThreshold:
type: object
properties:
enabled:
type: boolean
percentage:
type: integer
enum:
- 10
- 20
- 30
- 40
- 50
- 60
- 70
- 80
- 90
- 100
ChecksV1IcmpMonitorCreate:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
default: true
muted:
type: boolean
default: false
doubleCheck:
type: boolean
default: true
shouldFail:
type: boolean
default: false
locations:
type:
- array
- 'null'
items:
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
default: []
tags:
type: array
items:
type: string
minLength: 1
default: []
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettingsCreate'
useGlobalAlertSettings:
type: boolean
default: true
groupId:
type:
- number
- 'null'
default: null
groupOrder:
type:
- number
- 'null'
minimum: 0
default: null
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
default: null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategy'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
default: false
description:
type:
- string
- 'null'
maxLength: 510
default: null
intent:
type:
- object
- 'null'
properties:
goal:
type: string
minLength: 1
maxLength: 2000
description: The user or system outcome this check protects.
requiredOutcomes:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Observable outcomes the check must continue to prove.
mustPreserve:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Guardrails an AI repair must not weaken or bypass.
default: null
required:
- goal
additionalProperties: false
aiAutoRepairEnabled:
type:
- boolean
- 'null'
default: null
checkType:
type: string
enum:
- ICMP
default: ICMP
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
default: 10
frequencyOffset:
type: integer
minimum: 1
heartbeat:
type:
- object
- 'null'
properties: {}
additionalProperties: {}
script:
type:
- string
- 'null'
scriptPath:
type:
- string
- 'null'
minLength: 1
sslCheckDomain:
type:
- string
- 'null'
environmentVariables:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ChecksV1EnvironmentVariable'
maxItems: 200
setupSnippetId:
type:
- number
- 'null'
default: null
tearDownSnippetId:
type:
- number
- 'null'
default: null
localSetupScript:
type:
- string
- 'null'
default: null
localTearDownScript:
type:
- string
- 'null'
default: null
request:
$ref: '#/components/schemas/ChecksV1IcmpRequest'
degradedResponseTime:
type:
- number
- 'null'
minimum: 0
maximum: 300000
default: 10000
maxResponseTime:
type:
- number
- 'null'
minimum: 0
maximum: 300000
default: 20000
degradedPacketLossThreshold:
type:
- number
- 'null'
maximum: 100
default: 10
exclusiveMinimum: 0
maxPacketLossThreshold:
type:
- number
- 'null'
maximum: 100
default: 20
exclusiveMinimum: 0
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
required:
- name
- request
ChecksV1AlertChannels:
type:
- object
- 'null'
properties:
email:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertEmail'
webhook:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertWebhook'
slack:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertSlack'
sms:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertSms'
ChecksV1AlertChannelSubscription:
type: object
properties:
alertChannelId:
type: number
activated:
type: boolean
required:
- alertChannelId
- activated
ChecksV1UrlMonitorCreate:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
default: true
muted:
type: boolean
default: false
doubleCheck:
type: boolean
default: true
shouldFail:
type: boolean
default: false
locations:
type:
- array
- 'null'
items:
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
default: []
tags:
type: array
items:
type: string
minLength: 1
default: []
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettingsCreate'
useGlobalAlertSettings:
type: boolean
default: true
groupId:
type:
- number
- 'null'
default: null
groupOrder:
type:
- number
- 'null'
minimum: 0
default: null
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
default: null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategy'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
default: false
description:
type:
- string
- 'null'
maxLength: 510
default: null
intent:
type:
- object
- 'null'
properties:
goal:
type: string
minLength: 1
maxLength: 2000
description: The user or system outcome this check protects.
requiredOutcomes:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Observable outcomes the check must continue to prove.
mustPreserve:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Guardrails an AI repair must not weaken or bypass.
default: null
required:
- goal
additionalProperties: false
aiAutoRepairEnabled:
type:
- boolean
- 'null'
default: null
checkType:
type: string
enum:
- URL
default: URL
request:
$ref: '#/components/schemas/ChecksV1UrlRequest'
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
default: 10
frequencyOffset:
type: integer
minimum: 1
degradedResponseTime:
type:
- number
- 'null'
minimum: 0
maximum: 45000
default: 3000
maxResponseTime:
type:
- number
- 'null'
minimum: 0
maximum: 45000
default: 5000
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
required:
- name
- request
ChecksV1UrlMonitorUpdate:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
muted:
type: boolean
doubleCheck:
type: boolean
shouldFail:
type: boolean
locations:
type:
- array
- 'null'
items:
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
tags:
type: array
items:
type: string
minLength: 1
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettingsCreatePatch'
useGlobalAlertSettings:
type: boolean
groupId:
type:
- number
- 'null'
groupOrder:
type:
- number
- 'null'
minimum: 0
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategyPatch'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
description:
type:
- string
- 'null'
maxLength: 510
intent:
$ref: '#/components/schemas/ChecksV1CheckIntent'
aiAutoRepairEnabled:
type:
- boolean
- 'null'
checkType:
type: string
enum:
- URL
request:
$ref: '#/components/schemas/ChecksV1UrlRequestPatch'
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
frequencyOffset:
type: integer
minimum: 1
degradedResponseTime:
type:
- number
- 'null'
minimum: 0
maximum: 45000
maxResponseTime:
type:
- number
- 'null'
minimum: 0
maximum: 45000
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
ChecksV1CheckIntent:
type:
- object
- 'null'
properties:
goal:
type: string
minLength: 1
maxLength: 2000
description: The user or system outcome this check protects.
requiredOutcomes:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Observable outcomes the check must continue to prove.
mustPreserve:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Guardrails an AI repair must not weaken or bypass.
required:
- goal
additionalProperties: false
ChecksV1IcmpRequest:
type: object
properties:
hostname:
type: string
minLength: 1
maxLength: 2048
ipFamily:
type:
- string
- 'null'
enum:
- IPv4
- IPv6
- null
default: IPv4
pingCount:
type:
- integer
- 'null'
minimum: 1
maximum: 50
default: 10
assertions:
type: array
items:
$ref: '#/components/schemas/ChecksV1IcmpAssertion'
default: []
required:
- hostname
ChecksV1SslMonitorMutationResponse:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
default: true
muted:
type: boolean
default: false
doubleCheck:
type: boolean
default: true
shouldFail:
type: boolean
default: false
locations:
type:
- array
- 'null'
items:
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
default: []
tags:
type: array
items:
type: string
minLength: 1
default: []
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettings'
useGlobalAlertSettings:
type: boolean
default: true
groupId:
type:
- number
- 'null'
default: null
groupOrder:
type:
- number
- 'null'
minimum: 0
default: null
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
default: null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategy'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
default: false
description:
type:
- string
- 'null'
maxLength: 500
default: null
intent:
type:
- object
- 'null'
properties:
goal:
type: string
minLength: 1
maxLength: 2000
description: The user or system outcome this check protects.
requiredOutcomes:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Observable outcomes the check must continue to prove.
mustPreserve:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Guardrails an AI repair must not weaken or bypass.
default: null
required:
- goal
additionalProperties: false
aiAutoRepairEnabled:
type:
- boolean
- 'null'
default: null
id:
type: string
created_at:
type: string
format: date-time
updated_at:
type:
- string
- 'null'
format: date-time
alertChannels:
$ref: '#/components/schemas/ChecksV1AlertChannels'
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
default: 10
frequencyOffset:
type: integer
minimum: 1
degradedResponseTime:
type:
- number
- 'null'
maxResponseTime:
type:
- number
- 'null'
checkType:
type: string
enum:
- SSL
request:
$ref: '#/components/schemas/ChecksV1SslRequestRead'
required:
- name
ChecksV1RetryStrategy:
type:
- object
- 'null'
properties:
type:
type: string
enum:
- FIXED
- LINEAR
- EXPONENTIAL
- SINGLE_RETRY
baseBackoffSeconds:
type: number
default: 60
sameRegion:
type: boolean
default: true
maxRetries:
type: number
minimum: 1
maximum: 10
maxDurationSeconds:
type: number
minimum: 0
maximum: 600
onlyOn:
type: array
items:
type: string
enum:
- NETWORK_ERROR
required:
- type
ChecksV1SslMonitorCreate:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
default: true
muted:
type: boolean
default: false
doubleCheck:
type: boolean
default: true
shouldFail:
type: boolean
default: false
locations:
type:
- array
- 'null'
items:
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
default: []
tags:
type: array
items:
type: string
minLength: 1
default: []
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettingsCreate'
useGlobalAlertSettings:
type: boolean
default: true
groupId:
type:
- number
- 'null'
default: null
groupOrder:
type:
- number
- 'null'
minimum: 0
default: null
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
default: null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategy'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
default: false
description:
type:
- string
- 'null'
maxLength: 510
default: null
intent:
type:
- object
- 'null'
properties:
goal:
type: string
minLength: 1
maxLength: 2000
description: The user or system outcome this check protects.
requiredOutcomes:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Observable outcomes the check must continue to prove.
mustPreserve:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Guardrails an AI repair must not weaken or bypass.
default: null
required:
- goal
additionalProperties: false
aiAutoRepairEnabled:
type:
- boolean
- 'null'
default: null
checkType:
type: string
enum:
- SSL
default: SSL
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
default: 10
frequencyOffset:
type: integer
minimum: 1
heartbeat:
type:
- object
- 'null'
properties: {}
additionalProperties: {}
script:
type:
- string
- 'null'
scriptPath:
type:
- string
- 'null'
minLength: 1
sslCheckDomain:
type:
- string
- 'null'
environmentVariables:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ChecksV1EnvironmentVariable'
maxItems: 200
setupSnippetId:
type:
- number
- 'null'
default: null
tearDownSnippetId:
type:
- number
- 'null'
default: null
localSetupScript:
type:
- string
- 'null'
default: null
localTearDownScript:
type:
- string
- 'null'
default: null
request:
$ref: '#/components/schemas/ChecksV1SslRequest'
degradedResponseTime:
type: integer
minimum: 0
maximum: 30000
default: 3000
maxResponseTime:
type: integer
minimum: 0
maximum: 30000
default: 10000
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
required:
- name
- request
ChecksV1SslSecurityBaselineRead:
type: object
properties:
enabled:
type: boolean
minTLSVersion:
type: object
properties:
value:
type: string
enum:
- TLS1.2
- TLS1.3
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
minKeySizeBits:
type: object
properties:
value:
type: integer
minimum: 1024
maximum: 16384
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
weakSignatureAlgorithm:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
weakCipherSuite:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
knownBadCA:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
recommendedTLSVersion:
type: object
properties:
value:
type: string
enum:
- TLS1.2
- TLS1.3
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
recommendedKeySizeBits:
type: object
properties:
value:
type: integer
minimum: 1024
maximum: 16384
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
ocspMustStapleRespected:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
sctPresent:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
ChecksV1AlertSlack:
type: object
properties:
url:
type: string
minLength: 1
default: ''
ChecksV1UrlAssertionPatch:
type: object
properties:
source:
type: string
enum:
- STATUS_CODE
comparison:
type: string
enum:
- EQUALS
- NOT_EQUALS
- LESS_THAN
- GREATER_THAN
property:
type: string
target:
type: string
regex:
type:
- string
- 'null'
ChecksV1DnsMonitorUpdate:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
default: true
muted:
type: boolean
default: false
doubleCheck:
type: boolean
default: true
shouldFail:
type: boolean
default: false
locations:
type:
- array
- 'null'
items:
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
default: []
tags:
type: array
items:
type: string
minLength: 1
default: []
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettings'
useGlobalAlertSettings:
type: boolean
default: true
groupId:
type:
- number
- 'null'
default: null
groupOrder:
type:
- number
- 'null'
minimum: 0
default: null
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
default: null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategy'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
default: false
description:
type:
- string
- 'null'
maxLength: 500
default: null
intent:
type:
- object
- 'null'
properties:
goal:
type: string
minLength: 1
maxLength: 2000
description: The user or system outcome this check protects.
requiredOutcomes:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Observable outcomes the check must continue to prove.
mustPreserve:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Guardrails an AI repair must not weaken or bypass.
default: null
required:
- goal
additionalProperties: false
aiAutoRepairEnabled:
type:
- boolean
- 'null'
default: null
id:
type: string
minLength: 1
created_at:
type: string
format: date-time
updated_at:
type:
- string
- 'null'
format: date-time
alertChannels:
$ref: '#/components/schemas/ChecksV1AlertChannels'
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
default: 10
frequencyOffset:
type: integer
minimum: 1
degradedResponseTime:
type:
- number
- 'null'
maxResponseTime:
type:
- number
- 'null'
checkType:
type: string
enum:
- DNS
request:
$ref: '#/components/schemas/ChecksV1DnsRequest'
required:
- name
ChecksV1DnsRequest:
type: object
properties:
query:
type: string
minLength: 1
maxLength: 100
nameServer:
type: string
maxLength: 100
port:
type: number
recordType:
type: string
enum:
- A
- AAAA
- CNAME
- MX
- TXT
- SOA
- NS
- HTTPS
assertions:
type: array
items:
$ref: '#/components/schemas/ChecksV1DnsAssertion'
default: []
protocol:
type: string
enum:
- TCP
- UDP
default: UDP
required:
- query
- recordType
ChecksV1IcmpAssertionPatch:
type: object
properties:
source:
type: string
enum:
- LATENCY
- JSON_RESPONSE
comparison:
type: string
enum:
- EQUALS
- NOT_EQUALS
- IS_EMPTY
- NOT_EMPTY
- GREATER_THAN
- LESS_THAN
- CONTAINS
- NOT_CONTAINS
- IS_NULL
- NOT_NULL
property:
type: string
target:
type: string
regex:
type:
- string
- 'null'
ChecksV1AlertSettingsTimeBasedEscalation:
type: object
properties:
minutesFailingThreshold:
type: integer
enum:
- 5
- 10
- 15
- 30
ChecksV1AlertSettingsCreate:
type: object
properties:
escalationType:
type: string
enum:
- RUN_BASED
- TIME_BASED
default: RUN_BASED
reminders:
type: object
properties:
amount:
type: integer
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 100000
default: 0
interval:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
- 10
- 15
- 30
default: 5
sslCertificates:
type: object
properties:
enabled:
type: boolean
alertThreshold:
type: integer
runBasedEscalation:
$ref: '#/components/schemas/ChecksV1AlertSettingsRunBasedEscalation'
timeBasedEscalation:
$ref: '#/components/schemas/ChecksV1AlertSettingsTimeBasedEscalation'
parallelRunFailureThreshold:
type: object
properties:
enabled:
type: boolean
default: false
percentage:
type: integer
enum:
- 10
- 20
- 30
- 40
- 50
- 60
- 70
- 80
- 90
- 100
default: 10
default:
escalationType: RUN_BASED
runBasedEscalation:
failedRunThreshold: 1
reminders:
amount: 0
interval: 5
parallelRunFailureThreshold:
enabled: false
percentage: 10
ChecksV1DnsAssertion:
type: object
properties:
source:
type: string
enum:
- RESPONSE_TIME
- RESPONSE_CODE
- TEXT_ANSWER
- JSON_ANSWER
comparison:
type: string
enum:
- 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:
type: string
default: ''
target:
type: string
default: ''
regex:
type:
- string
- 'null'
default: ''
ChecksV1SslAssertionPatch:
type: object
properties:
source:
type: string
enum:
- CERTIFICATE
- CONNECTION
- RESPONSE_TIME
- JSON_RESPONSE
- TEXT_RESPONSE
property:
type: string
comparison:
type: string
target:
type: string
regex:
type:
- string
- 'null'
required:
- source
- comparison
ChecksV1SslMonitorUpdate:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
muted:
type: boolean
doubleCheck:
type: boolean
shouldFail:
type: boolean
locations:
type:
- array
- 'null'
items:
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
tags:
type: array
items:
type: string
minLength: 1
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettingsCreatePatch'
useGlobalAlertSettings:
type: boolean
groupId:
type:
- number
- 'null'
groupOrder:
type:
- number
- 'null'
minimum: 0
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategyPatch'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
description:
type:
- string
- 'null'
maxLength: 510
intent:
$ref: '#/components/schemas/ChecksV1CheckIntent'
aiAutoRepairEnabled:
type:
- boolean
- 'null'
checkType:
type: string
enum:
- SSL
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
frequencyOffset:
type: integer
minimum: 1
heartbeat:
type:
- object
- 'null'
properties: {}
additionalProperties: {}
script:
type:
- string
- 'null'
scriptPath:
type:
- string
- 'null'
minLength: 1
sslCheckDomain:
type:
- string
- 'null'
environmentVariables:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ChecksV1EnvironmentVariablePatch'
maxItems: 200
setupSnippetId:
type:
- number
- 'null'
tearDownSnippetId:
type:
- number
- 'null'
localSetupScript:
type:
- string
- 'null'
localTearDownScript:
type:
- string
- 'null'
request:
$ref: '#/components/schemas/ChecksV1SslRequestPatch'
degradedResponseTime:
type: integer
minimum: 0
maximum: 30000
maxResponseTime:
type: integer
minimum: 0
maximum: 30000
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
ChecksV1SslRequest:
type: object
properties:
sslConfig:
$ref: '#/components/schemas/ChecksV1SslConfig'
sslClientCertificateId:
type:
- string
- 'null'
minLength: 1
format: uuid
assertions:
type: array
items:
$ref: '#/components/schemas/ChecksV1SslAssertion'
default: []
required:
- sslConfig
ChecksV1AlertEmail:
type: object
properties:
address:
type: string
minLength: 1
default: ''
ChecksV1KeyValue:
type: object
properties:
key:
type: string
minLength: 1
value:
type: string
locked:
type: boolean
default: false
required:
- key
- value
ChecksV1UrlAssertion:
type: object
properties:
source:
type: string
enum:
- STATUS_CODE
comparison:
type: string
enum:
- EQUALS
- NOT_EQUALS
- LESS_THAN
- GREATER_THAN
property:
type: string
default: ''
target:
type: string
default: ''
regex:
type:
- string
- 'null'
default: ''
ChecksV1EnvironmentVariablePatch:
type: object
properties:
key:
type: string
minLength: 1
value:
type:
- string
- 'null'
locked:
type: boolean
secret:
type: boolean
required:
- key
- value
ChecksV1UrlRequest:
type: object
properties:
method:
type: string
enum:
- GET
default: GET
url:
type: string
minLength: 1
maxLength: 2048
followRedirects:
type: boolean
skipSSL:
type: boolean
default: false
ipFamily:
type: string
enum:
- IPv4
- IPv6
default: IPv4
assertions:
type: array
items:
$ref: '#/components/schemas/ChecksV1UrlAssertion'
default: []
required:
- url
ProjectBindingV1:
type: object
properties:
project:
$ref: '#/components/schemas/BindingProjectV1'
binding:
$ref: '#/components/schemas/ProjectBindingDetailsV1'
required:
- project
- binding
ApiError:
type: object
properties:
statusCode:
type: number
error:
type: string
message:
type: string
required:
- statusCode
- error
- message
ChecksV1AlertWebhook:
type: object
properties:
name:
type: string
minLength: 1
default: ''
url:
type: string
minLength: 1
default: ''
method:
type:
- string
- 'null'
minLength: 1
default: POST
headers:
type: array
items:
$ref: '#/components/schemas/ChecksV1KeyValue'
default: []
queryParameters:
type: array
items:
$ref: '#/components/schemas/ChecksV1KeyValue'
default: []
ProjectBindingDetailsV1:
type: object
description: The resource's side of this binding.
properties:
logicalId:
type: string
description: The resource's logical ID within this project, as declared in code.
example: homepage-check
pending:
type: boolean
description: True when the binding is reserved by an import plan that has not been deployed yet.
required:
- logicalId
- pending
ChecksV1EnvironmentVariable:
type: object
properties:
key:
type: string
minLength: 1
value:
type:
- string
- 'null'
locked:
type: boolean
default: false
secret:
type: boolean
default: false
required:
- key
- value
ProjectBindingOwnerV1:
type:
- object
- 'null'
description: The project that owns this resource — the one whose deploy can delete it. Null when no project owns it, including when other projects merely reference it. In the rare case that several projects hold an ownership record for one resource, this reports the preferred one and the rest are omitted.
properties:
project:
$ref: '#/components/schemas/BindingProjectV1'
binding:
$ref: '#/components/schemas/ProjectBindingDetailsV1'
required:
- project
- binding
ChecksV1AlertSettingsRunBasedEscalation:
type: object
properties:
failedRunThreshold:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
BindingProjectV1:
type: object
description: The project this binding is to.
properties:
id:
type: string
description: The ID of the project.
logicalId:
type: string
description: The logical ID of the project, as declared in code.
name:
type: string
description: The name of the project.
required:
- id
- logicalId
- name
ChecksV1SslConfigRead:
type: object
properties:
hostname:
type: string
minLength: 1
maxLength: 2048
pattern: ^[^\x00-\x1f\x7f]*$
port:
type: integer
minimum: 1
maximum: 65535
serverName:
anyOf:
- type: string
minLength: 1
maxLength: 2048
pattern: ^[^\x00-\x1f\x7f]*$
- type: string
enum:
- ''
- {}
ipFamily:
type: string
enum:
- IPv4
- IPv6
skipChainValidation:
type: boolean
handshakeTimeoutMs:
type: integer
minimum: 1000
maximum: 30000
alertDaysBeforeExpiry:
type: integer
minimum: 1
maximum: 365
securityBaseline:
$ref: '#/components/schemas/ChecksV1SslSecurityBaselineRead'
clientCertificateMode:
type: string
enum:
- auto
- explicit
required:
- hostname
ChecksV1SslConfigPatch:
type: object
properties:
hostname:
type: string
minLength: 1
maxLength: 2048
pattern: ^[^\x00-\x1f\x7f]*$
port:
type: integer
minimum: 1
maximum: 65535
serverName:
anyOf:
- type: string
minLength: 1
maxLength: 2048
pattern: ^[^\x00-\x1f\x7f]*$
- type: string
enum:
- ''
- {}
ipFamily:
type: string
enum:
- IPv4
- IPv6
skipChainValidation:
type: boolean
handshakeTimeoutMs:
type: integer
minimum: 1000
maximum: 30000
alertDaysBeforeExpiry:
type: integer
minimum: 1
maximum: 365
securityBaseline:
$ref: '#/components/schemas/ChecksV1SslSecurityBaselinePatch'
clientCertificateMode:
type: string
enum:
- auto
- explicit
required:
- hostname
ChecksV1AlertSettings:
type:
- object
- 'null'
properties:
escalationType:
type: string
enum:
- RUN_BASED
- TIME_BASED
default: RUN_BASED
reminders:
type: object
properties:
amount:
type: integer
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 100000
default: 0
interval:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
- 10
- 15
- 30
default: 5
sslCertificates:
type: object
properties:
enabled:
type: boolean
alertThreshold:
type: integer
runBasedEscalation:
$ref: '#/components/schemas/ChecksV1AlertSettingsRunBasedEscalation'
timeBasedEscalation:
$ref: '#/components/schemas/ChecksV1AlertSettingsTimeBasedEscalation'
parallelRunFailureThreshold:
type: object
properties:
enabled:
type: boolean
default: false
percentage:
type: integer
enum:
- 10
- 20
- 30
- 40
- 50
- 60
- 70
- 80
- 90
- 100
default: 10
default:
escalationType: RUN_BASED
runBasedEscalation:
failedRunThreshold: 1
reminders:
amount: 0
interval: 5
parallelRunFailureThreshold:
enabled: false
percentage: 10
ChecksV1IcmpAssertion:
type: object
properties:
source:
type: string
enum:
- LATENCY
- JSON_RESPONSE
comparison:
type: string
enum:
- EQUALS
- NOT_EQUALS
- IS_EMPTY
- NOT_EMPTY
- GREATER_THAN
- LESS_THAN
- CONTAINS
- NOT_CONTAINS
- IS_NULL
- NOT_NULL
property:
type: string
default: ''
target:
type: string
default: ''
regex:
type:
- string
- 'null'
default: ''
ChecksV1SslConfig:
type: object
properties:
hostname:
type: string
minLength: 1
maxLength: 2048
pattern: ^[^\x00-\x1f\x7f]*$
port:
type: integer
minimum: 1
maximum: 65535
default: 443
serverName:
anyOf:
- type: string
minLength: 1
maxLength: 2048
pattern: ^[^\x00-\x1f\x7f]*$
- type: string
enum:
- ''
- {}
ipFamily:
type: string
enum:
- IPv4
- IPv6
default: IPv4
skipChainValidation:
type: boolean
default: false
handshakeTimeoutMs:
type: integer
minimum: 1000
maximum: 30000
default: 10000
alertDaysBeforeExpiry:
type: integer
minimum: 1
maximum: 365
default: 20
securityBaseline:
type: object
properties:
enabled:
type: boolean
default: true
minTLSVersion:
type: object
properties:
value:
type: string
enum:
- TLS1.2
- TLS1.3
default: TLS1.2
severity:
type: string
enum:
- fail
- degrade
- ignore
default: fail
default: {}
additionalProperties: false
minKeySizeBits:
type: object
properties:
value:
type: integer
minimum: 1024
maximum: 16384
default: 2048
severity:
type: string
enum:
- fail
- degrade
- ignore
default: fail
default: {}
additionalProperties: false
weakSignatureAlgorithm:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: fail
default: {}
additionalProperties: false
weakCipherSuite:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: fail
default: {}
additionalProperties: false
knownBadCA:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: fail
default: {}
additionalProperties: false
recommendedTLSVersion:
type: object
properties:
value:
type: string
enum:
- TLS1.2
- TLS1.3
default: TLS1.3
severity:
type: string
enum:
- fail
- degrade
- ignore
default: ignore
default: {}
additionalProperties: false
recommendedKeySizeBits:
type: object
properties:
value:
type: integer
minimum: 1024
maximum: 16384
default: 3072
severity:
type: string
enum:
- fail
- degrade
- ignore
default: ignore
default: {}
additionalProperties: false
ocspMustStapleRespected:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: ignore
default: {}
additionalProperties: false
sctPresent:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: ignore
default: {}
additionalProperties: false
default: {}
additionalProperties: false
clientCertificateMode:
type: string
enum:
- auto
- explicit
required:
- hostname
ChecksV1DnsMonitorMutationResponse:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
default: true
muted:
type: boolean
default: false
doubleCheck:
type: boolean
default: true
shouldFail:
type: boolean
default: false
locations:
type:
- array
- 'null'
items:
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
default: []
tags:
type: array
items:
type: string
minLength: 1
default: []
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettings'
useGlobalAlertSettings:
type: boolean
default: true
groupId:
type:
- number
- 'null'
default: null
groupOrder:
type:
- number
- 'null'
minimum: 0
default: null
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
default: null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategy'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
default: false
description:
type:
- string
- 'null'
maxLength: 500
default: null
intent:
type:
- object
- 'null'
properties:
goal:
type: string
minLength: 1
maxLength: 2000
description: The user or system outcome this check protects.
requiredOutcomes:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Observable outcomes the check must continue to prove.
mustPreserve:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Guardrails an AI repair must not weaken or bypass.
default: null
required:
- goal
additionalProperties: false
aiAutoRepairEnabled:
type:
- boolean
- 'null'
default: null
id:
type: string
created_at:
type: string
format: date-time
updated_at:
type:
- string
- 'null'
format: date-time
alertChannels:
$ref: '#/components/schemas/ChecksV1AlertChannels'
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
default: 10
frequencyOffset:
type: integer
minimum: 1
degradedResponseTime:
type:
- number
- 'null'
maxResponseTime:
type:
- number
- 'null'
checkType:
type: string
enum:
- DNS
request:
$ref: '#/components/schemas/ChecksV1DnsRequest'
required:
- name
ChecksV1AlertSms:
type: object
properties:
number:
type: string
minLength: 1
default: ''
name:
type: string
required:
- name
ChecksV1SslRequestPatch:
type: object
properties:
sslConfig:
$ref: '#/components/schemas/ChecksV1SslConfigPatch'
sslClientCertificateId:
type:
- string
- 'null'
minLength: 1
format: uuid
assertions:
type: array
items:
$ref: '#/components/schemas/ChecksV1SslAssertionPatch'
required:
- sslConfig
ChecksV1IcmpMonitor:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
default: true
muted:
type: boolean
default: false
doubleCheck:
type: boolean
default: true
shouldFail:
type: boolean
default: false
locations:
type:
- array
- 'null'
items:
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
default: []
tags:
type: array
items:
type: string
minLength: 1
default: []
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettings'
useGlobalAlertSettings:
type: boolean
default: true
groupId:
type:
- number
- 'null'
default: null
groupOrder:
type:
- number
- 'null'
minimum: 0
default: null
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
default: null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategy'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
default: false
description:
type:
- string
- 'null'
maxLength: 500
default: null
intent:
type:
- object
- 'null'
properties:
goal:
type: string
minLength: 1
maxLength: 2000
description: The user or system outcome this check protects.
requiredOutcomes:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Observable outcomes the check must continue to prove.
mustPreserve:
type: array
items:
type: string
minLength: 1
maxLength: 1000
maxItems: 20
default: []
description: Guardrails an AI repair must not weaken or bypass.
default: null
required:
- goal
additionalProperties: false
aiAutoRepairEnabled:
type:
- boolean
- 'null'
default: null
id:
type: string
created_at:
type: string
format: date-time
updated_at:
type:
- string
- 'null'
format: date-time
alertChannels:
$ref: '#/components/schemas/ChecksV1AlertChannels'
project:
$ref: '#/components/schemas/ChecksV1CheckProject'
logicalId:
type:
- string
- 'null'
description: The check's logical ID within the managing project, or null when it is not managed by code.
member:
type:
- boolean
- 'null'
description: 'True when the project owns this check, false when it merely references a check owned outside the project. Null when not managed by code. The same relationship appears structurally in `projectBindings`: an owning project under `projectBindings.owner`, a referencing one under `projectBindings.references`.'
pending:
type:
- boolean
- 'null'
description: True when the binding is reserved by an import plan that has not been deployed yet. Null when not managed by code.
projectBindings:
$ref: '#/components/schemas/ProjectBindingsV1'
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
default: 10
frequencyOffset:
type: integer
minimum: 1
checkType:
type: string
enum:
- ICMP
request:
$ref: '#/components/schemas/ChecksV1IcmpRequest'
degradedPacketLossThreshold:
type:
- number
- 'null'
maxPacketLossThreshold:
type:
- number
- 'null'
required:
- name
ChecksV1UrlRequestPatch:
type: object
properties:
method:
type: string
enum:
- GET
url:
type: string
minLength: 1
maxLength: 2048
followRedirects:
type: boolean
skipSSL:
type: boolean
ipFamily:
type: string
enum:
- IPv4
- IPv6
assertions:
type: array
items:
$ref: '#/components/schemas/ChecksV1UrlAssertionPatch'
required:
- url
ChecksV1SslSecurityBaselinePatch:
type: object
properties:
enabled:
type: boolean
minTLSVersion:
type: object
properties:
value:
type: string
enum:
- TLS1.2
- TLS1.3
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
additionalProperties: false
minKeySizeBits:
type: object
properties:
value:
type: integer
minimum: 1024
maximum: 16384
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
additionalProperties: false
weakSignatureAlgorithm:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
additionalProperties: false
weakCipherSuite:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
additionalProperties: false
knownBadCA:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
additionalProperties: false
recommendedTLSVersion:
type: object
properties:
value:
type: string
enum:
- TLS1.2
- TLS1.3
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
additionalProperties: false
recommendedKeySizeBits:
type: object
properties:
value:
type: integer
minimum: 1024
maximum: 16384
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
additionalProperties: false
ocspMustStapleRespected:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
additionalProperties: false
sctPresent:
type: object
properties:
severity:
type: string
enum:
- fail
- degrade
- ignore
default: {}
additionalProperties: false
additionalProperties: false
ProjectBindingsV1:
type: object
description: The Checkly CLI projects that manage this resource. `owner` is null and `references` empty when the resource is not managed by code.
properties:
owner:
$ref: '#/components/schemas/ProjectBindingOwnerV1'
references:
$ref: '#/components/schemas/ProjectBindingReferencesV1'
required:
- owner
- references
ChecksV1RetryStrategyPatch:
type:
- object
- 'null'
properties:
type:
type: string
enum:
- FIXED
- LINEAR
- EXPONENTIAL
- SINGLE_RETRY
baseBackoffSeconds:
type: number
sameRegion:
type: boolean
maxRetries:
type: number
minimum: 1
maximum: 10
maxDurationSeconds:
type: number
minimum: 0
maximum: 600
onlyOn:
type: array
items:
type: string
enum:
- NETWORK_ERROR
required:
- type
ChecksV1IcmpMonitorUpdate:
type: object
properties:
name:
type: string
minLength: 1
activated:
type: boolean
muted:
type: boolean
doubleCheck:
type: boolean
shouldFail:
type: boolean
locations:
type:
- array
- 'null'
items:
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
tags:
type: array
items:
type: string
minLength: 1
alertSettings:
$ref: '#/components/schemas/ChecksV1AlertSettingsCreatePatch'
useGlobalAlertSettings:
type: boolean
groupId:
type:
- number
- 'null'
groupOrder:
type:
- number
- 'null'
minimum: 0
runtimeId:
type:
- string
- 'null'
enum:
- '2026.04'
- '2025.04'
- '2024.09'
- '2024.02'
- '2023.09'
- '2023.02'
- '2022.10'
- null
alertChannelSubscriptions:
type: array
items:
$ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
retryStrategy:
$ref: '#/components/schemas/ChecksV1RetryStrategyPatch'
triggerIncident:
$ref: '#/components/schemas/ChecksV1TriggerIncident'
runParallel:
type: boolean
description:
type:
- string
- 'null'
maxLength: 510
intent:
$ref: '#/components/schemas/ChecksV1CheckIntent'
aiAutoRepairEnabled:
type:
- boolean
- 'null'
checkType:
type: string
enum:
- ICMP
frequency:
type: integer
enum:
- 0
- 1
- 2
- 5
- 10
- 15
- 30
- 60
- 120
- 180
- 360
- 720
- 1440
frequencyOffset:
type: integer
minimum: 1
heartbeat:
type:
- object
- 'null'
properties: {}
additionalProperties: {}
script:
type:
- string
- 'null'
scriptPath:
type:
- string
- 'null'
minLength: 1
sslCheckDomain:
type:
- string
- 'null'
environmentVariables:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ChecksV1EnvironmentVariablePatch'
maxItems: 200
setupSnippetId:
type:
- number
- 'null'
tearDownSnippetId:
type:
- number
- 'null'
localSetupScript:
type:
- string
- 'null'
localTearDownScript:
type:
- string
- 'null'
request:
$ref: '#/components/schemas/ChecksV1IcmpRequestPatch'
degradedResponseTime:
type:
- number
- 'null'
minimum: 0
maximum: 300000
maxResponseTime:
type:
- number
- 'null'
minimum: 0
maximum: 300000
degradedPacketLossThreshold:
type:
- number
- 'null'
maximum: 100
exclusiveMinimum: 0
maxPacketLossThreshold:
type:
- number
- 'null'
maximum: 100
exclusiveMinimum: 0
privateLocations:
type:
- array
- 'null'
items:
type: string
minLength: 1
ChecksV1SslAssertion:
type: object
properties:
source:
type: string
enum:
- CERTIFICATE
- CONNECTION
- RESPONSE_TIME
- JSON_RESPONSE
- TEXT_RESPONSE
property:
type: string
default: ''
comparison:
type: string
target:
type: string
default: ''
regex:
type:
- string
- 'null'
default: ''
required:
- source
- comparison
ChecksV1TriggerIncident:
type:
- object
- 'null'
properties:
serviceId:
type: string
minLength: 1
format: uuid
severity:
type: string
enum:
- CRITICAL
- MAJOR
- MEDIUM
- MINOR
name:
type: string
description:
type: string
notifySubscribers:
type: boolean
required:
- serviceId
- severity
- name
- description
- notifySubscribers
ChecksV1CheckProject:
type:
- object
- 'null'
properties:
id:
type: string
description: The ID of the project that manages this check.
logicalId:
type: string
description: The logical ID of the managing project, as declared in code.
name:
type: string
description: The name of the managing project.
description: The project that manages this check, or null when the check is not managed by code. When a check has more than one binding, this reports the preferred one.
securitySchemes:
Bearer:
type: http
scheme: bearer
bearerFormat: Bearer
description: 'The Checkly Public API uses API keys to authenticate requests. You can get the API Key here.Your API key is like a password:
keep it secure!Authentication to the API is performed using the Bearer auth method in the Authorization header and using the account ID.For example, set Authorization header while using cURL: curl -H "Authorization: Bearer [apiKey]" "X-Checkly-Account: [accountId]"'