openapi: 3.0.1 info: title: ilert REST Alert Actions Status Pages 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: Status Pages paths: /status-pages: get: tags: - Status Pages summary: Get status pages. 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 status pages. schema: maximum: 50 type: integer format: int32 default: 25 - 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 responses: '200': description: The status pages content: application/json: schema: type: array items: $ref: '#/components/schemas/StatusPageList' post: tags: - Status Pages summary: Create a new status page. requestBody: description: the status page content: application/json: schema: $ref: '#/components/schemas/StatusPageNoIncludes' required: true responses: '200': description: The newly created status page content: application/json: schema: $ref: '#/components/schemas/StatusPageNoIncludes' x-codegen-request-body-name: service /status-pages/{id}: get: tags: - Status Pages summary: Get a specific status page. 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, uptime, groups, structure). Note: structure is always included by default.' style: form explode: true schema: type: array items: type: string enum: - subscribed - uptime - groups - structure responses: '200': description: The requested status page content: application/json: schema: $ref: '#/components/schemas/StatusPage' put: tags: - Status Pages summary: Update the specific status page parameters: - name: id in: path description: entity ID required: true schema: type: number requestBody: description: the status page content: application/json: schema: $ref: '#/components/schemas/StatusPageNoIncludes' required: true responses: '200': description: The updated status page content: application/json: schema: $ref: '#/components/schemas/StatusPageNoIncludes' x-codegen-request-body-name: service delete: tags: - Status Pages summary: Remove a specific status page. parameters: - name: id in: path description: entity ID required: true schema: type: number responses: '204': description: Empty body delete response content: {} /status-pages/{id}/groups: get: tags: - Status Pages summary: Get the groups of a status page parameters: - name: id in: path description: entity ID required: true schema: type: number - 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 entities. schema: maximum: 100 type: integer format: int32 default: 50 responses: '200': description: The groups of the status page content: application/json: schema: type: array items: $ref: '#/components/schemas/StatusPageGroup' post: tags: - Status Pages summary: Add a group to a status page parameters: - name: id in: path description: entity ID required: true schema: type: number requestBody: description: Group that should be added content: application/json: schema: $ref: '#/components/schemas/StatusPageGroup' required: true responses: '201': description: The created group content: application/json: schema: $ref: '#/components/schemas/StatusPageGroup' x-codegen-request-body-name: Group /status-pages/{id}/groups/{group-id}: get: tags: - Status Pages summary: Get a specific group of a status page parameters: - name: id in: path description: entity ID required: true schema: type: number - name: group-id in: path description: entity ID required: true schema: type: number responses: '200': description: The group of the status page content: application/json: schema: $ref: '#/components/schemas/StatusPageGroup' '404': description: The group does not exist content: {} put: tags: - Status Pages summary: Update a group of a status page parameters: - name: id in: path description: entity ID required: true schema: type: number - name: group-id in: path description: entity ID required: true schema: type: number requestBody: description: Group that should be updated content: application/json: schema: $ref: '#/components/schemas/StatusPageGroup' required: true responses: '200': description: The updated group of the status page content: application/json: schema: $ref: '#/components/schemas/StatusPageGroup' x-codegen-request-body-name: Group delete: tags: - Status Pages summary: Remove group from a status page parameters: - name: id in: path description: entity ID required: true schema: type: number - name: group-id in: path description: entity ID required: true schema: type: number responses: '204': description: the response content: {} /status-pages/{id}/private-subscribers: get: tags: - Status Pages summary: Get the subscribers (users and teams) of a status page parameters: - name: id in: path description: entity ID required: true schema: type: number responses: '200': description: The subscribers of the status page content: application/json: schema: type: array items: $ref: '#/components/schemas/TeamUserOption' put: tags: - Status Pages summary: Set subscribers (users and teams) of a status page description: 'Note: this is an in place update' parameters: - name: id in: path description: entity ID required: true schema: type: number requestBody: description: subscribers that should be adjusted 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 post: tags: - Status Pages summary: Add subscriber (user and team) to a status page parameters: - name: id in: path description: entity ID required: true schema: type: number requestBody: description: subscriber that should be added content: application/json: schema: $ref: '#/components/schemas/TeamUserOption' required: true responses: '204': description: the response content: {} x-codegen-request-body-name: subscriber /status-pages/{id}/private-subscribers/{subscriber-id}: delete: tags: - Status Pages summary: Remove subscriber (user and team) from a status page parameters: - name: id in: path description: entity ID required: true schema: type: number - name: subscriber-id in: path description: entity ID required: true schema: type: number - name: subscriber-type in: query description: the type of subscriber USER or TEAM required: true schema: type: string enum: - USER - TEAM responses: '204': description: the response content: {} x-codegen-request-body-name: subscriber components: schemas: ServiceStatus: type: string description: the service status enum: - OPERATIONAL - UNDER_MAINTENANCE - DEGRADED - PARTIAL_OUTAGE - MAJOR_OUTAGE TimeZone: type: string enum: - Europe/Berlin - America/New_York - America/Los_Angeles - Asia/Istanbul TeamRel: type: object properties: id: type: integer format: int64 name: type: string MetricAggregationType: type: string enum: - AVG - SUM - MIN - MAX - LAST StatusPageGroup: type: object properties: id: type: number name: type: string StatusPage: type: object properties: id: type: number name: type: string domain: type: string subdomain: type: string timezone: $ref: '#/components/schemas/TimeZone' faviconUrl: type: string logoUrl: type: string visibility: type: string enum: - PRIVATE - PUBLIC hiddenFromSearch: type: boolean showSubscribeAction: type: boolean showIncidentHistoryOption: type: boolean pageTitle: type: string pageDescription: type: string pageLayout: type: string enum: - SINGLE_COLUMN - RESPONSIVE logoRedirectUrl: type: string activated: type: boolean status: $ref: '#/components/schemas/ServiceStatus' teams: type: array items: $ref: '#/components/schemas/TeamRel' services: type: array items: $ref: '#/components/schemas/ServiceUptimeOnly' metrics: type: array items: $ref: '#/components/schemas/MetricNoIncludes' ipWhitelist: type: array description: ipv4 or ipv6 addresses to give access to. Can only be set on 'PRIVATE' status pages items: type: string structure: $ref: '#/components/schemas/StatusPageStructure' subscribed: type: boolean description: This is an include field, it is not available in the list resource readOnly: true groups: type: array description: This is an include field, it is not available in the list resource. Read-only, use the sub resource to manipulate groups. readOnly: true items: $ref: '#/components/schemas/StatusPageGroup' appearance: type: string enum: - LIGHT - DARK announcement: type: string description: This is an include field, it is not available in the list resource announcementOnPage: type: boolean description: If the announcement should be displayed on the status page announcementInWidget: type: boolean description: If the announcement should be displayed in the popup widget audienceSpecific: type: boolean default: false description: If a private status page should move into audience specific mode StatusPageNoIncludes: type: object properties: id: type: number name: type: string domain: type: string subdomain: type: string timezone: $ref: '#/components/schemas/TimeZone' faviconUrl: type: string logoUrl: type: string visibility: type: string enum: - PRIVATE - PUBLIC hiddenFromSearch: type: boolean showSubscribeAction: type: boolean showIncidentHistoryOption: type: boolean pageTitle: type: string pageDescription: type: string pageLayout: type: string enum: - SINGLE_COLUMN - RESPONSIVE logoRedirectUrl: type: string activated: type: boolean status: $ref: '#/components/schemas/ServiceStatus' teams: type: array items: $ref: '#/components/schemas/TeamRel' services: type: array items: $ref: '#/components/schemas/ServiceNoIncludes' metrics: type: array items: $ref: '#/components/schemas/MetricNoIncludes' ipWhitelist: type: array description: ipv4 or ipv6 addresses to give access to. Can only be set on 'PRIVATE' status pages items: type: string structure: $ref: '#/components/schemas/StatusPageStructure' appearance: type: string enum: - LIGHT - DARK 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' StatusPageList: type: object properties: id: type: number name: type: string domain: type: string subdomain: type: string timezone: $ref: '#/components/schemas/TimeZone' faviconUrl: type: string logoUrl: type: string visibility: type: string enum: - PRIVATE - PUBLIC hiddenFromSearch: type: boolean showSubscribeAction: type: boolean showIncidentHistoryOption: type: boolean pageTitle: type: string pageDescription: type: string logoRedirectUrl: type: string activated: type: boolean status: $ref: '#/components/schemas/ServiceStatus' teams: type: array items: $ref: '#/components/schemas/TeamRel' services: type: array items: $ref: '#/components/schemas/ServiceUptimeOnly' metrics: type: array items: $ref: '#/components/schemas/MetricNoIncludes' ipWhitelist: type: array description: ipv4 or ipv6 addresses to give access to. Can only be set on 'PRIVATE' status pages items: type: string subscribed: type: boolean description: This is an include field, it is not available in the list resource readOnly: true announcement: type: string description: This is an include field, it is not available in the list resource announcementOnPage: type: boolean description: If the announcement should be displayed on the status page announcementInWidget: type: boolean description: If the announcement should be displayed in the popup widget audienceSpecific: type: boolean default: false description: If a private status page should move into audience specific mode ServiceUptimePercentage: type: object properties: uptimePercentage: type: object properties: p90: maximum: 100 minimum: 0 type: number format: float readOnly: true p60: maximum: 100 minimum: 0 type: number format: float readOnly: true p30: maximum: 100 minimum: 0 type: number format: float readOnly: true MetricNoIncludes: type: object properties: id: type: number name: type: string description: type: string aggregationType: $ref: '#/components/schemas/MetricAggregationType' displayType: $ref: '#/components/schemas/MetricDisplayType' interpolateGaps: type: boolean default: false lockYAxisMax: type: number format: double lockYAxisMin: type: number format: double mouseOverDecimal: maximum: 6 minimum: 0 type: number format: int32 showValuesOnMouseOver: type: boolean default: false unitLabel: type: string teams: type: array items: $ref: '#/components/schemas/TeamRel' StatusPageStructure: type: object properties: elements: type: array items: $ref: '#/components/schemas/StatusPageElement' description: This field is not available in the list resource. Describes the structure of a status page. Allows for nesting children. It is not required unless groups are used. ServiceOutage: type: object properties: status: $ref: '#/components/schemas/ServiceStatus' from: type: string format: date-time until: type: string format: date-time ServiceUptime: type: object properties: rangeStart: type: string format: date-time rangeEnd: type: string format: date-time outages: type: array items: $ref: '#/components/schemas/ServiceOutage' uptimePercentage: $ref: '#/components/schemas/ServiceUptimePercentage' MetricDisplayType: type: string enum: - GRAPH - SINGLE TeamUserOption: type: object properties: id: type: number name: type: string type: type: string enum: - USER - TEAM StatusPageElement: required: - id - type type: object properties: id: type: integer description: The id of the service or group that this element references format: int64 type: type: string enum: - SERVICE - GROUP options: type: string description: 'Note: ''expand'' can only be set when type is ''SERVICE'', ''no-graph'' can only be set when type is ''GROUP''' enum: - expand - no-graph children: type: array description: 'Optional children of this element. Note: children may only be added to elements of type ''GROUP''' items: $ref: '#/components/schemas/StatusPageElement' ServiceUptimeOnly: type: object properties: id: type: number name: type: string status: $ref: '#/components/schemas/ServiceStatus' description: type: string oneOpenIncidentOnly: type: boolean showUptimeHistory: type: boolean teams: type: array items: $ref: '#/components/schemas/TeamRel' uptime: $ref: '#/components/schemas/ServiceUptime' securitySchemes: apiKey: type: apiKey description: The Bearer API key of your user more info. name: Authorization in: header x-original-swagger-version: '2.0'