openapi: 3.2.0
info:
title: Checkly Public Status Pages V3 Subscribers 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: Status Pages V3 Subscribers
paths:
/v3/status-pages/{statusPageId}/subscribers:
get:
summary: List the subscribers of a v3 status page.
operationId: listStatusPageV3SubscribersPublic
description: List the email subscribers of a v3 status page, newest 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
- name: status
in: query
schema:
type: string
description: Only subscribers in this status.
enum:
- PENDING
- VERIFIED
description: Only subscribers in this status.
tags:
- Status Pages V3 Subscribers
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3SubscribersPaginatedResponse'
'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}/subscribers/bulk:
post:
summary: Subscribe multiple email addresses to a v3 status page.
operationId: bulkCreateStatusPageV3SubscribersPublic
description: Subscribe up to 100 email addresses at once. Each subscriber can be limited to specific components via config.subscribedComponents; addresses already subscribed are skipped.
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 Subscribers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3BulkSubscribersPayload'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStatusPageV3BulkSubscribersResponse'
'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}/subscribers/{subscriberId}:
delete:
summary: Delete a subscriber of a v3 status page.
operationId: deleteStatusPageV3SubscriberPublic
description: Remove a subscriber from a v3 status page.
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: subscriberId
in: path
schema:
type: string
x-format:
guid: true
required: true
tags:
- Status Pages V3 Subscribers
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'
components:
schemas:
attributes:
type: object
PublicStatusPageV3SubscriberConfig:
type: object
properties:
address:
type: string
description: The email address to subscribe.
x-format:
email: true
subscribedComponents:
$ref: '#/components/schemas/PublicStatusPageV3SubscribedComponents'
required:
- address
PublicStatusPageV3SubscribersEntries:
type: array
items:
$ref: '#/components/schemas/PublicStatusPageV3Subscriber'
PublicStatusPageV3SubscribedComponents:
type:
- array
- 'null'
description: Component IDs the subscriber receives incident emails for. A GROUP id includes its current children. Omit or null to subscribe to every component.
maxItems: 200
items:
type: string
x-format:
guid: true
PublicStatusPageV3Subscriber:
type: object
properties:
id:
type: string
x-format:
guid: true
type:
$ref: '#/components/schemas/Model95'
address:
type: string
x-format:
email: true
status:
$ref: '#/components/schemas/PublicStatusPageV3SubscriberStatus'
subscribedComponents:
$ref: '#/components/schemas/PublicStatusPageV3SubscribedComponents'
created_at:
type: string
format: date
updated_at:
type:
- string
- 'null'
format: date
required:
- id
- type
- address
- status
- subscribedComponents
- created_at
Model95:
type: string
enum:
- EMAIL
Model2:
type: string
enum:
- Too Many Requests
PublicStatusPageV3SubscriberInputs:
type: array
description: The subscribers to create (max 100). Addresses already subscribed are skipped.
minItems: 1
maxItems: 100
items:
$ref: '#/components/schemas/PublicStatusPageV3SubscriberInput'
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
PublicStatusPageV3BulkSubscribersResponse:
type: object
properties:
created:
type: integer
description: Subscribers created.
skipped:
type: integer
description: Subscribers skipped because the address was already subscribed.
status:
$ref: '#/components/schemas/Model97'
required:
- created
- skipped
- status
Model97:
type: string
description: The status the created subscribers got.
enum:
- PENDING
- VERIFIED
PublicStatusPageV3SubscriberStatus:
type: string
enum:
- PENDING
- VERIFIED
PublicStatusPageV3SubscribersPaginatedResponse:
type: object
properties:
length:
type: integer
entries:
$ref: '#/components/schemas/PublicStatusPageV3SubscribersEntries'
nextId:
type:
- string
- 'null'
required:
- length
- entries
PublicStatusPageV3SubscriberInput:
type: object
properties:
type:
$ref: '#/components/schemas/Model96'
config:
$ref: '#/components/schemas/PublicStatusPageV3SubscriberConfig'
required:
- type
- config
ForbiddenError:
type: object
properties:
statusCode:
type: number
enum:
- 403
error:
$ref: '#/components/schemas/Model1'
message:
type: string
example: Forbidden
required:
- statusCode
- error
Model96:
type: string
example: EMAIL
enum:
- EMAIL
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
PublicStatusPageV3BulkSubscribersPayload:
type: object
properties:
subscriptions:
$ref: '#/components/schemas/PublicStatusPageV3SubscriberInputs'
autoVerify:
type: boolean
description: Create the subscribers as verified without sending confirmation emails.
default: false
required:
- subscriptions
Model4:
type: string
enum:
- Not Found
Model1:
type: string
enum:
- Forbidden
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]"'