openapi: 3.1.0 info: title: Better Stack Uptime Heartbeats Status Pages API description: 'Programmatic access to Better Stack''s uptime monitoring, heartbeat monitoring, incident management, status pages, escalation policies, and on-call surfaces. Responses follow the JSON:API specification. This document is a best-effort reconstruction from Better Stack''s public documentation and is not exhaustive. Refer to https://betterstack.com/docs/uptime/api/ for authoritative reference. ' version: 2.0.0 contact: name: Better Stack url: https://betterstack.com/docs/uptime/api/getting-started/ license: name: Proprietary servers: - url: https://uptime.betterstack.com/api/v2 description: Better Stack Uptime API (v2 surface — monitors, heartbeats, status pages, on-call) - url: https://uptime.betterstack.com/api/v3 description: Better Stack Uptime API (v3 surface — incidents) security: - bearerAuth: [] tags: - name: Status Pages paths: /status-pages: get: tags: - Status Pages summary: List status pages operationId: listStatusPages parameters: - $ref: '#/components/parameters/PerPage' - $ref: '#/components/parameters/Page' responses: '200': description: A page of status pages. post: tags: - Status Pages summary: Create status page operationId: createStatusPage requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StatusPageCreate' responses: '201': description: Created status page. /status-pages/{id}: parameters: - $ref: '#/components/parameters/Id' get: tags: - Status Pages summary: Get status page operationId: getStatusPage responses: '200': description: Status page. patch: tags: - Status Pages summary: Update status page operationId: updateStatusPage requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StatusPageCreate' responses: '200': description: Updated status page. delete: tags: - Status Pages summary: Remove status page operationId: deleteStatusPage responses: '204': description: Removed. /status-pages/group/{id}: parameters: - $ref: '#/components/parameters/Id' get: tags: - Status Pages summary: List status pages in group operationId: listStatusPagesInGroup responses: '200': description: Status pages in the group. components: parameters: PerPage: name: per_page in: query schema: type: integer minimum: 1 maximum: 50 Id: name: id in: path required: true schema: type: string Page: name: page in: query schema: type: integer minimum: 1 schemas: StatusPageCreate: type: object required: - company_name - company_url - subdomain properties: company_name: type: string company_url: type: string format: uri contact_url: type: string format: uri logo_url: type: string format: uri timezone: type: string subdomain: type: string custom_domain: type: string announcement: type: string announcement_embed_visible: type: boolean history: type: integer password_enabled: type: boolean password: type: string google_analytics_id: type: string min_incident_length: type: integer subscribable: type: boolean hide_from_search_engines: type: boolean securitySchemes: bearerAuth: type: http scheme: bearer description: 'Bearer token. Provide either a Global API Token (account-wide) or a team-scoped Uptime API Token. Issued from Better Stack → API tokens. '