Checkly Status Pages V3 Incidents API
The Status Pages V3 Incidents API from Checkly — 11 operation(s) for status pages v3 incidents.
The Status Pages V3 Incidents API from Checkly — 11 operation(s) for status pages v3 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-status-pages-v3-incidents-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 Status Pages V3 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: Status Pages V3 Incidents
paths:
/v3/status-pages/{statusPageId}/incidents:
get:
summary: List the incidents of a v3 status page.
operationId: listStatusPageV3IncidentsPublic
description: List the incidents of a v3 status page, most recently updated first.
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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: limit
in: query
schema:
type: integer
default: 20
minimum: 1
maximum: 100
- name: nextId
in: query
schema:
type: string
tags:
- Status Pages V3 Incidents
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3IncidentsPaginatedResponse'
'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'
post:
summary: Open an incident on a v3 status page.
operationId: createStatusPageV3IncidentPublic
description: Open an incident on a v3 status page with its first update and the current status of the impacted components.
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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Incidents
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3IncidentCreate'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3Incident'
'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'
/v3/status-pages/{statusPageId}/incidents/{incidentId}:
delete:
summary: Delete an incident of a v3 status page.
operationId: deleteStatusPageV3IncidentPublic
description: Permanently remove 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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Incidents
responses:
'204':
description: No Content
content:
application/json:
schema:
type: string
'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'
get:
summary: Retrieve an incident of a v3 status page.
operationId: getStatusPageV3IncidentPublic
description: Get an incident of a v3 status page, including its updates and component impacts.
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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Incidents
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3Incident'
'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 of a v3 status page.
operationId: updateStatusPageV3IncidentPublic
description: Rename an incident and/or reconcile the current status of its components. Post progress through the incident-updates endpoints.
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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Incidents
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3IncidentMutation'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3Incident'
'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'
/v3/status-pages/{statusPageId}/incidents/{incidentId}/component-impacts:
put:
summary: Replace an incident's component impact timeline.
operationId: replaceStatusPageV3IncidentComponentImpactsPublic
description: Replace the full impact timeline of an incident with explicit per-component windows (retroactive editing).
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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Incidents
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3ReplaceComponentImpacts'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3Incident'
'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'
/v3/status-pages/{statusPageId}/incidents/{incidentId}/incident-updates:
get:
summary: List the updates of an incident.
operationId: listStatusPageV3IncidentUpdatesPublic
description: List the updates of an incident, newest first (at most 100).
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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Incidents
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3IncidentUpdates'
'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'
post:
summary: Post an update to an incident.
operationId: createStatusPageV3IncidentUpdatePublic
description: Post an update to an incident. A RESOLVED update closes the 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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Incidents
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3IncidentUpdateMutation'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3IncidentUpdate'
'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'
/v3/status-pages/{statusPageId}/incidents/{incidentId}/incident-updates/{incidentUpdateId}:
delete:
summary: Delete an incident update.
operationId: deleteStatusPageV3IncidentUpdatePublic
description: Delete an incident update. The last remaining update cannot be deleted.
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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentUpdateId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Incidents
responses:
'204':
description: No Content
content:
application/json:
schema:
type: string
'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'
get:
summary: Retrieve an incident update.
operationId: getStatusPageV3IncidentUpdatePublic
description: Get a single incident update.
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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentUpdateId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Incidents
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3IncidentUpdate'
'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: Edit an incident update.
operationId: updateStatusPageV3IncidentUpdatePublic
description: Edit an incident update.
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: statusPageId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentId
in: path
schema:
type: string
x-format:
guid: true
required: true
- name: incidentUpdateId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Incidents
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3IncidentUpdateMutation'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3IncidentUpdate'
'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
PublicStatusPageV3IncidentUpdate:
type: object
properties:
description:
type: string
status:
$ref: '#/components/schemas/PublicStatusPageV3IncidentStatus'
publicIncidentUpdateDate:
type: string
format: date-time
description: When the update is shown as posted. Defaults to now; cannot predate the incident.
default: '2026-08-29T08:22:09.939Z'
notifySubscribers:
type: boolean
default: false
id:
type: string
x-format:
guid: true
created_at:
type: string
format: date
required:
- description
- status
- id
- created_at
PublicStatusPageV3Incident:
type: object
properties:
id:
type: string
x-format:
guid: true
statusPageId:
type: string
x-format:
guid: true
name:
type: string
lastUpdateStatus:
$ref: '#/components/schemas/PublicStatusPageV3IncidentStatus'
duration:
type:
- integer
- 'null'
description: Seconds from the first update to the resolving update; null while ongoing.
componentImpacts:
$ref: '#/components/schemas/PublicStatusPageV3ComponentImpactsResponse'
created_at:
type: string
format: date
updated_at:
type:
- string
- 'null'
format: date
incidentUpdates:
$ref: '#/components/schemas/PublicStatusPageV3IncidentUpdatesResponse'
required:
- id
- statusPageId
- name
- lastUpdateStatus
- created_at
- incidentUpdates
Model2:
type: string
enum:
- Too Many Requests
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
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
PublicStatusPageV3ComponentImpact:
type: object
properties:
componentId:
type: string
x-format:
guid: true
status:
$ref: '#/components/schemas/Model93'
required:
- componentId
- status
PublicStatusPageV3IncidentListItem:
type: object
properties:
id:
type: string
x-format:
guid: true
statusPageId:
type: string
x-format:
guid: true
name:
type: string
lastUpdateStatus:
$ref: '#/components/schemas/PublicStatusPageV3IncidentStatus'
duration:
type:
- integer
- 'null'
description: Seconds from the first update to the resolving update; null while ongoing.
componentImpacts:
$ref: '#/components/schemas/PublicStatusPageV3ComponentImpactsResponse'
created_at:
type: string
format: date
updated_at:
type:
- string
- 'null'
format: date
required:
- id
- statusPageId
- name
- lastUpdateStatus
- created_at
Model93:
type: string
enum:
- OPERATIONAL
- UNDER_MAINTENANCE
- DEGRADED_PERFORMANCE
- PARTIAL_OUTAGE
- MAJOR_OUTAGE
PublicStatusPageV3ReplaceComponentImpacts:
type: object
properties:
componentImpacts:
$ref: '#/components/schemas/PublicStatusPageV3ComponentImpactWindows'
required:
- componentImpacts
PublicStatusPageV3ComponentImpactWindow:
type: object
properties:
componentId:
type: string
x-format:
guid: true
status:
$ref: '#/components/schemas/Model94'
startedAt:
type: string
format: date-time
endedAt:
type:
- string
- 'null'
format: date-time
description: null keeps the window open (active incidents only).
required:
- componentId
- status
- startedAt
- endedAt
PublicStatusPageV3ComponentImpactWindows:
type: array
items:
$ref: '#/components/schemas/PublicStatusPageV3ComponentImpactWindow'
PublicStatusPageV3IncidentsEntries:
type: array
items:
$ref: '#/components/schemas/PublicStatusPageV3IncidentListItem'
PublicStatusPageV3IncidentCreate:
type: object
properties:
name:
type: string
maxLength: 255
componentImpacts:
$ref: '#/components/schemas/PublicStatusPageV3ComponentImpacts'
incidentUpdates:
$ref: '#/components/schemas/PublicStatusPageV3IncidentCreateUpdates'
required:
- name
- incidentUpdates
PublicStatusPageV3IncidentMutation:
type: object
properties:
name:
type: string
maxLength: 255
componentImpacts:
$ref: '#/components/schemas/PublicStatusPageV3ComponentImpacts'
required:
- name
PublicStatusPageV3IncidentUpdatesResponse:
type: array
items:
$ref: '#/components/schemas/PublicStatusPageV3IncidentUpdate'
ForbiddenError:
type: object
properties:
statusCode:
type: number
enum:
- 403
error:
$ref: '#/components/schemas/Model1'
message:
type: string
example: Forbidden
required:
- statusCode
- error
PublicStatusPageV3ComponentImpacts:
type: array
description: The current status of each impacted component. Omitted components are OPERATIONAL.
items:
$ref: '#/components/schemas/PublicStatusPageV3ComponentImpact'
PublicStatusPageV3ComponentImpactResponse:
type: object
properties:
componentId:
type: string
x-format:
guid: true
status:
$ref: '#/components/schemas/Model92'
startedAt:
type: string
format: date
endedAt:
type:
- string
- 'null'
format: date
required:
- componentId
- status
- startedAt
PublicStatusPageV3IncidentUpdateMutation:
type: object
properties:
description:
type: string
status:
$ref: '#/components/schemas/PublicStatusPageV3IncidentStatus'
publicIncidentUpdateDate:
type: string
format: date-time
description: When the update is shown as posted. Defaults to now; cannot predate the incident.
default: '2026-08-29T08:22:09.928Z'
notifySubscribers:
type: boolean
default: false
required:
- description
- status
Model94:
type: string
enum:
- UNDER_MAINTENANCE
- DEGRADED_PERFORMANCE
- PARTIAL_OUTAGE
- MAJOR_OUTAGE
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
PublicStatusPageV3IncidentsPaginatedResponse:
type: object
properties:
length:
type: integer
entries:
$ref: '#/components/schemas/PublicStatusPageV3IncidentsEntries'
nextId:
type:
- string
- 'null'
required:
- length
- entries
PublicStatusPageV3ComponentImpactsResponse:
type: array
items:
$ref: '#/components/schemas/PublicStatusPageV3ComponentImpactResponse'
Model4:
type: string
enum:
- Not Found
Model1:
type: string
enum:
- Forbidden
PublicStatusPageV3IncidentStatus:
type: string
enum:
- INVESTIGATING
- IDENTIFIED
- MONITORING
- RESOLVED
Model92:
type: string
enum:
- OPERATIONAL
- UNDER_MAINTENANCE
- DEGRADED_PERFORMANCE
- PARTIAL_OUTAGE
- MAJOR_OUTAGE
PublicStatusPageV3IncidentCreateUpdates:
type: array
description: 'Exactly one update: the one that opens the incident.'
x-constraint:
length: 1
items:
$ref: '#/components/schemas/PublicStatusPageV3IncidentUpdateMutation'
PublicStatusPageV3IncidentUpdates:
type: array
items:
$ref: '#/components/schemas/PublicStatusPageV3IncidentUpdate'
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>'