Squadcast Incidents API

Incident lifecycle and bulk operations

OpenAPI Specification

squadcast-incidents-api-openapi.yml Raw ↑
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>`.

        '