Better Stack Incidents API

The Incidents API from Better Stack — create, acknowledge, escalate, resolve and reopen incidents, and read the incident timeline.

Business capability
Incident Response Management BC-4220.30

Operations 9

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /incidents List incidents · List incidents #
Ask an LLM
“Which incidents have been opened in my Better Stack account?”
“Can I page through my incident history in smaller batches?”
Tell an agent
List all of my incidents.
Show page {page} of incidents with {per_page} per page.
POST /incidents Open a new incident and alert the team · Create incident #
Ask an LLM
“How do I manually raise an incident and page my on-call team?”
“Can I choose whether a new incident alerts people by call, SMS, email or push?”
Tell an agent
Open an incident titled {summary} reported by {requester_email}.
Create an incident {summary} from {requester_email} with details: {description}.
GET /incidents/{id} Get an incident's details · Get incident #
Ask an LLM
“What is the current status of a specific incident?”
“Who reported a given incident and what was its summary?”
Tell an agent
Show me incident {id}.
Fetch the details of incident {id}.
DELETE /incidents/{id} Delete an incident · Remove incident #
Ask an LLM
“Can I permanently remove an incident that was opened by mistake?”
“Is deleting an incident different from resolving it?”
Tell an agent destructive · confirm first
Delete incident {id}.
Permanently remove incident {id} from the record.
GET /incidents/{id}/timeline View an incident's timeline of events · List incident timeline #
Ask an LLM
“What happened during an incident, step by step?”
“When was an incident acknowledged and escalated?”
Tell an agent
Show the timeline of incident {id}.
List every event recorded on incident {id} in order.
POST /incidents/{id}/acknowledge Acknowledge an incident · Acknowledge incident #
Ask an LLM
“How do I tell the team I'm working on an incident so alerts stop escalating?”
“Can I acknowledge an incident without resolving it?”
Tell an agent
Acknowledge incident {id}.
Mark incident {id} as acknowledged, I'm on it.
POST /incidents/{id}/resolve Resolve an incident · Resolve incident #
Ask an LLM
“Can I close out an incident once the problem is fixed?”
“What do I call to mark an outage as resolved?”
Tell an agent
Resolve incident {id}.
Mark incident {id} as fixed and resolved.
POST /incidents/{id}/reopen Reopen a resolved incident · Reopen incident #
Ask an LLM
“The problem came back. Can I reopen an incident I already resolved?”
“Is it possible to undo resolving an incident?”
Tell an agent
Reopen incident {id}.
Reopen resolved incident {id} because the issue has returned.
POST /incidents/{id}/escalate Escalate an incident to more responders · Escalate incident #
Ask an LLM
“How do I escalate an incident when nobody has responded?”
“Can I push an incident up the escalation chain right away?”
Tell an agent
Escalate incident {id}.
Escalate incident {id} to the next people on call now.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/betterstack:betterstack-incidents-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

betterstack-incidents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Better Stack Uptime Incidents 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: Incidents
paths:
  /incidents:
    servers:
    - url: https://uptime.betterstack.com/api/v3
    get:
      tags:
      - Incidents
      summary: List incidents
      operationId: listIncidents
      parameters:
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/Page'
      responses:
        '200':
          description: A page of incidents.
    post:
      tags:
      - Incidents
      summary: Create incident
      operationId: createIncident
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncidentCreate'
      responses:
        '201':
          description: Created incident.
  /incidents/{id}:
    servers:
    - url: https://uptime.betterstack.com/api/v3
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      tags:
      - Incidents
      summary: Get incident
      operationId: getIncident
      responses:
        '200':
          description: Incident.
    delete:
      tags:
      - Incidents
      summary: Remove incident
      operationId: deleteIncident
      responses:
        '204':
          description: Removed.
  /incidents/{id}/timeline:
    servers:
    - url: https://uptime.betterstack.com/api/v3
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      tags:
      - Incidents
      summary: List incident timeline
      operationId: getIncidentTimeline
      responses:
        '200':
          description: Timeline entries.
  /incidents/{id}/acknowledge:
    servers:
    - url: https://uptime.betterstack.com/api/v3
    parameters:
    - $ref: '#/components/parameters/Id'
    post:
      tags:
      - Incidents
      summary: Acknowledge incident
      operationId: acknowledgeIncident
      responses:
        '200':
          description: Acknowledged.
  /incidents/{id}/resolve:
    servers:
    - url: https://uptime.betterstack.com/api/v3
    parameters:
    - $ref: '#/components/parameters/Id'
    post:
      tags:
      - Incidents
      summary: Resolve incident
      operationId: resolveIncident
      responses:
        '200':
          description: Resolved.
  /incidents/{id}/reopen:
    servers:
    - url: https://uptime.betterstack.com/api/v3
    parameters:
    - $ref: '#/components/parameters/Id'
    post:
      tags:
      - Incidents
      summary: Reopen incident
      operationId: reopenIncident
      responses:
        '200':
          description: Reopened.
  /incidents/{id}/escalate:
    servers:
    - url: https://uptime.betterstack.com/api/v3
    parameters:
    - $ref: '#/components/parameters/Id'
    post:
      tags:
      - Incidents
      summary: Escalate incident
      operationId: escalateIncident
      responses:
        '200':
          description: Escalated.
components:
  parameters:
    Id:
      name: id
      in: path
      required: true
      schema:
        type: string
    PerPage:
      name: per_page
      in: query
      schema:
        type: integer
        minimum: 1
        maximum: 50
    Page:
      name: page
      in: query
      schema:
        type: integer
        minimum: 1
  schemas:
    IncidentCreate:
      type: object
      required:
      - summary
      - requester_email
      properties:
        summary:
          type: string
        description:
          type: string
        requester_email:
          type: string
          format: email
        call:
          type: boolean
        sms:
          type: boolean
        email:
          type: boolean
        push:
          type: boolean
        team_wait:
          type: integer
        policy_id:
          type: string
  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.

        '