openapi: 3.0.1 info: title: ilert REST Alert Actions Maintenance Windows 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: Maintenance Windows paths: /maintenance-windows: get: tags: - Maintenance Windows summary: List maintenance windows. parameters: - name: state in: query description: Filter maintenance windows by state. `OPEN` includes upcoming and ongoing windows, `CLOSED` includes past windows. schema: type: string enum: - OPEN - CLOSED - name: services in: query description: filter by service IDs schema: type: array items: type: integer format: int64 - name: sources in: query description: filter by alert source IDs 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 schema: type: string format: date-time - name: until in: query description: until date, ISO-UTC e.g. 2021-05-26T21:24:56.771Z schema: type: string format: date-time - 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 maintenance window object content: application/json: schema: type: array items: $ref: '#/components/schemas/MaintenanceWindow' post: tags: - Maintenance Windows summary: Create a new maintenance window. requestBody: description: the maintenance window content: application/json: schema: $ref: '#/components/schemas/MaintenanceWindow' required: true responses: '200': description: The URI of the maintenance window will be included in the location header and the maintenance window will be included in the body. content: application/json: schema: $ref: '#/components/schemas/MaintenanceWindow' x-codegen-request-body-name: maintenance-window /maintenance-windows/{id}: get: tags: - Maintenance Windows summary: Get the maintenance window with specified id. parameters: - name: id in: path description: entity ID required: true schema: type: number responses: '200': description: the maintenance window object content: application/json: schema: $ref: '#/components/schemas/MaintenanceWindow' put: tags: - Maintenance Windows summary: Update an existing maintenance window. parameters: - name: id in: path description: entity ID required: true schema: type: number requestBody: description: the maintenance window content: application/json: schema: $ref: '#/components/schemas/MaintenanceWindow' required: true responses: '200': description: the updated maintenance window object content: application/json: schema: $ref: '#/components/schemas/MaintenanceWindow' x-codegen-request-body-name: maintenance-window delete: tags: - Maintenance Windows summary: Delete the specified maintenance window. parameters: - name: id in: path description: entity ID required: true schema: type: number responses: '204': description: if deletion was successful content: {} components: schemas: ServiceStatus: type: string description: the service status enum: - OPERATIONAL - UNDER_MAINTENANCE - DEGRADED - PARTIAL_OUTAGE - MAJOR_OUTAGE IntegrationType: type: string enum: - NAGIOS - ICINGA - EMAIL2 - SMS - API - HEARTBEAT2 - PRTG - PINGDOM - CLOUDWATCH - AWSPHD - STACKDRIVER - INSTANA - ZABBIX - SOLARWINDS - PROMETHEUS - NEWRELIC - GRAFANA - GITHUB - DATADOG - UPTIMEROBOT - APPDYNAMICS - DYNATRACE - TOPDESK - STATUSCAKE - MONITOR - TOOL - CHECKMK - AUTOTASK - AWSBUDGET - SYSDIG - SERVERDENSITY - ZAPIER - KENTIXAM - JIRA - CONSUL - ZAMMAD - SPLUNK - SERVICENOW - SEARCHGUARD - KUBERNETES - SIGNALFX - AZUREALERTS - TERRAFORMCLOUD - SENTRY - SEMATEXT - SUMOLOGIC - RAYGUN - MXTOOLBOX - ESWATCHER - AMAZONSNS - KAPACITOR - CORTEXXSOAR - ZENDESK - AUVIK - SENSU - NCENTRAL - JUMPCLOUD - SALESFORCE - GUARDDUTY - STATUSHUB - IXON - APIFORTRESS - FRESHSERVICE - APPSIGNAL - LIGHTSTEP - IBMCLOUDFUNCTIONS - CROWDSTRIKE - HUMIO - OHDEAR - MONGODBATLAS - GITLAB - HYPERPING - PAPRISMACLOUD - SAMSARA - PANDORAFMS - MSSCOM - TWILIO - CISCOMERAKI - CHECKLY - POSTHOG - GOOGLESCC - SLACK - MSTEAMS - UPTIMEKUMA - TWILIOERRORS - PARTICLE - CLOUDFLARE - TULIP - GRAYLOG - CATCHPOINT - LOKI - CORTEX - MIMIR - HALOPSA - INFLUXDB - CALLFLOW - HALOITSM - KIBANA - VICTORIAMETRICS - HONEYCOMB - FOURME - KEEP - UBIDOTS - HETRIXTOOLS - POSTMAN - CLUSTERCONTROL - NETDATA - AWX - KAFKA - MQTT - RAPIDSPIKE - HONEYBADGER - HEALTHCHECKSIO - MEZMO - SERVERGUARD24 - CISCOTHOUSANDEYES - SITE24X7 - ITCONDUCTOR - SAPFRUN - APICA - DASH0 - ROLLBAR - GATUS - LIBRENMS - PANTHER - TEAMCITY - ALIBABACLOUD - FLEETDM - CONNECTWISEPSA - DEADMANSSNITCH - FORTISOAR - OPMANAGER - CRONITOR - DOMOTZ - LIVEWATCH - AZUREDEVOPS - LEVELIO - EKARA - SYSAID - PHAREIO - OPSGENIE - WHATAP - SIGNOZ - GOOGLECHAT - DOTCOMMONITOR - UPTIME - HELPSCOUT - SCIENCELOGIC - PULSETIC - WAZUH - SEKOIA EscalationRule: required: - escalationTimeout type: object properties: escalationTimeout: type: integer user: type: object properties: id: type: number description: 'This field (type: User) is deprecated, please use ''users'' instead' schedule: type: object properties: id: type: number description: 'This field (type: Schedule) is deprecated, please use ''schedules'' instead' team: type: object properties: id: type: number description: 'This field (type: Team) is deprecated, please use ''teams'' instead' users: type: array items: $ref: '#/components/schemas/UserRel' schedules: type: array items: $ref: '#/components/schemas/ScheduleRel' teams: type: array items: $ref: '#/components/schemas/TeamRel' AlertSource: required: - escalationPolicy - integrationType - name type: object properties: id: type: integer format: int64 teams: type: array items: $ref: '#/components/schemas/TeamRel' name: type: string iconUrl: type: string lightIconUrl: type: string darkIconUrl: type: string escalationPolicy: $ref: '#/components/schemas/EscalationPolicy' integrationType: $ref: '#/components/schemas/IntegrationType' integrationKey: type: string integrationUrl: type: string readOnly: true autoResolutionTimeout: type: string format: ISO-8601 alertGroupingWindow: type: string format: ISO-8601 alertCreation: type: string default: ONE_ALERT_PER_EMAIL enum: - ONE_ALERT_PER_EMAIL - ONE_ALERT_PER_EMAIL_SUBJECT - ONE_PENDING_ALERT_ALLOWED - ONE_OPEN_ALERT_ALLOWED - OPEN_RESOLVE_ON_EXTRACTION - ONE_ALERT_GROUPED_PER_WINDOW - INTELLIGENT_GROUPING status: type: string readOnly: true enum: - PENDING - ALL_ACCEPTED - ALL_RESOLVED - IN_MAINTENANCE - DISABLED active: type: boolean default: true alertPriorityRule: $ref: '#/components/schemas/AlertPriorityRule' supportHours: $ref: '#/components/schemas/SupportHour' bidirectional: type: boolean readOnly: true summaryTemplate: $ref: '#/components/schemas/AlertSourceTemplate' detailsTemplate: $ref: '#/components/schemas/AlertSourceTemplate' routingTemplate: $ref: '#/components/schemas/AlertSourceTemplate' linkTemplates: type: array items: $ref: '#/components/schemas/AlertSourceLinkTemplate' priorityTemplate: $ref: '#/components/schemas/AlertSourcePriorityTemplate' severityTemplate: $ref: '#/components/schemas/AlertSourceSeverityTemplate' eventFilter: type: string description: 'Defines an optional event filter condition in ICL language. This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists.' alertKeyTemplate: $ref: '#/components/schemas/AlertSourceTemplate' servicesTemplate: type: array description: 'Optional list of templates that extract service identifiers from the inbound event payload. Each rendered value is comma-split, and each resulting token is resolved against the tenant''s services by alias or name (case-insensitive). Unmatched tokens are silently dropped. Capped at 10 templates and at the alert''s per-event services limit. Note: this field is an ?include, it will not appear in lists.' items: $ref: '#/components/schemas/AlertSourceTemplate' eventTypeFilterCreate: type: string description: 'Defines an optional create alert rule in ICL language. This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists.' eventTypeFilterAccept: type: string description: 'Defines an optional accept alert rule in ICL language This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists.' eventTypeFilterResolve: type: string description: 'Defines an optional resolve alert rule in ICL language This is a code based implementation, more info on syntax: https://docs.ilert.com/rest-api/icl-ilert-condition-language. For block based configuration please use the web UI. It has no effect on manually created alerts. Note: this field is an ?include, it will not appear in lists.' autoRaiseAlerts: type: boolean description: Only effective when a support hour is linked to this alert source. scoreThreshold: type: number format: double description: Only used when alertCreation is set to INTELLIGENT_GROUPING. severity: type: integer services: type: array items: $ref: '#/components/schemas/Service' setupStatus: type: string enum: - CREATED - CREATED_ADVANCED - CREATED_BIDIRECTIONAL - FINISHED autoCreateServices: type: boolean default: false createdAt: type: string readOnly: true updatedAt: type: string readOnly: true SupportHour: required: - name - supportDays - timezone type: object properties: id: type: integer format: int64 name: type: string teams: type: array items: $ref: '#/components/schemas/TeamRel' timezone: $ref: '#/components/schemas/TimeZone' supportDays: type: object properties: MONDAY: $ref: '#/components/schemas/SupportDay' TUESDAY: $ref: '#/components/schemas/SupportDay' WEDNESDAY: $ref: '#/components/schemas/SupportDay' THURSDAY: $ref: '#/components/schemas/SupportDay' FRIDAY: $ref: '#/components/schemas/SupportDay' SATURDAY: $ref: '#/components/schemas/SupportDay' SUNDAY: $ref: '#/components/schemas/SupportDay' exceptions: type: array items: $ref: '#/components/schemas/SupportHourException' 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 AlertSourceTemplate: type: object properties: textTemplate: type: string description: "For more information on alert source templating, please visit: https://docs.ilert.com/alerting/alert-sources#alert-template.\n\n Example:
`Hi {{ users[0].name }} there!` \n\nYou can use the text template instead of elements by adding the include `textTemplate` to your request. Any version can be used for POST or PUT requests." elements: type: array items: $ref: '#/components/schemas/AlertSourceTemplateElement' AlertSourceSeverityTemplateMapping: required: - severity - value type: object properties: value: type: string severity: type: integer format: int32 UserRel: required: - id type: object properties: id: type: integer format: int64 firstName: type: string lastName: type: string AlertSourcePriorityTemplate: required: - mappings - valueTemplate type: object properties: valueTemplate: $ref: '#/components/schemas/AlertSourceTemplate' mappings: type: array items: $ref: '#/components/schemas/AlertSourcePriorityTemplateMapping' SupportHourException: type: object required: - name - start - end - supportStatus properties: name: type: string start: type: string format: date end: type: string format: date supportStatus: type: string enum: - DURING - OUTSIDE ServiceOutage: type: object properties: status: $ref: '#/components/schemas/ServiceStatus' from: type: string format: date-time until: type: string format: date-time ScheduleRel: type: object properties: id: type: integer format: int64 name: type: string type: type: string enum: - STATIC - RECURRING 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' AlertSourceTemplateElement: type: object properties: type: type: string enum: - TEXT - VAR - RAW val: type: string func: type: string args: type: array items: $ref: '#/components/schemas/AlertSourceTemplateElementArg' IncidentStatus: type: string description: the incident status enum: - INVESTIGATING - IDENTIFIED - MONITORING - RESOLVED Service: 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' subscribed: type: boolean readOnly: true uptime: $ref: '#/components/schemas/ServiceUptime' incidents: type: array description: Note that this only contains the latest 10 unresolved incidents, use /api/incidents?service=x if more or specific results are needed readOnly: true items: $ref: '#/components/schemas/IncidentNoIncludes' AlertSourcePriorityTemplateMapping: required: - priority - value type: object properties: value: type: string priority: type: string enum: - LOW - HIGH SupportDay: required: - end - start type: object properties: start: type: string format: time end: type: string format: time AlertSourceTemplateElementArg: type: object properties: S: type: string N: type: integer 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' EscalationPolicy: required: - escalationRules - name type: object properties: id: type: integer format: int64 name: type: string escalationRules: type: array items: $ref: '#/components/schemas/EscalationRule' teams: type: array items: $ref: '#/components/schemas/TeamRel' repeating: type: boolean default: false frequency: maximum: 9 minimum: 1 type: integer format: int32 default: 1 delayMin: maximum: 15 minimum: 0 type: integer format: int32 default: 0 routingKey: type: string description: optional TeamRel: type: object properties: id: type: integer format: int64 name: type: string AlertSourceSeverityTemplate: required: - mappings - valueTemplate type: object properties: valueTemplate: $ref: '#/components/schemas/AlertSourceTemplate' mappings: type: array items: $ref: '#/components/schemas/AlertSourceSeverityTemplateMapping' 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 MaintenanceWindow: type: object properties: timezone: $ref: '#/components/schemas/TimeZone' start: type: string format: date-time end: type: string format: date-time summary: type: string description: type: string alertSources: maxItems: 50 type: array items: $ref: '#/components/schemas/AlertSource' services: maxItems: 50 type: array items: $ref: '#/components/schemas/ServiceNoIncludes' createdBy: type: string readOnly: true notifications: type: object properties: atCreation: type: boolean atStart: type: boolean atEnd: type: boolean AlertPriorityRule: type: string enum: - HIGH - LOW - HIGH_DURING_SUPPORT_HOURS - LOW_DURING_SUPPORT_HOURS AlertSourceLinkTemplate: required: - hrefTemplate - text type: object properties: text: type: string hrefTemplate: $ref: '#/components/schemas/AlertSourceTemplate' TimeZone: type: string enum: - Europe/Berlin - America/New_York - America/Los_Angeles - Asia/Istanbul securitySchemes: apiKey: type: apiKey description: The Bearer API key of your user more info. name: Authorization in: header x-original-swagger-version: '2.0'