Better Stack Incidents API
Manage incidents and on-call alerting
Manage incidents and on-call alerting
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.