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]"
'