Checkly Monitors API
The Monitors API from Checkly — 7 operation(s) for monitors.
The Monitors API from Checkly — 7 operation(s) for monitors.
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-monitors-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Checkly Public Monitors 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: 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
# --- truncated at 32 KB (102 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/checkly/refs/heads/main/openapi/checkly-monitors-api-openapi.yml