openapi: 3.1.0 info: title: Better Stack Uptime Heartbeats 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: Heartbeats paths: /heartbeats: get: tags: - Heartbeats summary: List heartbeats operationId: listHeartbeats parameters: - $ref: '#/components/parameters/PerPage' - $ref: '#/components/parameters/Page' responses: '200': description: A page of heartbeats. post: tags: - Heartbeats summary: Create heartbeat operationId: createHeartbeat requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/HeartbeatCreate' responses: '201': description: Created heartbeat. /heartbeats/{id}: parameters: - $ref: '#/components/parameters/Id' get: tags: - Heartbeats summary: Get heartbeat operationId: getHeartbeat responses: '200': description: Heartbeat. patch: tags: - Heartbeats summary: Update heartbeat operationId: updateHeartbeat requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/HeartbeatCreate' responses: '200': description: Updated heartbeat. delete: tags: - Heartbeats summary: Remove heartbeat operationId: deleteHeartbeat responses: '204': description: Removed. /heartbeats/{id}/availability: parameters: - $ref: '#/components/parameters/Id' get: tags: - Heartbeats summary: Heartbeat availability operationId: getHeartbeatAvailability responses: '200': description: Availability summary. components: schemas: HeartbeatCreate: type: object required: - name - period properties: name: type: string period: type: integer description: Expected interval in seconds. grace: type: integer description: Grace period in seconds. call: type: boolean sms: type: boolean email: type: boolean push: type: boolean team_wait: type: integer paused: type: boolean policy_id: type: string 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 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. '