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 ` 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 `. '