openapi: 3.0.3 info: title: Spike.sh Alert Rules Incidents API description: 'REST API for managing incidents, on-call schedules, escalation policies, services, integrations, and alerting rules within the Spike.sh incident management platform. Spike.sh provides phone, SMS, WhatsApp, Telegram, Slack, and Microsoft Teams notifications, along with status pages, war rooms, and 80+ integrations. ' version: 1.0.0 contact: name: Spike.sh Support url: https://docs.spike.sh termsOfService: https://spike.sh/terms servers: - url: https://api.spike.sh description: Main API server - url: https://statuspage.spike.sh description: Status page API server security: - ApiKeyAuth: [] tags: - name: Incidents description: Incident management endpoints paths: /incidents: get: tags: - Incidents summary: Fetch incidents description: Get all incidents for the specified team. operationId: getIncidents parameters: - $ref: '#/components/parameters/TeamIdHeader' responses: '200': description: Successful response content: application/json: schema: type: object '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/all-occurrences: get: tags: - Incidents summary: Get all incident occurrences description: Retrieve all incident occurrences within a specified time range. operationId: getAllIncidentOccurrences parameters: - name: start in: query required: true schema: type: string format: date-time description: Start of the time range (ISO 8601) - name: end in: query required: true schema: type: string format: date-time description: End of the time range (ISO 8601) - name: teams in: query schema: type: string - name: status in: query schema: type: string - name: service in: query schema: type: string - name: integration in: query schema: type: string - name: page in: query schema: type: integer - name: perPage in: query schema: type: integer responses: '200': description: Successful response content: application/json: schema: type: object '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/create: post: tags: - Incidents summary: Create incident description: Manually create a new incident. operationId: createIncident parameters: - $ref: '#/components/parameters/TeamIdHeader' requestBody: required: true content: application/json: schema: type: object required: - title properties: title: type: string description: Incident title metadata: type: object description: Additional incident metadata escalation: type: string description: Escalation policy ID integration: type: string description: Integration ID priority: type: string enum: - p1 - p2 - p3 - p4 - p5 severity: type: string enum: - sev1 - sev2 - sev3 responses: '200': description: Successful response content: application/json: schema: type: object '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/{counterId}: get: tags: - Incidents summary: Fetch incident info description: Get details for a specific incident. operationId: getIncident parameters: - name: counterId in: path required: true schema: type: string - $ref: '#/components/parameters/TeamIdHeader' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Incident' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/{counterId}/get-previous-incidents: get: tags: - Incidents summary: Fetch previous occurrences description: Get all previous occurrences of an incident. operationId: getIncidentPreviousOccurrences parameters: - name: counterId in: path required: true schema: type: string - $ref: '#/components/parameters/TeamIdHeader' responses: '200': description: Successful response content: application/json: schema: type: object '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/{counterId}/previous-incident/{_id}: get: tags: - Incidents summary: Fetch single previous occurrence description: Get details for a single previous occurrence of an incident. operationId: getIncidentSinglePreviousOccurrence parameters: - name: counterId in: path required: true schema: type: string - name: _id in: path required: true schema: type: string - $ref: '#/components/parameters/TeamIdHeader' responses: '200': description: Successful response content: application/json: schema: type: object '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/{counterId}/incident-context: get: tags: - Incidents summary: Fetch incident context description: Get the context for a specific incident. operationId: getIncidentContext parameters: - name: counterId in: path required: true schema: type: string - $ref: '#/components/parameters/TeamIdHeader' responses: '200': description: Successful response content: application/json: schema: type: object '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/{counter_id}/activity-log: get: tags: - Incidents summary: Fetch activity log description: Get the activity log for a specific incident. operationId: getIncidentActivityLog parameters: - name: counter_id in: path required: true schema: type: string - $ref: '#/components/parameters/TeamIdHeader' responses: '200': description: Successful response content: application/json: schema: type: object '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/acknowledged: get: tags: - Incidents summary: Fetch acknowledged incidents description: Get all acknowledged incidents for the team. operationId: getAcknowledgedIncidents parameters: - $ref: '#/components/parameters/TeamIdHeader' responses: '200': description: Successful response content: application/json: schema: type: object '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/triggered: get: tags: - Incidents summary: Fetch triggered incidents description: Get all triggered (unacknowledged) incidents for the team. operationId: getTriggeredIncidents parameters: - $ref: '#/components/parameters/TeamIdHeader' responses: '200': description: Successful response content: application/json: schema: type: object '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/assigned-to-user: get: tags: - Incidents summary: Fetch user-assigned incidents description: Get all incidents assigned to a specific user. operationId: getIncidentsAssignedToUser parameters: - $ref: '#/components/parameters/TeamIdHeader' - name: id in: query required: true schema: type: string description: User ID responses: '200': description: Successful response content: application/json: schema: type: object '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' /incidents/overview: get: tags: - Incidents summary: Fetch incident overview description: Get an overview of incidents. operationId: getIncidentOverview parameters: - $ref: '#/components/parameters/TeamIdHeader' - name: id in: query required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' components: parameters: TeamIdHeader: name: x-team-id in: header required: true schema: type: string description: Team identifier. Use GET /teams to retrieve your team ID. schemas: Error: type: object properties: message: type: string description: Error message describing the problem error: type: string description: Error type or code Incident: type: object properties: _id: type: string description: Unique incident identifier counterId: type: string description: Human-readable incident counter ID title: type: string description: Incident title status: type: string enum: - triggered - acknowledged - resolved description: Current incident status priority: type: string enum: - p1 - p2 - p3 - p4 - p5 description: Incident priority level severity: type: string enum: - sev1 - sev2 - sev3 description: Incident severity level metadata: type: object description: Additional incident metadata escalation: type: string description: Escalation policy ID integration: type: string description: Integration ID createdAt: type: string format: date-time updatedAt: type: string format: date-time securitySchemes: ApiKeyAuth: type: apiKey in: header name: x-api-key description: API key generated from https://app.spike.sh/api