openapi: 3.0.1 info: title: ilert REST Alert Actions Incidents API description: "# Introduction\nThe ilert API is a [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) API and provides programmatic access to entities in ilert and lets you easily integrate ilert with 3rd party tools. If you are looking to develop an inbound integration (e.g. for a monitoring tool), please use our [Events API](#tag/events). \n\nThe API supports the JSON content type for requests and responses. The response content type is requested via the HTTP Accept header (`application/json`). All resources are accessible via https and are located at `api.ilert.com/api`. \n\n You may download ilert's latest [OpenAPI.json {...} here](https://api.ilert.com/api-docs/openapi.json).\n\n If you are looking for a classic Swagger-UI view you may also open [this link](https://api.ilert.com/api-docs/swagger-ui). \n\n ## Authentication\nThe REST API accepts bearer API tokens. Each user may create API keys using the ilert web application. Note: Make sure to send the `Bearer ` prefix e.g. `Bearer APIKEY` when sending api key requests. By default, access to all resources (using any method) requires the client to be authenticated.\n\n ## Team Context\n When using API tokens, the currently selected team context of the user will not be taken into account, i.e. list results will always return all entities to which the user has a view permission. When using basic auth credentials the currently selected team context of the user will be used to filter resource results. The context may be overwritten for API key calls using the `team-context` HTTP header. Specifying `0` for ALL teams, `-1` for MY teams or a specific team id e.g. `team-context=901` to fetch results for a certain team. \n\n ## Errors\nilert uses HTTP response codes to indicate success or failure of an API request. Codes in the 2xx range indicate success, codes in the 4xx range indicate a client error (e.g. a missing required parameter) and codes in the 5xx range indicate an error with ilert's servers. In case of an error, the response body contains the following information:\n\n Attribute | Description \n ------------- | ------------- \n status | the corresponsing HTTP status code \n message | a human readable description of the error \n code | error code, used to identify error type \n\n ## API Versioning\nChanges to our API are always backwards-compatible. To get more information about our API versioning and historical changes, please take a look here." version: v2.2026.5-r.3 x-logo: url: ./ilert-logo-spaced.png backgroundColor: '#fafafa' altText: ilert documentation logo servers: - url: /api security: - apiKey: [] tags: - name: Incidents paths: /incidents: get: tags: - Incidents summary: Get incidents. parameters: - name: start-index in: query description: an integer specifying the starting point (beginning with 0) when paging through a list of entities schema: type: integer format: int32 default: 0 - name: max-results in: query description: 'the maximum number of results when paging through a list of incidents. (Note: when using ?include maximum is reduced to 25)' schema: maximum: 100 type: integer format: int32 default: 10 - name: include in: query description: Describes optional properties that should be included in the response. You may declare multiple. (subscribed) style: form explode: true schema: type: array items: type: string enum: - subscribed - name: states in: query description: state of the alert style: form explode: true schema: type: array items: type: string enum: - INVESTIGATING - IDENTIFIED - MONITORING - RESOLVED - name: services in: query description: service IDs of the incident's affected services style: form explode: true schema: type: array items: type: integer format: int64 - name: from in: query description: from date, ISO-UTC e.g. 2021-05-25T21:24:56.771Z, based on reportTime schema: type: string format: date-time - name: until in: query description: until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z, based on reportTime schema: type: string format: date-time responses: '200': description: The incidents content: application/json: schema: type: array items: $ref: '#/components/schemas/Incident' post: tags: - Incidents summary: Create a new incident. description: 'Note: depending on affected services this will publish notifications to subscribers. Use /publish-info to forecast notifications.' requestBody: description: the incident content: application/json: schema: $ref: '#/components/schemas/IncidentNoIncludes' required: true responses: '200': description: The newly created incident content: application/json: schema: $ref: '#/components/schemas/IncidentNoIncludes' x-codegen-request-body-name: incident /incidents/publish-info: post: tags: - Incidents summary: Forecast the affected subscribers and status pages description: Forecast the affected subscribers and status pages as well as notifications that would be send out due to created or update incident. requestBody: description: the incident content: application/json: schema: $ref: '#/components/schemas/IncidentNoIncludes' required: true responses: '200': description: The forecast for the provided incident content: application/json: schema: type: object properties: statusPagesInfo: $ref: '#/components/schemas/UIMenuItem' privateStatusPages: type: number readOnly: true publicStatusPages: type: number readOnly: true privateSubscribers: type: number readOnly: true publicSubscribers: type: number readOnly: true x-codegen-request-body-name: incident /incidents/{id}: get: tags: - Incidents summary: Get a specific incident. description: 'Note: returns an ETag header that can be send to the PUT /incidents/{id} resource as If-Match header to return a 412 Error in case any related resources e.g. Services or Incident have been updated in the mean time.' parameters: - name: id in: path description: entity ID required: true schema: type: number - name: include in: query description: Describes optional properties that should be included in the response. You may declare multiple. (subscribed, affectedTeams, history) style: form explode: true schema: type: array items: type: string enum: - subscribed - affectedTeams - history responses: '200': description: The requested incident headers: ETag: description: Send to the PUT /incidents/{id} resource as If-Match header to return a 412 Error in case any related resources e.g. Services or Incident have been updated in the mean time. schema: type: string content: application/json: schema: $ref: '#/components/schemas/IncidentWithHistory' put: tags: - Incidents summary: Update the specific incident. description: 'Note: the update will be automatically appended to the incident''s update history and publish notifications to subscribers.' parameters: - name: id in: path description: entity ID required: true schema: type: number - name: If-Match in: header description: Should be the ETag response header retrieved from GET /incidents/{id} to prevent updating the incident based on outdated information. Will return 412 status code in case of conflict. schema: type: string requestBody: description: the incident content: application/json: schema: $ref: '#/components/schemas/IncidentNoIncludes' required: true responses: '200': description: The updated incident content: application/json: schema: $ref: '#/components/schemas/IncidentNoIncludes' x-codegen-request-body-name: incident /incidents/{id}/private-subscribers: get: tags: - Incidents summary: Get the subscribers (users and teams) of an incident parameters: - name: id in: path description: entity ID required: true schema: type: number responses: '200': description: The subscribers of the incident content: application/json: schema: type: array items: $ref: '#/components/schemas/TeamUserOption' post: tags: - Incidents summary: Add subscribers (users and teams) to an incident parameters: - name: id in: path description: entity ID required: true schema: type: number requestBody: description: subscribers that should be added content: application/json: schema: type: array items: $ref: '#/components/schemas/TeamUserOption' required: true responses: '204': description: the response content: {} x-codegen-request-body-name: subscribers components: schemas: ServiceStatus: type: string description: the service status enum: - OPERATIONAL - UNDER_MAINTENANCE - DEGRADED - PARTIAL_OUTAGE - MAJOR_OUTAGE TeamRel: type: object properties: id: type: integer format: int64 name: type: string UserRel: required: - id type: object properties: id: type: integer format: int64 firstName: type: string lastName: type: string IncidentStatus: type: string description: the incident status enum: - INVESTIGATING - IDENTIFIED - MONITORING - RESOLVED Incident: type: object properties: id: type: number summary: type: string status: $ref: '#/components/schemas/IncidentStatus' message: type: string sendNotification: type: boolean createdAt: type: string format: date-time updatedAt: type: string format: date-time affectedServices: type: array items: type: object properties: impact: $ref: '#/components/schemas/ServiceStatus' service: $ref: '#/components/schemas/ServiceNoIncludes' resolvedOn: type: string format: date-time readOnly: true subscribed: type: boolean readOnly: true affectedTeams: type: array readOnly: true items: $ref: '#/components/schemas/TeamRel' UIMenuItem: type: object properties: id: type: number label: type: string IncidentUpdate: type: object properties: id: type: string content: type: string creator: $ref: '#/components/schemas/UserRel' incidentStatus: $ref: '#/components/schemas/IncidentStatus' sendNotification: type: boolean createdAt: type: string format: date-time IncidentNoIncludes: type: object properties: id: type: number summary: type: string status: $ref: '#/components/schemas/IncidentStatus' message: type: string sendNotification: type: boolean createdAt: type: string description: May be overwritten during the creation of the incident, otherwise read-only format: date-time updatedAt: type: string description: May be overwritten during the creation of the incident, otherwise read-only format: date-time affectedServices: type: array items: type: object properties: impact: $ref: '#/components/schemas/ServiceStatus' service: $ref: '#/components/schemas/ServiceNoIncludes' resolvedOn: type: string format: date-time readOnly: true IncidentWithHistory: type: object properties: id: type: number summary: type: string status: $ref: '#/components/schemas/IncidentStatus' message: type: string sendNotification: type: boolean createdAt: type: string format: date-time updatedAt: type: string format: date-time history: type: array items: $ref: '#/components/schemas/IncidentUpdate' affectedServices: type: array items: type: object properties: impact: $ref: '#/components/schemas/ServiceStatus' service: $ref: '#/components/schemas/ServiceNoIncludes' resolvedOn: type: string format: date-time readOnly: true subscribed: type: boolean readOnly: true affectedTeams: type: array readOnly: true items: $ref: '#/components/schemas/TeamRel' TeamUserOption: type: object properties: id: type: number name: type: string type: type: string enum: - USER - TEAM ServiceNoIncludes: type: object properties: id: type: number name: type: string alias: type: string status: $ref: '#/components/schemas/ServiceStatus' description: type: string oneOpenIncidentOnly: type: boolean showUptimeHistory: type: boolean teams: type: array items: $ref: '#/components/schemas/TeamRel' securitySchemes: apiKey: type: apiKey description: The Bearer API key of your user more info. name: Authorization in: header x-original-swagger-version: '2.0'