Checkly Incidents API
The Incidents API from Checkly — 4 operation(s) for incidents.
The Incidents API from Checkly — 4 operation(s) for incidents.
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-incidents-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 Incidents 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: Incidents
paths:
/v1/incidents:
post:
summary: Create an incident
operationId: postV1Incidents
description: Creates a new incident.
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
tags:
- Incidents
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Model43'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Model47'
'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/incidents/{id}:
delete:
summary: Delete an incident
operationId: deleteV1IncidentsId
description: Permanently removes an incident and all its updates.
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: string
x-format:
guid: true
required: true
tags:
- Incidents
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'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
get:
summary: Retrieve an incident
operationId: getV1IncidentsId
description: Shows details of a specific incident. Uses the "includeAllIncidentUpdates" query parameter to obtain all updates.
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: string
x-format:
guid: true
required: true
- name: includeAllIncidentUpdates
in: query
schema:
type: boolean
description: You use it to include all the incident updates.
example: true
default: false
description: You use it to include all the incident updates.
tags:
- Incidents
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Model47'
'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 an incident
operationId: putV1IncidentsId
description: Updates an incident.
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: string
x-format:
guid: true
required: true
- name: probe
in: query
schema:
type: boolean
tags:
- Incidents
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Model48'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Model49'
'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
incidentUpdates:
type: array
description: The first incident update with the status and description. It must be only one element.
example:
- status: INVESTIGATING
description: The service is down and affects all the regions.
x-constraint:
length: 1
items:
$ref: '#/components/schemas/Model42'
Model46:
type: array
description: The first incident update with the status and description. It must be only one element.
example:
- id: 01f477f8-4293-4e1c-82bd-99797720434c
status: RESOLVED
description: The service is up and all is recovered.
incidentId: 3abcfdfe-ae2d-4632-8dd1-18dd871e18fc
created_at: '2022-09-08T20:56:48.425Z'
updated_at: null
- id: 1f0640f8-1910-4137-b91d-ed152faa92e6
status: INVESTIGATING
description: The service is down and affects all the regions.
incidentId: 3abcfdfe-ae2d-4632-8dd1-18dd871e18fc
created_at: '2022-09-08T18:56:48.425Z'
updated_at: null
minItems: 1
items:
$ref: '#/components/schemas/Model45'
Model49:
type: object
properties:
name:
type: string
description: A name used to describe the incident.
example: Service outage
impact:
$ref: '#/components/schemas/impact'
startedAt:
type:
- string
- 'null'
format: date-time
description: Used to indicate when incident starts to be active.
example: '2022-11-25T12:34:56.000Z'
stoppedAt:
type:
- string
- 'null'
format: date-time
description: Used to indicate when incident turns to inactive.
example: '2022-11-25T13:34:56.000Z'
dashboardId:
type: number
description: The dashboard ID where the incident will be shown.
example: 1234
id:
type: string
description: The incident universal and unique identificator.
example: e50ad839-1b90-4955-b716-1c6edbda57cb
x-format:
guid: true
created_at:
type: string
format: date-time
description: The timestamp when the incident was created.
example: '2022-09-08T19:41:28.658Z'
updated_at:
type:
- string
- 'null'
format: date-time
description: The timestamp when the incident was last updated.
example: '2022-09-08T20:41:28.658Z'
incidentUpdates:
type:
- string
- 'null'
required:
- name
- impact
- dashboardId
- id
- created_at
- updated_at
Model41:
type: string
description: The incident update status. Must be one of INVESTIGATING,IDENTIFIED,MONITORING,RESOLVED,MAINTENANCE
example: INVESTIGATING
enum:
- INVESTIGATING
- IDENTIFIED
- MONITORING
- RESOLVED
- MAINTENANCE
Model2:
type: string
enum:
- Too Many Requests
Model47:
type: object
properties:
name:
type: string
description: A name used to describe the incident.
example: Service outage
impact:
$ref: '#/components/schemas/impact'
startedAt:
type:
- string
- 'null'
format: date-time
description: Used to indicate when incident starts to be active.
example: '2022-11-25T12:34:56.000Z'
stoppedAt:
type:
- string
- 'null'
format: date-time
description: Used to indicate when incident turns to inactive.
example: '2022-11-25T13:34:56.000Z'
dashboardId:
type: number
description: The dashboard ID where the incident will be shown.
example: 1234
id:
type: string
description: The incident universal and unique identificator.
example: e50ad839-1b90-4955-b716-1c6edbda57cb
x-format:
guid: true
created_at:
type: string
format: date-time
description: The timestamp when the incident was created.
example: '2022-09-08T19:41:28.658Z'
updated_at:
type:
- string
- 'null'
format: date-time
description: The timestamp when the incident was last updated.
example: '2022-09-08T20:41:28.658Z'
incidentUpdates:
$ref: '#/components/schemas/Model46'
required:
- name
- impact
- dashboardId
- id
- created_at
- updated_at
- incidentUpdates
TooManyRequestsError:
type: object
properties:
statusCode:
type: number
enum:
- 429
error:
$ref: '#/components/schemas/Model2'
message:
type: string
example: Too Many Requests
attributes:
$ref: '#/components/schemas/attributes'
required:
- statusCode
- error
UnauthorizedError:
type: object
properties:
statusCode:
type: number
enum:
- 401
error:
$ref: '#/components/schemas/error'
message:
type: string
example: Bad Token
attributes:
$ref: '#/components/schemas/attributes'
required:
- statusCode
- error
Model43:
type: object
properties:
name:
type: string
description: A name used to describe the incident.
example: Service outage
impact:
$ref: '#/components/schemas/impact'
startedAt:
type:
- string
- 'null'
format: date-time
description: Used to indicate when incident starts to be active.
example: '2022-11-25T12:34:56.000Z'
stoppedAt:
type:
- string
- 'null'
format: date-time
description: Used to indicate when incident turns to inactive.
example: '2022-11-25T13:34:56.000Z'
dashboardId:
type: number
description: The dashboard ID where the incident will be shown.
example: 1234
incidentUpdates:
$ref: '#/components/schemas/incidentUpdates'
required:
- name
- impact
- dashboardId
- incidentUpdates
ForbiddenError:
type: object
properties:
statusCode:
type: number
enum:
- 403
error:
$ref: '#/components/schemas/Model1'
message:
type: string
example: Forbidden
required:
- statusCode
- error
Model42:
type: object
properties:
status:
$ref: '#/components/schemas/Model41'
description:
type: string
description: A description about the status update.
example: We found the issue and we are working on it.
required:
- status
- description
NotFoundError:
type: object
properties:
statusCode:
type: number
enum:
- 404
error:
$ref: '#/components/schemas/Model4'
message:
type: string
example: Not Found
required:
- statusCode
- error
error:
type: string
enum:
- Unauthorized
impact:
type: string
description: Used to indicate the impact or severity.
example: MINOR
default: MINOR
enum:
- MAINTENANCE
- MAJOR
- MINOR
Model44:
type: string
description: The incident update status. Must be one of INVESTIGATING,IDENTIFIED,MONITORING,RESOLVED,MAINTENANCE
example: INVESTIGATING
enum:
- INVESTIGATING
- IDENTIFIED
- MONITORING
- RESOLVED
- MAINTENANCE
Model45:
type: object
properties:
status:
$ref: '#/components/schemas/Model44'
description:
type: string
description: A description about the status update.
example: We found the issue and we are working on it.
id:
type: string
description: The incident update universal and unique identificator.
example: e50ad839-1b90-4955-b716-1c6edbda57cb
x-format:
guid: true
created_at:
type: string
format: date-time
description: The timestamp when the incident update was created.
example: '2022-09-08T19:41:28.658Z'
updated_at:
type:
- string
- 'null'
format: date-time
description: The timestamp when last the update.
example: '2022-09-08T20:41:28.658Z'
required:
- status
- description
- id
- created_at
- updated_at
Model4:
type: string
enum:
- Not Found
Model1:
type: string
enum:
- Forbidden
Model48:
type: object
properties:
name:
type: string
description: A name used to describe the incident.
example: Service outage
impact:
$ref: '#/components/schemas/impact'
startedAt:
type:
- string
- 'null'
format: date-time
description: Used to indicate when incident starts to be active.
example: '2022-11-25T12:34:56.000Z'
stoppedAt:
type:
- string
- 'null'
format: date-time
description: Used to indicate when incident turns to inactive.
example: '2022-11-25T13:34:56.000Z'
required:
- name
- impact
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 <a href="https://app.checklyhq.com/settings/user/api-keys" target="_blank">here</a>.</br>Your API key is like a password: <br>keep it secure!</br></br>Authentication to the API is performed using the Bearer auth method in the Authorization header and using the account ID.</br></br>For example, set <b>Authorization</b> header while using cURL: <code>curl -H "Authorization: Bearer [apiKey]" "X-Checkly-Account: [accountId]"</code></br>'