openapi: 3.0.1 info: title: OpenStatus Check Page API description: REST API for the OpenStatus open-source synthetic monitoring and status-page platform. Manage HTTP, TCP, and DNS uptime monitors across 28 global regions, publish status pages, file status reports, work incidents, and run on-demand checks. Authenticate with an API key in the x-openstatus-key header. termsOfService: https://www.openstatus.dev/legal/terms contact: name: OpenStatus Support url: https://www.openstatus.dev email: ping@openstatus.dev license: name: AGPL-3.0 url: https://github.com/openstatusHQ/openstatus/blob/main/LICENSE version: '1.0' servers: - url: https://api.openstatus.dev/v1 description: OpenStatus Cloud API security: - apiKey: [] tags: - name: Page description: Public status pages and subscribers. paths: /page: get: operationId: getAllPages tags: - Page summary: List all status pages description: Returns all status pages for the authenticated workspace. responses: '200': description: A list of status pages. content: application/json: schema: type: array items: $ref: '#/components/schemas/Page' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createPage tags: - Page summary: Create a status page description: Creates a new public status page. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PageInput' responses: '200': description: The created status page. content: application/json: schema: $ref: '#/components/schemas/Page' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /page/{id}: parameters: - $ref: '#/components/parameters/IdParam' get: operationId: getPage tags: - Page summary: Get a status page description: Returns a single status page by its identifier. responses: '200': description: The requested status page. content: application/json: schema: $ref: '#/components/schemas/Page' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: operationId: updatePage tags: - Page summary: Update a status page description: Updates an existing status page. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PageInput' responses: '200': description: The updated status page. content: application/json: schema: $ref: '#/components/schemas/Page' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /page_subscriber: post: operationId: createPageSubscriber tags: - Page summary: Create a page subscriber description: Subscribes an email address to a status page's updates. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PageSubscriberInput' responses: '200': description: The created subscriber. content: application/json: schema: $ref: '#/components/schemas/PageSubscriber' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' components: schemas: PageInput: type: object required: - title - slug properties: title: type: string description: type: string slug: type: string customDomain: type: string icon: type: string passwordProtected: type: boolean monitors: type: array items: type: integer Page: type: object properties: id: type: integer title: type: string description: type: string slug: type: string description: Subdomain slug under openstatus.dev. customDomain: type: string icon: type: string passwordProtected: type: boolean accessType: type: string enum: - public - password - email-domain monitors: type: array items: type: integer Error: type: object properties: code: type: integer message: type: string PageSubscriberInput: type: object required: - email - pageId properties: email: type: string format: email pageId: type: integer PageSubscriber: type: object properties: id: type: integer email: type: string format: email pageId: type: integer acceptedAt: type: string format: date-time responses: NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: The API key is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: The request was malformed or failed validation. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: IdParam: name: id in: path required: true description: The resource identifier. schema: type: integer securitySchemes: apiKey: type: apiKey in: header name: x-openstatus-key description: OpenStatus API key, created in the workspace settings.