Better Stack Incidents API

Manage incidents and on-call alerting

OpenAPI Specification

better-stack-incidents-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Better Stack Escalation Policies Incidents API
  description: Better Stack is a comprehensive infrastructure monitoring and observability platform combining uptime monitoring, log management, incident management, and status pages. The API covers both the Uptime (on-call, monitors, heartbeats, status pages) and Telemetry (logs, metrics, sources, dashboards, alerts) product areas.
  version: v2
  contact:
    name: Better Stack Support
    url: https://betterstack.com/docs/
  x-generated-from: documentation
servers:
- url: https://uptime.betterstack.com/api/v2
  description: Better Stack Uptime API v2
- url: https://uptime.betterstack.com/api/v3
  description: Better Stack Uptime API v3 (incidents, policies)
- url: https://betterstack.com/api/v2
  description: Better Stack Telemetry API v2
security:
- bearerAuth: []
tags:
- name: Incidents
  description: Manage incidents and on-call alerting
paths:
  /incidents:
    get:
      operationId: listIncidents
      summary: Better Stack List Incidents
      description: Returns a paginated list of all incidents. Uses API v3.
      tags:
      - Incidents
      parameters:
      - name: team_name
        in: query
        description: Filter incidents by team name when using a global API token.
        required: false
        schema:
          type: string
        example: my-team
      - name: from
        in: query
        description: Filter incidents starting from this date (YYYY-MM-DD).
        required: false
        schema:
          type: string
          format: date
        example: '2026-01-01'
      - name: to
        in: query
        description: Filter incidents up to this date (YYYY-MM-DD).
        required: false
        schema:
          type: string
          format: date
        example: '2026-04-19'
      - name: monitor_id
        in: query
        description: Filter incidents by monitor ID.
        required: false
        schema:
          type: integer
        example: 500123
      - name: heartbeat_id
        in: query
        description: Filter incidents by heartbeat ID.
        required: false
        schema:
          type: integer
        example: 100200
      - name: resolved
        in: query
        description: Filter by resolved status.
        required: false
        schema:
          type: boolean
        example: false
      - name: acknowledged
        in: query
        description: Filter by acknowledged status.
        required: false
        schema:
          type: boolean
        example: false
      responses:
        '200':
          description: Paginated list of incidents.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentListResponse'
              examples:
                ListIncidents200Example:
                  summary: Default listIncidents 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: '900100'
                      type: incident
                      attributes:
                        name: Production API
                        url: https://example.com
                        http_method: GET
                        cause: Connection timeout
                        started_at: '2026-04-18T14:00:00Z'
                        acknowledged_at: '2026-04-18T14:05:00Z'
                        resolved_at: '2026-04-18T14:15:00Z'
                        status: Resolved
                        team_name: my-team
                        regions:
                        - us
                    pagination:
                      first: https://uptime.betterstack.com/api/v3/incidents?page=1
                      last: https://uptime.betterstack.com/api/v3/incidents?page=1
                      prev: null
                      next: null
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createIncident
      summary: Better Stack Create Incident
      description: Creates a new manual incident.
      tags:
      - Incidents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncidentCreateRequest'
            examples:
              CreateIncidentRequestExample:
                summary: Default createIncident request
                x-microcks-default: true
                value:
                  name: Database degraded
                  email: true
                  sms: false
                  call: false
                  push: true
      responses:
        '201':
          description: Incident created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentSingleResponse'
              examples:
                CreateIncident201Example:
                  summary: Default createIncident 201 response
                  x-microcks-default: true
                  value:
                    data:
                      id: '900101'
                      type: incident
                      attributes:
                        name: Database degraded
                        status: Started
                        started_at: '2026-04-19T10:00:00Z'
                        acknowledged_at: null
                        resolved_at: null
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /incidents/{id}:
    get:
      operationId: getIncident
      summary: Better Stack Get Incident
      description: Returns a single incident by ID.
      tags:
      - Incidents
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the incident.
        schema:
          type: string
        example: '900100'
      responses:
        '200':
          description: Incident details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentSingleResponse'
              examples:
                GetIncident200Example:
                  summary: Default getIncident 200 response
                  x-microcks-default: true
                  value:
                    data:
                      id: '900100'
                      type: incident
                      attributes:
                        name: Production API
                        url: https://example.com
                        http_method: GET
                        cause: Connection timeout
                        started_at: '2026-04-18T14:00:00Z'
                        acknowledged_at: '2026-04-18T14:05:00Z'
                        resolved_at: '2026-04-18T14:15:00Z'
                        status: Resolved
        '404':
          description: Incident not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteIncident
      summary: Better Stack Delete Incident
      description: Deletes an existing incident.
      tags:
      - Incidents
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the incident.
        schema:
          type: string
        example: '900100'
      responses:
        '204':
          description: Incident deleted successfully.
        '404':
          description: Incident not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /incidents/{id}/acknowledge:
    post:
      operationId: acknowledgeIncident
      summary: Better Stack Acknowledge Incident
      description: Acknowledges an active incident.
      tags:
      - Incidents
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the incident.
        schema:
          type: string
        example: '900100'
      responses:
        '200':
          description: Incident acknowledged.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentSingleResponse'
              examples:
                AcknowledgeIncident200Example:
                  summary: Default acknowledgeIncident 200 response
                  x-microcks-default: true
                  value:
                    data:
                      id: '900100'
                      type: incident
                      attributes:
                        status: Started
                        acknowledged_at: '2026-04-19T10:01:00Z'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /incidents/{id}/resolve:
    post:
      operationId: resolveIncident
      summary: Better Stack Resolve Incident
      description: Resolves an active incident.
      tags:
      - Incidents
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the incident.
        schema:
          type: string
        example: '900100'
      responses:
        '200':
          description: Incident resolved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentSingleResponse'
              examples:
                ResolveIncident200Example:
                  summary: Default resolveIncident 200 response
                  x-microcks-default: true
                  value:
                    data:
                      id: '900100'
                      type: incident
                      attributes:
                        status: Resolved
                        resolved_at: '2026-04-19T10:05:00Z'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    Pagination:
      title: Pagination
      description: Pagination links for list responses following JSON:API specification.
      type: object
      properties:
        first:
          type: string
          format: uri
          description: URL of the first page.
          example: https://uptime.betterstack.com/api/v2/monitors?page=1
        last:
          type: string
          format: uri
          description: URL of the last page.
          example: https://uptime.betterstack.com/api/v2/monitors?page=5
        prev:
          type: string
          format: uri
          nullable: true
          description: URL of the previous page, or null.
          example: null
        next:
          type: string
          format: uri
          nullable: true
          description: URL of the next page, or null.
          example: https://uptime.betterstack.com/api/v2/monitors?page=2
    IncidentListResponse:
      title: Incident List Response
      description: Paginated list of incidents.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/IncidentObject'
        pagination:
          $ref: '#/components/schemas/Pagination'
    IncidentSingleResponse:
      title: Incident Single Response
      description: Single incident response.
      type: object
      properties:
        data:
          $ref: '#/components/schemas/IncidentObject'
    ErrorResponse:
      title: Error Response
      description: Standard error response.
      type: object
      properties:
        errors:
          type: array
          description: List of error details.
          items:
            type: object
            properties:
              title:
                type: string
                description: Human-readable error title.
                example: Unauthorized
              detail:
                type: string
                description: Detailed error message.
                example: Invalid API token
    IncidentObject:
      title: Incident Object
      description: A single incident resource.
      type: object
      properties:
        id:
          type: string
          description: Unique identifier.
          example: '900100'
        type:
          type: string
          description: Resource type.
          example: incident
        attributes:
          $ref: '#/components/schemas/IncidentAttributes'
    IncidentCreateRequest:
      title: Incident Create Request
      description: Request body for creating a manual incident.
      type: object
      required:
      - name
      properties:
        name:
          type: string
          description: Name or description of the incident.
          example: Database degraded
        email:
          type: boolean
          description: Alert via email.
          example: true
        sms:
          type: boolean
          description: Alert via SMS.
          example: false
        call:
          type: boolean
          description: Alert via phone call.
          example: false
        push:
          type: boolean
          description: Alert via push notification.
          example: true
    IncidentAttributes:
      title: Incident Attributes
      description: Attributes of an incident.
      type: object
      properties:
        name:
          type: string
          description: Name or subject of the incident.
          example: Production API
        url:
          type: string
          format: uri
          nullable: true
          description: URL of the affected monitor.
          example: https://example.com
        http_method:
          type: string
          nullable: true
          description: HTTP method of the affected check.
          example: GET
        cause:
          type: string
          nullable: true
          description: Root cause description of the incident.
          example: Connection timeout
        started_at:
          type: string
          format: date-time
          description: When the incident started.
          example: '2026-04-18T14:00:00Z'
        acknowledged_at:
          type: string
          format: date-time
          nullable: true
          description: When the incident was acknowledged.
          example: '2026-04-18T14:05:00Z'
        resolved_at:
          type: string
          format: date-time
          nullable: true
          description: When the incident was resolved.
          example: '2026-04-18T14:15:00Z'
        status:
          type: string
          description: Current incident status.
          enum:
          - Started
          - Resolved
          example: Resolved
        team_name:
          type: string
          description: Team that owns the incident.
          example: my-team
        regions:
          type: array
          items:
            type: string
          description: Regions where the incident was detected.
          example:
          - us
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication. Use a global API token or a team-scoped Uptime API token obtained from Better Stack Settings → API tokens.