Squadcast Incidents API
Incident lifecycle and bulk operations
Incident lifecycle and bulk operations
openapi: 3.1.0
info:
title: Squadcast Public Authentication Incidents API
description: 'Public REST API for the Squadcast (SolarWinds Incidents Cloud) incident
response and on-call management platform. The API exposes incident
management operations — including bulk acknowledge/resolve, individual
incident lookup, reassignment, priority updates, exports, and request
status checks.
Authentication uses HTTP Bearer access tokens. Access tokens are
short-lived and exchanged from a long-lived refresh token via the
`/oauth/access-token` endpoint on the auth host. Send subsequent API
requests with `Authorization: Bearer <access_token>` against the regional
API host.
'
version: 3.0.0
contact:
name: Squadcast Support
url: https://support.squadcast.com/
servers:
- url: https://api.squadcast.com
description: US region API host
- url: https://api.eu.squadcast.com
description: EU region API host
- url: https://auth.squadcast.com
description: US region auth host (used only for /oauth/access-token)
- url: https://auth.eu.squadcast.com
description: EU region auth host (used only for /oauth/access-token)
security:
- bearerAuth: []
tags:
- name: Incidents
description: Incident lifecycle and bulk operations
paths:
/v3/incidents/{incidentID}:
get:
tags:
- Incidents
summary: Get incident by ID
description: Retrieve full details of a single incident by its identifier.
operationId: getIncidentById
parameters:
- $ref: '#/components/parameters/IncidentID'
responses:
'200':
description: Incident details
content:
application/json:
schema:
type: object
'404':
description: Incident not found
/v3/incidents/{incidentID}/acknowledge:
post:
tags:
- Incidents
summary: Acknowledge an incident
description: Acknowledge a single incident by ID.
operationId: acknowledgeIncident
parameters:
- $ref: '#/components/parameters/IncidentID'
responses:
'200':
description: Incident acknowledged
/v3/incidents/{incidentID}/resolve:
post:
tags:
- Incidents
summary: Resolve an incident
description: 'Resolve a single incident by ID. A `resolution_reason` object describing
why the incident is being resolved is required in the request body.
'
operationId: resolveIncident
parameters:
- $ref: '#/components/parameters/IncidentID'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- resolution_reason
properties:
resolution_reason:
type: object
required:
- message
properties:
message:
type: string
description: Free-form reason describing the resolution.
responses:
'200':
description: Incident resolved
/v3/incidents/{incidentID}/events:
get:
tags:
- Incidents
summary: List incident events
description: Retrieve the event timeline for an incident with pagination.
operationId: listIncidentEvents
parameters:
- $ref: '#/components/parameters/IncidentID'
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
- name: limit
in: query
required: false
description: Maximum number of events to return (max 10).
schema:
type: integer
maximum: 10
- name: sort
in: query
required: false
schema:
type: string
- name: deduped
in: query
required: false
schema:
type: boolean
responses:
'200':
description: Paginated list of incident events
/v3/incidents/{incidentID}/reassign:
post:
tags:
- Incidents
summary: Reassign an incident
description: 'Reassign an incident to a different user, escalation policy, or squad.
The `reassignTo` object requires both an `id` and a `type`.
'
operationId: reassignIncident
parameters:
- $ref: '#/components/parameters/IncidentID'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- reassignTo
properties:
reassignTo:
type: object
required:
- id
- type
properties:
id:
type: string
type:
type: string
enum:
- user
- escalationpolicy
- squad
responses:
'200':
description: Incident reassigned
/v3/incidents/{incidentID}/priority:
patch:
tags:
- Incidents
summary: Update a single incident's priority
operationId: updateIncidentPriority
parameters:
- $ref: '#/components/parameters/IncidentID'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- priority
properties:
priority:
type: string
responses:
'200':
description: Incident priority updated
/v3/incidents/acknowledge:
post:
tags:
- Incidents
summary: Bulk acknowledge incidents
description: 'Acknowledge up to 100 incidents in a single call. Rate limit: 10 calls
per minute.
'
operationId: bulkAcknowledgeIncidents
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkIncidentIds'
responses:
'200':
description: Incidents acknowledged
/v3/incidents/resolve:
post:
tags:
- Incidents
summary: Bulk resolve incidents
description: 'Resolve up to 100 incidents in a single call. Rate limit: 10 calls per
minute.
'
operationId: bulkResolveIncidents
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkIncidentIds'
responses:
'200':
description: Incidents resolved
/v3/incidents/priority:
put:
tags:
- Incidents
summary: Bulk update incident priority
operationId: bulkUpdateIncidentPriority
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- incident_ids
- priority
properties:
incident_ids:
type: array
items:
type: string
priority:
type: string
responses:
'200':
description: Priorities updated
/v3/incidents/export:
get:
tags:
- Incidents
summary: Export incidents
description: Export incident details as CSV or JSON.
operationId: exportIncidents
parameters:
- name: type
in: query
required: true
description: Export format (e.g. csv, json).
schema:
type: string
- name: start_time
in: query
required: true
schema:
type: string
format: date-time
- name: end_time
in: query
required: true
schema:
type: string
format: date-time
- name: owner_id
in: query
required: true
schema:
type: string
- name: status
in: query
required: false
schema:
type: string
- name: services
in: query
required: false
schema:
type: string
- name: sources
in: query
required: false
schema:
type: string
- name: assigned_to
in: query
required: false
schema:
type: string
- name: priority
in: query
required: false
schema:
type: string
- name: tags
in: query
required: false
schema:
type: string
- name: slo_affecting
in: query
required: false
schema:
type: boolean
responses:
'200':
description: Export payload
/v3/incidents/export/async:
post:
tags:
- Incidents
summary: Export incidents asynchronously
description: 'Kick off an async export job. Returns 202 and emails the download link
when the export completes.
'
operationId: exportIncidentsAsync
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- owner_id
- type
- start_time
- end_time
- incident_filters
properties:
owner_id:
type: string
type:
type: string
start_time:
type: string
format: date-time
end_time:
type: string
format: date-time
incident_filters:
type: object
responses:
'202':
description: Export job accepted
components:
schemas:
BulkIncidentIds:
type: object
required:
- incident_ids
properties:
incident_ids:
type: array
description: Up to 100 incident identifiers.
maxItems: 100
items:
type: string
parameters:
IncidentID:
name: incidentID
in: path
required: true
description: Unique identifier of the incident.
schema:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'Bearer access token obtained via the `/oauth/access-token` endpoint on
the auth host. Send as `Authorization: Bearer <access_token>`.
'