> For the complete documentation index, see [llms.txt](https://docs.ilert.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ilert.com/developer-docs/rest-api/api-reference/alerts.md).

# Alerts

## List alerts (optionally matching certain criteria that are specified by query parameters).

> \*\*Sample URLs\*\*\
> \* List only alerts that are either in state \`PENDING\` or \`ACCEPTED\`: \<br /> <https://api.ilert.com/api/alerts?states=PENDING\\&states=ACCEPTED\\>
> \* List only alerts that belong to the alert source with ID \`1243\` or \`1743\` and where user \`jd\` is a responder: \<br />\
> &#x20; <https://api.ilert.com/api/alerts?sources=1243\\&sources=1743\\&responders=jd\\>
> \* Paginate first batch for a range of alerts (note: query parameters should be url encoded): \<br />\
> &#x20;<https://api.ilert.com/api/alerts?start-index=0\\&max-results=100\\&from=2021-03-01T21:24:56.771Z\\&until=2021-04-01T21:24:56.771Z\\>
> \* Fetch next page, assuming equal to max-results were returned: \<br/>\
> &#x20;<https://api.ilert.com/api/alerts?start-index=100\\&max-results=100\\&from=2021-03-01T21:24:56.771Z\\&until=2021-04-01T21:24:56.771Z\\>
> \* Pagination should be done based on the \`reportTime\` field using the parameters \`from\` and \`until\` as well as \`start-index\`. When building a local alert state store the \`id\` field should be used as identifier. The \`alertKey\` field is not suitable for this, as it is used to group related alerts to each other.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"AlertPriority":{"type":"string","enum":["HIGH","LOW"]},"Alert":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"summary":{"type":"string"},"details":{"type":"string"},"reportTime":{"type":"string","format":"date-time"},"resolvedOn":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","ACCEPTED","RESOLVED"]},"alertSource":{"$ref":"#/components/schemas/AlertSource"},"escalationPolicy":{"$ref":"#/components/schemas/EscalationPolicy"},"priority":{"$ref":"#/components/schemas/AlertPriority"},"alertKey":{"type":"string"},"assignedTo":{"type":"object","properties":{"id":{"type":"number"}},"description":"This field (type: User) is deprecated, please use 'responders' instead"},"nextEscalation":{"type":"string","format":"date-time","readOnly":true},"escalationRules":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/EscalationRule"}},"nextEscalationUser":{"$ref":"#/components/schemas/User"},"nextEscalationRuleIndex":{"type":"number","readOnly":true},"images":{"type":"array","items":{"$ref":"#/components/schemas/EventImage"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/EventLink"}},"responders":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AlertResponder"}},"severity":{"maximum":5,"minimum":1,"type":"integer","format":"int32","description":"Optional severity in range 1..5."},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional key/value labels that are attached to the alert."},"customDetails":{"type":"object","additionalProperties":true,"description":"Free-form custom key/value details attached to the alert. This is the original event payload of the integration. Only present with ?include=customDetails on the single-alert GET (not on the list endpoint)."},"linkedIncidentId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the incident this alert is linked to, if any."},"mergedIntoId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the alert this alert has been merged into, if any."},"mergeState":{"type":"string","readOnly":true,"enum":["NONE","MAIN","MERGED"],"description":"The merge state of the alert."}}},"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_OPEN_ALERT_ALLOWED","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},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"TeamRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"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"}}}},"UserRel":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"}}},"ScheduleRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"type":{"type":"string","enum":["STATIC","RECURRING"]}}},"ManagedBy":{"type":"object","readOnly":true,"description":"Present when this entity is managed outside of the ilert web app, for example through Terraform, Pulumi or the API. Read-only.","properties":{"type":{"type":"string","enum":["API","TERRAFORM","PULUMI","ILERT"]},"source":{"type":"string","description":"Identifier of the system managing this entity."}}},"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","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","ZOHODESK","ORACLEENTERPRISEMANAGER","OPENOBSERVE","OPENSEARCH","OPENITCOCKPIT","ODOO","OPENNMS","DBMARLIN","TIDEWAYS","SOPHOS","BLEEMEO","UPTRENDS"]},"AlertPriorityRule":{"type":"string","enum":["HIGH","LOW","HIGH_DURING_SUPPORT_HOURS","LOW_DURING_SUPPORT_HOURS"]},"SupportHour":{"required":["name","timezone"],"type":"object","description":"Weekly support hour coverage. Every write of the coverage itself -- a support hour of its own, or an alert source's inline support hours, which carry no id -- must send supportDays or supportWindows: a body with neither is rejected with 400 rather than read as a request to clear the coverage. An alert source that references an existing support hour sends its id alone and needs neither field.","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","description":"A single window per day, kept for existing clients. Lossy once coverage is not representable per day (several windows a day, or an arc across midnight): each day then reports the earliest part of its coverage, and an end at midnight is reported as 23:59. Use supportWindows for the complete picture. On input, sending it back exactly as it was read leaves the coverage unchanged, so a client that only knows supportDays can still rename a support hour or move it to another timezone. A supportDays that differs is applied when the current coverage fits one window per day, and rejected with 400 when it does not, because rebuilding the week from a lossy view would silently drop the coverage it cannot express -- change such coverage with supportWindows instead.","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"}}},"supportWindows":{"type":"array","nullable":true,"maxItems":84,"description":"The complete weekly coverage as arcs, each covering [from, to). An arc whose 'to' is at or before its 'from' wraps past Sunday midnight, so FRIDAY 17:00 to MONDAY 09:00 is one arc; 'from' equal to 'to' is the whole week. Responses list the arcs merged and in ascending order, and return null when supportDays already describes the coverage exactly. On input, when present, it is the coverage of the whole support hour: an empty array clears the weekly coverage, and overlapping or touching arcs are merged. supportDays may be sent alongside it only when it is the per-day view of these arcs; one describing different coverage is rejected with 400. Times are whole minutes (HH:mm); a seconds part is accepted only when it is zero. Only a support hour of its own accepts arcs: an alert source's inline supportHours is one window per day, and sending supportWindows there is rejected.","items":{"$ref":"#/components/schemas/SupportWindow"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/SupportHourException"}},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"currentStatus":{"type":"string","description":"Whether the support hour covers this moment. An include field: request it with include=currentStatus.","enum":["DURING","OUTSIDE"],"readOnly":true},"currentStatusUntil":{"type":"string","description":"When currentStatus next changes, as a local date-time in this support hour's timezone, e.g. 2026-09-18T17:00. Null when no change is in sight: coverage that never ends, no coverage at all, or a covered holiday reaching beyond the three weeks looked ahead. Returned together with currentStatus.","readOnly":true}}},"TimeZone":{"type":"string","enum":["Europe/Berlin","America/New_York","America/Los_Angeles","Asia/Istanbul"]},"SupportDay":{"required":["end","start"],"type":"object","properties":{"start":{"type":"string","format":"time"},"end":{"type":"string","format":"time"}}},"SupportWindow":{"required":["from","to"],"type":"object","properties":{"from":{"$ref":"#/components/schemas/TimeOfWeek"},"to":{"$ref":"#/components/schemas/TimeOfWeek"}}},"TimeOfWeek":{"required":["dayOfWeek","time"],"type":"object","properties":{"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"time":{"type":"string","format":"15:00"}}},"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"]}}},"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: <br />`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"}}}},"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"}}}},"AlertSourceTemplateElementArg":{"type":"object","properties":{"S":{"type":"string"},"N":{"type":"integer"}}},"AlertSourceLinkTemplate":{"required":["hrefTemplate","text"],"type":"object","properties":{"text":{"type":"string"},"hrefTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"}}},"AlertSourcePriorityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourcePriorityTemplateMapping"}}}},"AlertSourcePriorityTemplateMapping":{"required":["priority","value"],"type":"object","properties":{"value":{"type":"string"},"priority":{"type":"string","enum":["LOW","HIGH"]}}},"AlertSourceSeverityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourceSeverityTemplateMapping"}}}},"AlertSourceSeverityTemplateMapping":{"required":["severity","value"],"type":"object","properties":{"value":{"type":"string"},"severity":{"type":"integer","format":"int32"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"publicStatus":{"$ref":"#/components/schemas/ServiceStatus"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Free-form key-value labels assigned to this service."},"iconUrl":{"type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/ServiceLink"}},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/ServiceDependency"},"description":"This is an include field, it is not available in the list resource"}}},"ServiceStatus":{"type":"string","description":"the service status","enum":["OPERATIONAL","UNDER_MAINTENANCE","DEGRADED","PARTIAL_OUTAGE","MAJOR_OUTAGE"]},"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"}}},"ServiceOutage":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/ServiceStatus"},"from":{"type":"string","format":"date-time"},"until":{"type":"string","format":"date-time"}}},"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}}}}},"ServiceLink":{"type":"object","properties":{"href":{"type":"string","format":"uri"},"text":{"type":"string"}}},"ServiceDependency":{"type":"object","required":["targetServiceId"],"properties":{"id":{"type":"integer","format":"int64","readOnly":true},"sourceServiceId":{"type":"integer","format":"int64","description":"The service that depends on the target service."},"targetServiceId":{"type":"integer","format":"int64","description":"The service that is being depended upon."},"notes":{"type":"string"},"invalidAfter":{"type":"string","format":"date-time","description":"Point in time after which this dependency is no longer considered valid."},"createdAt":{"type":"string","format":"date-time","readOnly":true},"updatedAt":{"type":"string","format":"date-time","readOnly":true},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"User":{"required":["email","firstName","lastName"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"timezone":{"$ref":"#/components/schemas/TimeZone"},"position":{"type":"string"},"department":{"type":"string"},"avatarUrl":{"type":"string","readOnly":true},"language":{"type":"string","enum":["de","en","it","fr","es"],"description":"Language of the user. `it`, `fr` and `es` only apply to notifications; the web app is shown in English for these languages."},"region":{"type":"string","enum":["DE","GB","CH","CN","IN","US","FR","ES","CA","IE"]},"role":{"$ref":"#/components/schemas/Role"},"shiftColor":{"type":"string","description":"Optional hex-color code for the user's shifts in schedules calendars"},"mutedUntil":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"createdAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"updatedAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"}}},"Role":{"type":"string","enum":["STAKEHOLDER","GUEST","VIEWER","RESPONDER","USER","ADMIN"],"description":"The user's role."},"EventImage":{"type":"object","properties":{"src":{"type":"string"},"href":{"type":"string"},"alt":{"type":"string"}}},"EventLink":{"type":"object","properties":{"href":{"type":"string"},"text":{"type":"string"}}},"AlertResponder":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserRel"},"status":{"type":"string","enum":["PENDING","ACCEPTED"]},"acceptedAt":{"type":"string","format":"date-time"}}}}},"paths":{"/alerts":{"get":{"tags":["Alerts"],"summary":"List alerts (optionally matching certain criteria that are specified by query parameters).","description":"**Sample URLs**\n* List only alerts that are either in state `PENDING` or `ACCEPTED`: <br /> https://api.ilert.com/api/alerts?states=PENDING&states=ACCEPTED\n* List only alerts that belong to the alert source with ID `1243` or `1743` and where user `jd` is a responder: <br />\n  https://api.ilert.com/api/alerts?sources=1243&sources=1743&responders=jd\n* Paginate first batch for a range of alerts (note: query parameters should be url encoded): <br />\n https://api.ilert.com/api/alerts?start-index=0&max-results=100&from=2021-03-01T21:24:56.771Z&until=2021-04-01T21:24:56.771Z\n* Fetch next page, assuming equal to max-results were returned: <br/>\n https://api.ilert.com/api/alerts?start-index=100&max-results=100&from=2021-03-01T21:24:56.771Z&until=2021-04-01T21:24:56.771Z\n* Pagination should be done based on the `reportTime` field using the parameters `from` and `until` as well as `start-index`. When building a local alert state store the `id` field should be used as identifier. The `alertKey` field is not suitable for this, as it is used to group related alerts to each other.","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 entities.","schema":{"maximum":100,"type":"integer","format":"int32","default":50}},{"name":"include","in":"query","description":"Describes optional properties that should be included in the response. You may declare multiple. (nextEscalationUser)","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["nextEscalationUser"]}}},{"name":"states","in":"query","description":"state of the alert","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["PENDING","ACCEPTED","RESOLVED"]}}},{"name":"sources","in":"query","description":"alert source IDs of the alert's alert source","style":"form","explode":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}},{"name":"policies","in":"query","description":"escalation policy IDs of the alert's escalation policy","style":"form","explode":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}},{"name":"responders","in":"query","description":"user ids of the user that is a responder of the alert","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"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"}},{"name":"merge-state","in":"query","description":"merge state of the alert","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["NONE","MAIN","MERGED"]}}},{"name":"priorities","in":"query","description":"priority of the alert","style":"form","explode":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertPriority"}}},{"name":"services","in":"query","description":"ids of the affected services","style":"form","explode":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}},{"name":"severities","in":"query","description":"severity of the alert, in range 1..5","style":"form","explode":true,"schema":{"type":"array","items":{"type":"integer","format":"int32","minimum":1,"maximum":5}}},{"name":"labels","in":"query","description":"Filter by labels using a condition expression. Supports the operators `==`, `!=`, `in` and `not_in`, combined with `and` (up to 20 conditions). Values must be url-encoded. An invalid expression returns 400. Examples: `environment == 'production'`, `region in [\"us-east\", \"us-west\"]`, `environment == 'production' and severity != 'low'`.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Alert"}}}}}}}}}}
```

## Create alerts with customised parameters without requiring events from monitoring tools that use our Events API.

> ATTENTION: do not use this endpoint to create monitoring related (or high volumes of) alerts, use '/api/events' instead, you have been warned! Escalation of the alert will be based on the alert source's escalation policy or may be overridden by providing a specific escalation policy or lastly specific set of responders (users), latter will only notify the user(s) and will not escalate any further.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"ManualAlert":{"required":["alertSource","summary"],"type":"object","properties":{"summary":{"type":"string"},"details":{"type":"string"},"alertSource":{"$ref":"#/components/schemas/SimpleIdField64"},"escalationPolicy":{"$ref":"#/components/schemas/SimpleIdField64"},"priority":{"$ref":"#/components/schemas/AlertPriority"},"assignedTo":{"type":"object","properties":{"id":{"type":"number"}},"description":"This field (type: User) is deprecated, please use 'responders' instead"},"images":{"type":"array","items":{"$ref":"#/components/schemas/EventImage"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/EventLink"}},"responders":{"type":"array","description":"List of responders (users), only user.id is required.","items":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserRel"}}}}}},"SimpleIdField64":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"}},"description":"For POST and PUT requests only the id field is required for sub entities, e.g. status page -> service, alert source -> support hour"},"AlertPriority":{"type":"string","enum":["HIGH","LOW"]},"EventImage":{"type":"object","properties":{"src":{"type":"string"},"href":{"type":"string"},"alt":{"type":"string"}}},"EventLink":{"type":"object","properties":{"href":{"type":"string"},"text":{"type":"string"}}},"UserRel":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"}}},"Alert":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"summary":{"type":"string"},"details":{"type":"string"},"reportTime":{"type":"string","format":"date-time"},"resolvedOn":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","ACCEPTED","RESOLVED"]},"alertSource":{"$ref":"#/components/schemas/AlertSource"},"escalationPolicy":{"$ref":"#/components/schemas/EscalationPolicy"},"priority":{"$ref":"#/components/schemas/AlertPriority"},"alertKey":{"type":"string"},"assignedTo":{"type":"object","properties":{"id":{"type":"number"}},"description":"This field (type: User) is deprecated, please use 'responders' instead"},"nextEscalation":{"type":"string","format":"date-time","readOnly":true},"escalationRules":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/EscalationRule"}},"nextEscalationUser":{"$ref":"#/components/schemas/User"},"nextEscalationRuleIndex":{"type":"number","readOnly":true},"images":{"type":"array","items":{"$ref":"#/components/schemas/EventImage"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/EventLink"}},"responders":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AlertResponder"}},"severity":{"maximum":5,"minimum":1,"type":"integer","format":"int32","description":"Optional severity in range 1..5."},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional key/value labels that are attached to the alert."},"customDetails":{"type":"object","additionalProperties":true,"description":"Free-form custom key/value details attached to the alert. This is the original event payload of the integration. Only present with ?include=customDetails on the single-alert GET (not on the list endpoint)."},"linkedIncidentId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the incident this alert is linked to, if any."},"mergedIntoId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the alert this alert has been merged into, if any."},"mergeState":{"type":"string","readOnly":true,"enum":["NONE","MAIN","MERGED"],"description":"The merge state of the alert."}}},"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_OPEN_ALERT_ALLOWED","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},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"TeamRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"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"}}}},"ScheduleRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"type":{"type":"string","enum":["STATIC","RECURRING"]}}},"ManagedBy":{"type":"object","readOnly":true,"description":"Present when this entity is managed outside of the ilert web app, for example through Terraform, Pulumi or the API. Read-only.","properties":{"type":{"type":"string","enum":["API","TERRAFORM","PULUMI","ILERT"]},"source":{"type":"string","description":"Identifier of the system managing this entity."}}},"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","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","ZOHODESK","ORACLEENTERPRISEMANAGER","OPENOBSERVE","OPENSEARCH","OPENITCOCKPIT","ODOO","OPENNMS","DBMARLIN","TIDEWAYS","SOPHOS","BLEEMEO","UPTRENDS"]},"AlertPriorityRule":{"type":"string","enum":["HIGH","LOW","HIGH_DURING_SUPPORT_HOURS","LOW_DURING_SUPPORT_HOURS"]},"SupportHour":{"required":["name","timezone"],"type":"object","description":"Weekly support hour coverage. Every write of the coverage itself -- a support hour of its own, or an alert source's inline support hours, which carry no id -- must send supportDays or supportWindows: a body with neither is rejected with 400 rather than read as a request to clear the coverage. An alert source that references an existing support hour sends its id alone and needs neither field.","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","description":"A single window per day, kept for existing clients. Lossy once coverage is not representable per day (several windows a day, or an arc across midnight): each day then reports the earliest part of its coverage, and an end at midnight is reported as 23:59. Use supportWindows for the complete picture. On input, sending it back exactly as it was read leaves the coverage unchanged, so a client that only knows supportDays can still rename a support hour or move it to another timezone. A supportDays that differs is applied when the current coverage fits one window per day, and rejected with 400 when it does not, because rebuilding the week from a lossy view would silently drop the coverage it cannot express -- change such coverage with supportWindows instead.","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"}}},"supportWindows":{"type":"array","nullable":true,"maxItems":84,"description":"The complete weekly coverage as arcs, each covering [from, to). An arc whose 'to' is at or before its 'from' wraps past Sunday midnight, so FRIDAY 17:00 to MONDAY 09:00 is one arc; 'from' equal to 'to' is the whole week. Responses list the arcs merged and in ascending order, and return null when supportDays already describes the coverage exactly. On input, when present, it is the coverage of the whole support hour: an empty array clears the weekly coverage, and overlapping or touching arcs are merged. supportDays may be sent alongside it only when it is the per-day view of these arcs; one describing different coverage is rejected with 400. Times are whole minutes (HH:mm); a seconds part is accepted only when it is zero. Only a support hour of its own accepts arcs: an alert source's inline supportHours is one window per day, and sending supportWindows there is rejected.","items":{"$ref":"#/components/schemas/SupportWindow"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/SupportHourException"}},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"currentStatus":{"type":"string","description":"Whether the support hour covers this moment. An include field: request it with include=currentStatus.","enum":["DURING","OUTSIDE"],"readOnly":true},"currentStatusUntil":{"type":"string","description":"When currentStatus next changes, as a local date-time in this support hour's timezone, e.g. 2026-09-18T17:00. Null when no change is in sight: coverage that never ends, no coverage at all, or a covered holiday reaching beyond the three weeks looked ahead. Returned together with currentStatus.","readOnly":true}}},"TimeZone":{"type":"string","enum":["Europe/Berlin","America/New_York","America/Los_Angeles","Asia/Istanbul"]},"SupportDay":{"required":["end","start"],"type":"object","properties":{"start":{"type":"string","format":"time"},"end":{"type":"string","format":"time"}}},"SupportWindow":{"required":["from","to"],"type":"object","properties":{"from":{"$ref":"#/components/schemas/TimeOfWeek"},"to":{"$ref":"#/components/schemas/TimeOfWeek"}}},"TimeOfWeek":{"required":["dayOfWeek","time"],"type":"object","properties":{"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"time":{"type":"string","format":"15:00"}}},"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"]}}},"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: <br />`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"}}}},"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"}}}},"AlertSourceTemplateElementArg":{"type":"object","properties":{"S":{"type":"string"},"N":{"type":"integer"}}},"AlertSourceLinkTemplate":{"required":["hrefTemplate","text"],"type":"object","properties":{"text":{"type":"string"},"hrefTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"}}},"AlertSourcePriorityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourcePriorityTemplateMapping"}}}},"AlertSourcePriorityTemplateMapping":{"required":["priority","value"],"type":"object","properties":{"value":{"type":"string"},"priority":{"type":"string","enum":["LOW","HIGH"]}}},"AlertSourceSeverityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourceSeverityTemplateMapping"}}}},"AlertSourceSeverityTemplateMapping":{"required":["severity","value"],"type":"object","properties":{"value":{"type":"string"},"severity":{"type":"integer","format":"int32"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"publicStatus":{"$ref":"#/components/schemas/ServiceStatus"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Free-form key-value labels assigned to this service."},"iconUrl":{"type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/ServiceLink"}},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/ServiceDependency"},"description":"This is an include field, it is not available in the list resource"}}},"ServiceStatus":{"type":"string","description":"the service status","enum":["OPERATIONAL","UNDER_MAINTENANCE","DEGRADED","PARTIAL_OUTAGE","MAJOR_OUTAGE"]},"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"}}},"ServiceOutage":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/ServiceStatus"},"from":{"type":"string","format":"date-time"},"until":{"type":"string","format":"date-time"}}},"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}}}}},"ServiceLink":{"type":"object","properties":{"href":{"type":"string","format":"uri"},"text":{"type":"string"}}},"ServiceDependency":{"type":"object","required":["targetServiceId"],"properties":{"id":{"type":"integer","format":"int64","readOnly":true},"sourceServiceId":{"type":"integer","format":"int64","description":"The service that depends on the target service."},"targetServiceId":{"type":"integer","format":"int64","description":"The service that is being depended upon."},"notes":{"type":"string"},"invalidAfter":{"type":"string","format":"date-time","description":"Point in time after which this dependency is no longer considered valid."},"createdAt":{"type":"string","format":"date-time","readOnly":true},"updatedAt":{"type":"string","format":"date-time","readOnly":true},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"User":{"required":["email","firstName","lastName"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"timezone":{"$ref":"#/components/schemas/TimeZone"},"position":{"type":"string"},"department":{"type":"string"},"avatarUrl":{"type":"string","readOnly":true},"language":{"type":"string","enum":["de","en","it","fr","es"],"description":"Language of the user. `it`, `fr` and `es` only apply to notifications; the web app is shown in English for these languages."},"region":{"type":"string","enum":["DE","GB","CH","CN","IN","US","FR","ES","CA","IE"]},"role":{"$ref":"#/components/schemas/Role"},"shiftColor":{"type":"string","description":"Optional hex-color code for the user's shifts in schedules calendars"},"mutedUntil":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"createdAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"updatedAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"}}},"Role":{"type":"string","enum":["STAKEHOLDER","GUEST","VIEWER","RESPONDER","USER","ADMIN"],"description":"The user's role."},"AlertResponder":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserRel"},"status":{"type":"string","enum":["PENDING","ACCEPTED"]},"acceptedAt":{"type":"string","format":"date-time"}}}}},"paths":{"/alerts":{"post":{"tags":["Alerts"],"summary":"Create alerts with customised parameters without requiring events from monitoring tools that use our Events API.","description":"ATTENTION: do not use this endpoint to create monitoring related (or high volumes of) alerts, use '/api/events' instead, you have been warned! Escalation of the alert will be based on the alert source's escalation policy or may be overridden by providing a specific escalation policy or lastly specific set of responders (users), latter will only notify the user(s) and will not escalate any further.","requestBody":{"description":"the alert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualAlert"}}},"required":true},"responses":{"201":{"description":"the created and freshly escalated alert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}}}}}}}}
```

## List the distinct label keys used by the alerts of this account.

> Fixed page size of 100. \`start-index\` must be 0 or a multiple of 100 and \`max-results\` must be 100; any other value returns 400.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"LabelKey":{"type":"object","properties":{"key":{"type":"string"}}}}},"paths":{"/alerts/labels":{"get":{"tags":["Alerts"],"summary":"List the distinct label keys used by the alerts of this account.","description":"Fixed page size of 100. `start-index` must be 0 or a multiple of 100 and `max-results` must be 100; any other value returns 400.","parameters":[{"name":"query","in":"query","description":"Filter the returned label keys by prefix.","schema":{"type":"string"}},{"name":"start-index","in":"query","description":"must be 0 or a multiple of 100","schema":{"type":"integer","default":0}},{"name":"max-results","in":"query","description":"must be 100","schema":{"type":"integer","default":100}}],"responses":{"200":{"description":"the list of distinct label keys","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabelKey"}}}}}}}}}}
```

## List the distinct values used for a label key by the alerts of this account.

> Fixed page size of 100. \`start-index\` must be 0 or a multiple of 100 and \`max-results\` must be 100; any other value returns 400.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"LabelValue":{"type":"object","properties":{"value":{"type":"string"}}}}},"paths":{"/alerts/labels/{key}/values":{"get":{"tags":["Alerts"],"summary":"List the distinct values used for a label key by the alerts of this account.","description":"Fixed page size of 100. `start-index` must be 0 or a multiple of 100 and `max-results` must be 100; any other value returns 400.","parameters":[{"name":"key","in":"path","description":"the label key","required":true,"schema":{"type":"string"}},{"name":"query","in":"query","description":"Filter the returned label values by prefix.","schema":{"type":"string"}},{"name":"start-index","in":"query","description":"must be 0 or a multiple of 100","schema":{"type":"integer","default":0}},{"name":"max-results","in":"query","description":"must be 100","schema":{"type":"integer","default":100}}],"responses":{"200":{"description":"the list of distinct label values","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabelValue"}}}}}}}}}}
```

## Get the number of alerts matching the given filters.

> Accepts the same filters as the alert list operation and returns the number of matching alerts.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"AlertPriority":{"type":"string","enum":["HIGH","LOW"]},"CountResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int64"}}}}},"paths":{"/alerts/count":{"get":{"tags":["Alerts"],"summary":"Get the number of alerts matching the given filters.","description":"Accepts the same filters as the alert list operation and returns the number of matching alerts.","parameters":[{"name":"states","in":"query","description":"state of the alert","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["PENDING","ACCEPTED","RESOLVED"]}}},{"name":"sources","in":"query","description":"alert source IDs of the alert's alert source","style":"form","explode":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}},{"name":"policies","in":"query","description":"escalation policy IDs of the alert's escalation policy","style":"form","explode":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}},{"name":"responders","in":"query","description":"user ids of the user that is a responder of the alert","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"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"}},{"name":"merge-state","in":"query","description":"merge state of the alert","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["NONE","MAIN","MERGED"]}}},{"name":"priorities","in":"query","description":"priority of the alert","style":"form","explode":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertPriority"}}},{"name":"services","in":"query","description":"ids of the affected services","style":"form","explode":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}},{"name":"severities","in":"query","description":"severity of the alert, in range 1..5","style":"form","explode":true,"schema":{"type":"array","items":{"type":"integer","format":"int32","minimum":1,"maximum":5}}},{"name":"labels","in":"query","description":"Filter by labels using a condition expression. Supports the operators `==`, `!=`, `in` and `not_in`, combined with `and` (up to 20 conditions). Values must be url-encoded. An invalid expression returns 400. Examples: `environment == 'production'`, `region in [\"us-east\", \"us-west\"]`, `environment == 'production' and severity != 'low'`.","schema":{"type":"string"}}],"responses":{"200":{"description":"the number of matching alerts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountResponse"}}}}}}}}}
```

## GET /alerts/{id}

> Get the alert with the specified id.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"Alert":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"summary":{"type":"string"},"details":{"type":"string"},"reportTime":{"type":"string","format":"date-time"},"resolvedOn":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","ACCEPTED","RESOLVED"]},"alertSource":{"$ref":"#/components/schemas/AlertSource"},"escalationPolicy":{"$ref":"#/components/schemas/EscalationPolicy"},"priority":{"$ref":"#/components/schemas/AlertPriority"},"alertKey":{"type":"string"},"assignedTo":{"type":"object","properties":{"id":{"type":"number"}},"description":"This field (type: User) is deprecated, please use 'responders' instead"},"nextEscalation":{"type":"string","format":"date-time","readOnly":true},"escalationRules":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/EscalationRule"}},"nextEscalationUser":{"$ref":"#/components/schemas/User"},"nextEscalationRuleIndex":{"type":"number","readOnly":true},"images":{"type":"array","items":{"$ref":"#/components/schemas/EventImage"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/EventLink"}},"responders":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AlertResponder"}},"severity":{"maximum":5,"minimum":1,"type":"integer","format":"int32","description":"Optional severity in range 1..5."},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional key/value labels that are attached to the alert."},"customDetails":{"type":"object","additionalProperties":true,"description":"Free-form custom key/value details attached to the alert. This is the original event payload of the integration. Only present with ?include=customDetails on the single-alert GET (not on the list endpoint)."},"linkedIncidentId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the incident this alert is linked to, if any."},"mergedIntoId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the alert this alert has been merged into, if any."},"mergeState":{"type":"string","readOnly":true,"enum":["NONE","MAIN","MERGED"],"description":"The merge state of the alert."}}},"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_OPEN_ALERT_ALLOWED","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},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"TeamRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"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"}}}},"UserRel":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"}}},"ScheduleRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"type":{"type":"string","enum":["STATIC","RECURRING"]}}},"ManagedBy":{"type":"object","readOnly":true,"description":"Present when this entity is managed outside of the ilert web app, for example through Terraform, Pulumi or the API. Read-only.","properties":{"type":{"type":"string","enum":["API","TERRAFORM","PULUMI","ILERT"]},"source":{"type":"string","description":"Identifier of the system managing this entity."}}},"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","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","ZOHODESK","ORACLEENTERPRISEMANAGER","OPENOBSERVE","OPENSEARCH","OPENITCOCKPIT","ODOO","OPENNMS","DBMARLIN","TIDEWAYS","SOPHOS","BLEEMEO","UPTRENDS"]},"AlertPriorityRule":{"type":"string","enum":["HIGH","LOW","HIGH_DURING_SUPPORT_HOURS","LOW_DURING_SUPPORT_HOURS"]},"SupportHour":{"required":["name","timezone"],"type":"object","description":"Weekly support hour coverage. Every write of the coverage itself -- a support hour of its own, or an alert source's inline support hours, which carry no id -- must send supportDays or supportWindows: a body with neither is rejected with 400 rather than read as a request to clear the coverage. An alert source that references an existing support hour sends its id alone and needs neither field.","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","description":"A single window per day, kept for existing clients. Lossy once coverage is not representable per day (several windows a day, or an arc across midnight): each day then reports the earliest part of its coverage, and an end at midnight is reported as 23:59. Use supportWindows for the complete picture. On input, sending it back exactly as it was read leaves the coverage unchanged, so a client that only knows supportDays can still rename a support hour or move it to another timezone. A supportDays that differs is applied when the current coverage fits one window per day, and rejected with 400 when it does not, because rebuilding the week from a lossy view would silently drop the coverage it cannot express -- change such coverage with supportWindows instead.","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"}}},"supportWindows":{"type":"array","nullable":true,"maxItems":84,"description":"The complete weekly coverage as arcs, each covering [from, to). An arc whose 'to' is at or before its 'from' wraps past Sunday midnight, so FRIDAY 17:00 to MONDAY 09:00 is one arc; 'from' equal to 'to' is the whole week. Responses list the arcs merged and in ascending order, and return null when supportDays already describes the coverage exactly. On input, when present, it is the coverage of the whole support hour: an empty array clears the weekly coverage, and overlapping or touching arcs are merged. supportDays may be sent alongside it only when it is the per-day view of these arcs; one describing different coverage is rejected with 400. Times are whole minutes (HH:mm); a seconds part is accepted only when it is zero. Only a support hour of its own accepts arcs: an alert source's inline supportHours is one window per day, and sending supportWindows there is rejected.","items":{"$ref":"#/components/schemas/SupportWindow"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/SupportHourException"}},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"currentStatus":{"type":"string","description":"Whether the support hour covers this moment. An include field: request it with include=currentStatus.","enum":["DURING","OUTSIDE"],"readOnly":true},"currentStatusUntil":{"type":"string","description":"When currentStatus next changes, as a local date-time in this support hour's timezone, e.g. 2026-09-18T17:00. Null when no change is in sight: coverage that never ends, no coverage at all, or a covered holiday reaching beyond the three weeks looked ahead. Returned together with currentStatus.","readOnly":true}}},"TimeZone":{"type":"string","enum":["Europe/Berlin","America/New_York","America/Los_Angeles","Asia/Istanbul"]},"SupportDay":{"required":["end","start"],"type":"object","properties":{"start":{"type":"string","format":"time"},"end":{"type":"string","format":"time"}}},"SupportWindow":{"required":["from","to"],"type":"object","properties":{"from":{"$ref":"#/components/schemas/TimeOfWeek"},"to":{"$ref":"#/components/schemas/TimeOfWeek"}}},"TimeOfWeek":{"required":["dayOfWeek","time"],"type":"object","properties":{"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"time":{"type":"string","format":"15:00"}}},"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"]}}},"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: <br />`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"}}}},"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"}}}},"AlertSourceTemplateElementArg":{"type":"object","properties":{"S":{"type":"string"},"N":{"type":"integer"}}},"AlertSourceLinkTemplate":{"required":["hrefTemplate","text"],"type":"object","properties":{"text":{"type":"string"},"hrefTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"}}},"AlertSourcePriorityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourcePriorityTemplateMapping"}}}},"AlertSourcePriorityTemplateMapping":{"required":["priority","value"],"type":"object","properties":{"value":{"type":"string"},"priority":{"type":"string","enum":["LOW","HIGH"]}}},"AlertSourceSeverityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourceSeverityTemplateMapping"}}}},"AlertSourceSeverityTemplateMapping":{"required":["severity","value"],"type":"object","properties":{"value":{"type":"string"},"severity":{"type":"integer","format":"int32"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"publicStatus":{"$ref":"#/components/schemas/ServiceStatus"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Free-form key-value labels assigned to this service."},"iconUrl":{"type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/ServiceLink"}},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/ServiceDependency"},"description":"This is an include field, it is not available in the list resource"}}},"ServiceStatus":{"type":"string","description":"the service status","enum":["OPERATIONAL","UNDER_MAINTENANCE","DEGRADED","PARTIAL_OUTAGE","MAJOR_OUTAGE"]},"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"}}},"ServiceOutage":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/ServiceStatus"},"from":{"type":"string","format":"date-time"},"until":{"type":"string","format":"date-time"}}},"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}}}}},"ServiceLink":{"type":"object","properties":{"href":{"type":"string","format":"uri"},"text":{"type":"string"}}},"ServiceDependency":{"type":"object","required":["targetServiceId"],"properties":{"id":{"type":"integer","format":"int64","readOnly":true},"sourceServiceId":{"type":"integer","format":"int64","description":"The service that depends on the target service."},"targetServiceId":{"type":"integer","format":"int64","description":"The service that is being depended upon."},"notes":{"type":"string"},"invalidAfter":{"type":"string","format":"date-time","description":"Point in time after which this dependency is no longer considered valid."},"createdAt":{"type":"string","format":"date-time","readOnly":true},"updatedAt":{"type":"string","format":"date-time","readOnly":true},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"AlertPriority":{"type":"string","enum":["HIGH","LOW"]},"User":{"required":["email","firstName","lastName"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"timezone":{"$ref":"#/components/schemas/TimeZone"},"position":{"type":"string"},"department":{"type":"string"},"avatarUrl":{"type":"string","readOnly":true},"language":{"type":"string","enum":["de","en","it","fr","es"],"description":"Language of the user. `it`, `fr` and `es` only apply to notifications; the web app is shown in English for these languages."},"region":{"type":"string","enum":["DE","GB","CH","CN","IN","US","FR","ES","CA","IE"]},"role":{"$ref":"#/components/schemas/Role"},"shiftColor":{"type":"string","description":"Optional hex-color code for the user's shifts in schedules calendars"},"mutedUntil":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"createdAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"updatedAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"}}},"Role":{"type":"string","enum":["STAKEHOLDER","GUEST","VIEWER","RESPONDER","USER","ADMIN"],"description":"The user's role."},"EventImage":{"type":"object","properties":{"src":{"type":"string"},"href":{"type":"string"},"alt":{"type":"string"}}},"EventLink":{"type":"object","properties":{"href":{"type":"string"},"text":{"type":"string"}}},"AlertResponder":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserRel"},"status":{"type":"string","enum":["PENDING","ACCEPTED"]},"acceptedAt":{"type":"string","format":"date-time"}}}}},"paths":{"/alerts/{id}":{"get":{"tags":["Alerts"],"summary":"Get the alert with the specified id.","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. (escalationRules, nextEscalationUser, customDetails)","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["escalationRules","nextEscalationUser","customDetails"]}}}],"responses":{"200":{"description":"alert object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}}}}}}}}
```

## GET /alerts/{id}/suggested-responders

> Get available (assignable) responders for the alert with the specified id.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"SuggestedResponder":{"type":"object","properties":{"group":{"type":"string","enum":["SUGGESTED","USER","ESCALATION_POLICY","ON_CALL_SCHEDULE"]},"id":{"type":"number"},"name":{"type":"string"},"disabled":{"type":"boolean"}}}}},"paths":{"/alerts/{id}/suggested-responders":{"get":{"tags":["Alerts"],"summary":"Get available (assignable) responders for the alert with the specified id.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}},{"name":"lang","in":"query","description":"locale for response text eg. 'en' or 'de'","schema":{"type":"string"}}],"responses":{"200":{"description":"the list of alert responders","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SuggestedResponder"}}}}}}}}}}
```

## POST /alerts/{id}/responders

> Add an additional responder to the alert.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"AlertResponder":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserRel"},"status":{"type":"string","enum":["PENDING","ACCEPTED"]},"acceptedAt":{"type":"string","format":"date-time"}}},"UserRel":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"}}}}},"paths":{"/alerts/{id}/responders":{"post":{"tags":["Alerts"],"summary":"Add an additional responder to the alert.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}}],"responses":{"201":{"description":"the created alert responder object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertResponder"}}}},"404":{"description":"Responder did not exist","content":{}},"405":{"description":"Responder is already present on the alert","content":{}}}}}}}
```

## DELETE /alerts/{id}/responders/{user-id}

> Remove a responder from the alert.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}}},"paths":{"/alerts/{id}/responders/{user-id}":{"delete":{"tags":["Alerts"],"summary":"Remove a responder from the alert.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}},{"name":"user-id","in":"path","description":"numeric user id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Responder has been removed","content":{}},"404":{"description":"Responder did not exist","content":{}}}}}}}
```

## Assign the alert.

> Either provide a user-id, policy-id (escalation policy) or schedule-id (on-call schedule) that the specific alert should be assigned to.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"Alert":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"summary":{"type":"string"},"details":{"type":"string"},"reportTime":{"type":"string","format":"date-time"},"resolvedOn":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","ACCEPTED","RESOLVED"]},"alertSource":{"$ref":"#/components/schemas/AlertSource"},"escalationPolicy":{"$ref":"#/components/schemas/EscalationPolicy"},"priority":{"$ref":"#/components/schemas/AlertPriority"},"alertKey":{"type":"string"},"assignedTo":{"type":"object","properties":{"id":{"type":"number"}},"description":"This field (type: User) is deprecated, please use 'responders' instead"},"nextEscalation":{"type":"string","format":"date-time","readOnly":true},"escalationRules":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/EscalationRule"}},"nextEscalationUser":{"$ref":"#/components/schemas/User"},"nextEscalationRuleIndex":{"type":"number","readOnly":true},"images":{"type":"array","items":{"$ref":"#/components/schemas/EventImage"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/EventLink"}},"responders":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AlertResponder"}},"severity":{"maximum":5,"minimum":1,"type":"integer","format":"int32","description":"Optional severity in range 1..5."},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional key/value labels that are attached to the alert."},"customDetails":{"type":"object","additionalProperties":true,"description":"Free-form custom key/value details attached to the alert. This is the original event payload of the integration. Only present with ?include=customDetails on the single-alert GET (not on the list endpoint)."},"linkedIncidentId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the incident this alert is linked to, if any."},"mergedIntoId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the alert this alert has been merged into, if any."},"mergeState":{"type":"string","readOnly":true,"enum":["NONE","MAIN","MERGED"],"description":"The merge state of the alert."}}},"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_OPEN_ALERT_ALLOWED","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},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"TeamRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"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"}}}},"UserRel":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"}}},"ScheduleRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"type":{"type":"string","enum":["STATIC","RECURRING"]}}},"ManagedBy":{"type":"object","readOnly":true,"description":"Present when this entity is managed outside of the ilert web app, for example through Terraform, Pulumi or the API. Read-only.","properties":{"type":{"type":"string","enum":["API","TERRAFORM","PULUMI","ILERT"]},"source":{"type":"string","description":"Identifier of the system managing this entity."}}},"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","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","ZOHODESK","ORACLEENTERPRISEMANAGER","OPENOBSERVE","OPENSEARCH","OPENITCOCKPIT","ODOO","OPENNMS","DBMARLIN","TIDEWAYS","SOPHOS","BLEEMEO","UPTRENDS"]},"AlertPriorityRule":{"type":"string","enum":["HIGH","LOW","HIGH_DURING_SUPPORT_HOURS","LOW_DURING_SUPPORT_HOURS"]},"SupportHour":{"required":["name","timezone"],"type":"object","description":"Weekly support hour coverage. Every write of the coverage itself -- a support hour of its own, or an alert source's inline support hours, which carry no id -- must send supportDays or supportWindows: a body with neither is rejected with 400 rather than read as a request to clear the coverage. An alert source that references an existing support hour sends its id alone and needs neither field.","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","description":"A single window per day, kept for existing clients. Lossy once coverage is not representable per day (several windows a day, or an arc across midnight): each day then reports the earliest part of its coverage, and an end at midnight is reported as 23:59. Use supportWindows for the complete picture. On input, sending it back exactly as it was read leaves the coverage unchanged, so a client that only knows supportDays can still rename a support hour or move it to another timezone. A supportDays that differs is applied when the current coverage fits one window per day, and rejected with 400 when it does not, because rebuilding the week from a lossy view would silently drop the coverage it cannot express -- change such coverage with supportWindows instead.","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"}}},"supportWindows":{"type":"array","nullable":true,"maxItems":84,"description":"The complete weekly coverage as arcs, each covering [from, to). An arc whose 'to' is at or before its 'from' wraps past Sunday midnight, so FRIDAY 17:00 to MONDAY 09:00 is one arc; 'from' equal to 'to' is the whole week. Responses list the arcs merged and in ascending order, and return null when supportDays already describes the coverage exactly. On input, when present, it is the coverage of the whole support hour: an empty array clears the weekly coverage, and overlapping or touching arcs are merged. supportDays may be sent alongside it only when it is the per-day view of these arcs; one describing different coverage is rejected with 400. Times are whole minutes (HH:mm); a seconds part is accepted only when it is zero. Only a support hour of its own accepts arcs: an alert source's inline supportHours is one window per day, and sending supportWindows there is rejected.","items":{"$ref":"#/components/schemas/SupportWindow"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/SupportHourException"}},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"currentStatus":{"type":"string","description":"Whether the support hour covers this moment. An include field: request it with include=currentStatus.","enum":["DURING","OUTSIDE"],"readOnly":true},"currentStatusUntil":{"type":"string","description":"When currentStatus next changes, as a local date-time in this support hour's timezone, e.g. 2026-09-18T17:00. Null when no change is in sight: coverage that never ends, no coverage at all, or a covered holiday reaching beyond the three weeks looked ahead. Returned together with currentStatus.","readOnly":true}}},"TimeZone":{"type":"string","enum":["Europe/Berlin","America/New_York","America/Los_Angeles","Asia/Istanbul"]},"SupportDay":{"required":["end","start"],"type":"object","properties":{"start":{"type":"string","format":"time"},"end":{"type":"string","format":"time"}}},"SupportWindow":{"required":["from","to"],"type":"object","properties":{"from":{"$ref":"#/components/schemas/TimeOfWeek"},"to":{"$ref":"#/components/schemas/TimeOfWeek"}}},"TimeOfWeek":{"required":["dayOfWeek","time"],"type":"object","properties":{"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"time":{"type":"string","format":"15:00"}}},"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"]}}},"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: <br />`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"}}}},"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"}}}},"AlertSourceTemplateElementArg":{"type":"object","properties":{"S":{"type":"string"},"N":{"type":"integer"}}},"AlertSourceLinkTemplate":{"required":["hrefTemplate","text"],"type":"object","properties":{"text":{"type":"string"},"hrefTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"}}},"AlertSourcePriorityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourcePriorityTemplateMapping"}}}},"AlertSourcePriorityTemplateMapping":{"required":["priority","value"],"type":"object","properties":{"value":{"type":"string"},"priority":{"type":"string","enum":["LOW","HIGH"]}}},"AlertSourceSeverityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourceSeverityTemplateMapping"}}}},"AlertSourceSeverityTemplateMapping":{"required":["severity","value"],"type":"object","properties":{"value":{"type":"string"},"severity":{"type":"integer","format":"int32"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"publicStatus":{"$ref":"#/components/schemas/ServiceStatus"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Free-form key-value labels assigned to this service."},"iconUrl":{"type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/ServiceLink"}},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/ServiceDependency"},"description":"This is an include field, it is not available in the list resource"}}},"ServiceStatus":{"type":"string","description":"the service status","enum":["OPERATIONAL","UNDER_MAINTENANCE","DEGRADED","PARTIAL_OUTAGE","MAJOR_OUTAGE"]},"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"}}},"ServiceOutage":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/ServiceStatus"},"from":{"type":"string","format":"date-time"},"until":{"type":"string","format":"date-time"}}},"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}}}}},"ServiceLink":{"type":"object","properties":{"href":{"type":"string","format":"uri"},"text":{"type":"string"}}},"ServiceDependency":{"type":"object","required":["targetServiceId"],"properties":{"id":{"type":"integer","format":"int64","readOnly":true},"sourceServiceId":{"type":"integer","format":"int64","description":"The service that depends on the target service."},"targetServiceId":{"type":"integer","format":"int64","description":"The service that is being depended upon."},"notes":{"type":"string"},"invalidAfter":{"type":"string","format":"date-time","description":"Point in time after which this dependency is no longer considered valid."},"createdAt":{"type":"string","format":"date-time","readOnly":true},"updatedAt":{"type":"string","format":"date-time","readOnly":true},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"AlertPriority":{"type":"string","enum":["HIGH","LOW"]},"User":{"required":["email","firstName","lastName"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"timezone":{"$ref":"#/components/schemas/TimeZone"},"position":{"type":"string"},"department":{"type":"string"},"avatarUrl":{"type":"string","readOnly":true},"language":{"type":"string","enum":["de","en","it","fr","es"],"description":"Language of the user. `it`, `fr` and `es` only apply to notifications; the web app is shown in English for these languages."},"region":{"type":"string","enum":["DE","GB","CH","CN","IN","US","FR","ES","CA","IE"]},"role":{"$ref":"#/components/schemas/Role"},"shiftColor":{"type":"string","description":"Optional hex-color code for the user's shifts in schedules calendars"},"mutedUntil":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"createdAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"updatedAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"}}},"Role":{"type":"string","enum":["STAKEHOLDER","GUEST","VIEWER","RESPONDER","USER","ADMIN"],"description":"The user's role."},"EventImage":{"type":"object","properties":{"src":{"type":"string"},"href":{"type":"string"},"alt":{"type":"string"}}},"EventLink":{"type":"object","properties":{"href":{"type":"string"},"text":{"type":"string"}}},"AlertResponder":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserRel"},"status":{"type":"string","enum":["PENDING","ACCEPTED"]},"acceptedAt":{"type":"string","format":"date-time"}}}}},"paths":{"/alerts/{id}/assign":{"put":{"tags":["Alerts"],"summary":"Assign the alert.","description":"Either provide a user-id, policy-id (escalation policy) or schedule-id (on-call schedule) that the specific alert should be assigned to.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}},{"name":"user","in":"query","description":"numeric user id","schema":{"type":"string"}},{"name":"policy","in":"query","description":"numeric policy id","schema":{"type":"string"}},{"name":"schedule","in":"query","description":"numeric schedule id","schema":{"type":"string"}}],"responses":{"200":{"description":"the updated alert object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}}}}}}}}
```

## PUT /alerts/{id}/accept

> Accept the Alert.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"Alert":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"summary":{"type":"string"},"details":{"type":"string"},"reportTime":{"type":"string","format":"date-time"},"resolvedOn":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","ACCEPTED","RESOLVED"]},"alertSource":{"$ref":"#/components/schemas/AlertSource"},"escalationPolicy":{"$ref":"#/components/schemas/EscalationPolicy"},"priority":{"$ref":"#/components/schemas/AlertPriority"},"alertKey":{"type":"string"},"assignedTo":{"type":"object","properties":{"id":{"type":"number"}},"description":"This field (type: User) is deprecated, please use 'responders' instead"},"nextEscalation":{"type":"string","format":"date-time","readOnly":true},"escalationRules":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/EscalationRule"}},"nextEscalationUser":{"$ref":"#/components/schemas/User"},"nextEscalationRuleIndex":{"type":"number","readOnly":true},"images":{"type":"array","items":{"$ref":"#/components/schemas/EventImage"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/EventLink"}},"responders":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AlertResponder"}},"severity":{"maximum":5,"minimum":1,"type":"integer","format":"int32","description":"Optional severity in range 1..5."},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional key/value labels that are attached to the alert."},"customDetails":{"type":"object","additionalProperties":true,"description":"Free-form custom key/value details attached to the alert. This is the original event payload of the integration. Only present with ?include=customDetails on the single-alert GET (not on the list endpoint)."},"linkedIncidentId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the incident this alert is linked to, if any."},"mergedIntoId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the alert this alert has been merged into, if any."},"mergeState":{"type":"string","readOnly":true,"enum":["NONE","MAIN","MERGED"],"description":"The merge state of the alert."}}},"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_OPEN_ALERT_ALLOWED","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},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"TeamRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"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"}}}},"UserRel":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"}}},"ScheduleRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"type":{"type":"string","enum":["STATIC","RECURRING"]}}},"ManagedBy":{"type":"object","readOnly":true,"description":"Present when this entity is managed outside of the ilert web app, for example through Terraform, Pulumi or the API. Read-only.","properties":{"type":{"type":"string","enum":["API","TERRAFORM","PULUMI","ILERT"]},"source":{"type":"string","description":"Identifier of the system managing this entity."}}},"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","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","ZOHODESK","ORACLEENTERPRISEMANAGER","OPENOBSERVE","OPENSEARCH","OPENITCOCKPIT","ODOO","OPENNMS","DBMARLIN","TIDEWAYS","SOPHOS","BLEEMEO","UPTRENDS"]},"AlertPriorityRule":{"type":"string","enum":["HIGH","LOW","HIGH_DURING_SUPPORT_HOURS","LOW_DURING_SUPPORT_HOURS"]},"SupportHour":{"required":["name","timezone"],"type":"object","description":"Weekly support hour coverage. Every write of the coverage itself -- a support hour of its own, or an alert source's inline support hours, which carry no id -- must send supportDays or supportWindows: a body with neither is rejected with 400 rather than read as a request to clear the coverage. An alert source that references an existing support hour sends its id alone and needs neither field.","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","description":"A single window per day, kept for existing clients. Lossy once coverage is not representable per day (several windows a day, or an arc across midnight): each day then reports the earliest part of its coverage, and an end at midnight is reported as 23:59. Use supportWindows for the complete picture. On input, sending it back exactly as it was read leaves the coverage unchanged, so a client that only knows supportDays can still rename a support hour or move it to another timezone. A supportDays that differs is applied when the current coverage fits one window per day, and rejected with 400 when it does not, because rebuilding the week from a lossy view would silently drop the coverage it cannot express -- change such coverage with supportWindows instead.","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"}}},"supportWindows":{"type":"array","nullable":true,"maxItems":84,"description":"The complete weekly coverage as arcs, each covering [from, to). An arc whose 'to' is at or before its 'from' wraps past Sunday midnight, so FRIDAY 17:00 to MONDAY 09:00 is one arc; 'from' equal to 'to' is the whole week. Responses list the arcs merged and in ascending order, and return null when supportDays already describes the coverage exactly. On input, when present, it is the coverage of the whole support hour: an empty array clears the weekly coverage, and overlapping or touching arcs are merged. supportDays may be sent alongside it only when it is the per-day view of these arcs; one describing different coverage is rejected with 400. Times are whole minutes (HH:mm); a seconds part is accepted only when it is zero. Only a support hour of its own accepts arcs: an alert source's inline supportHours is one window per day, and sending supportWindows there is rejected.","items":{"$ref":"#/components/schemas/SupportWindow"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/SupportHourException"}},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"currentStatus":{"type":"string","description":"Whether the support hour covers this moment. An include field: request it with include=currentStatus.","enum":["DURING","OUTSIDE"],"readOnly":true},"currentStatusUntil":{"type":"string","description":"When currentStatus next changes, as a local date-time in this support hour's timezone, e.g. 2026-09-18T17:00. Null when no change is in sight: coverage that never ends, no coverage at all, or a covered holiday reaching beyond the three weeks looked ahead. Returned together with currentStatus.","readOnly":true}}},"TimeZone":{"type":"string","enum":["Europe/Berlin","America/New_York","America/Los_Angeles","Asia/Istanbul"]},"SupportDay":{"required":["end","start"],"type":"object","properties":{"start":{"type":"string","format":"time"},"end":{"type":"string","format":"time"}}},"SupportWindow":{"required":["from","to"],"type":"object","properties":{"from":{"$ref":"#/components/schemas/TimeOfWeek"},"to":{"$ref":"#/components/schemas/TimeOfWeek"}}},"TimeOfWeek":{"required":["dayOfWeek","time"],"type":"object","properties":{"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"time":{"type":"string","format":"15:00"}}},"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"]}}},"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: <br />`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"}}}},"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"}}}},"AlertSourceTemplateElementArg":{"type":"object","properties":{"S":{"type":"string"},"N":{"type":"integer"}}},"AlertSourceLinkTemplate":{"required":["hrefTemplate","text"],"type":"object","properties":{"text":{"type":"string"},"hrefTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"}}},"AlertSourcePriorityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourcePriorityTemplateMapping"}}}},"AlertSourcePriorityTemplateMapping":{"required":["priority","value"],"type":"object","properties":{"value":{"type":"string"},"priority":{"type":"string","enum":["LOW","HIGH"]}}},"AlertSourceSeverityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourceSeverityTemplateMapping"}}}},"AlertSourceSeverityTemplateMapping":{"required":["severity","value"],"type":"object","properties":{"value":{"type":"string"},"severity":{"type":"integer","format":"int32"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"publicStatus":{"$ref":"#/components/schemas/ServiceStatus"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Free-form key-value labels assigned to this service."},"iconUrl":{"type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/ServiceLink"}},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/ServiceDependency"},"description":"This is an include field, it is not available in the list resource"}}},"ServiceStatus":{"type":"string","description":"the service status","enum":["OPERATIONAL","UNDER_MAINTENANCE","DEGRADED","PARTIAL_OUTAGE","MAJOR_OUTAGE"]},"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"}}},"ServiceOutage":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/ServiceStatus"},"from":{"type":"string","format":"date-time"},"until":{"type":"string","format":"date-time"}}},"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}}}}},"ServiceLink":{"type":"object","properties":{"href":{"type":"string","format":"uri"},"text":{"type":"string"}}},"ServiceDependency":{"type":"object","required":["targetServiceId"],"properties":{"id":{"type":"integer","format":"int64","readOnly":true},"sourceServiceId":{"type":"integer","format":"int64","description":"The service that depends on the target service."},"targetServiceId":{"type":"integer","format":"int64","description":"The service that is being depended upon."},"notes":{"type":"string"},"invalidAfter":{"type":"string","format":"date-time","description":"Point in time after which this dependency is no longer considered valid."},"createdAt":{"type":"string","format":"date-time","readOnly":true},"updatedAt":{"type":"string","format":"date-time","readOnly":true},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"AlertPriority":{"type":"string","enum":["HIGH","LOW"]},"User":{"required":["email","firstName","lastName"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"timezone":{"$ref":"#/components/schemas/TimeZone"},"position":{"type":"string"},"department":{"type":"string"},"avatarUrl":{"type":"string","readOnly":true},"language":{"type":"string","enum":["de","en","it","fr","es"],"description":"Language of the user. `it`, `fr` and `es` only apply to notifications; the web app is shown in English for these languages."},"region":{"type":"string","enum":["DE","GB","CH","CN","IN","US","FR","ES","CA","IE"]},"role":{"$ref":"#/components/schemas/Role"},"shiftColor":{"type":"string","description":"Optional hex-color code for the user's shifts in schedules calendars"},"mutedUntil":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"createdAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"updatedAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"}}},"Role":{"type":"string","enum":["STAKEHOLDER","GUEST","VIEWER","RESPONDER","USER","ADMIN"],"description":"The user's role."},"EventImage":{"type":"object","properties":{"src":{"type":"string"},"href":{"type":"string"},"alt":{"type":"string"}}},"EventLink":{"type":"object","properties":{"href":{"type":"string"},"text":{"type":"string"}}},"AlertResponder":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserRel"},"status":{"type":"string","enum":["PENDING","ACCEPTED"]},"acceptedAt":{"type":"string","format":"date-time"}}}}},"paths":{"/alerts/{id}/accept":{"put":{"tags":["Alerts"],"summary":"Accept the Alert.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"the updated alert object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}}}}}}}}
```

## PUT /alerts/{id}/resolve

> Resolve the alert.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"Alert":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"summary":{"type":"string"},"details":{"type":"string"},"reportTime":{"type":"string","format":"date-time"},"resolvedOn":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","ACCEPTED","RESOLVED"]},"alertSource":{"$ref":"#/components/schemas/AlertSource"},"escalationPolicy":{"$ref":"#/components/schemas/EscalationPolicy"},"priority":{"$ref":"#/components/schemas/AlertPriority"},"alertKey":{"type":"string"},"assignedTo":{"type":"object","properties":{"id":{"type":"number"}},"description":"This field (type: User) is deprecated, please use 'responders' instead"},"nextEscalation":{"type":"string","format":"date-time","readOnly":true},"escalationRules":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/EscalationRule"}},"nextEscalationUser":{"$ref":"#/components/schemas/User"},"nextEscalationRuleIndex":{"type":"number","readOnly":true},"images":{"type":"array","items":{"$ref":"#/components/schemas/EventImage"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/EventLink"}},"responders":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AlertResponder"}},"severity":{"maximum":5,"minimum":1,"type":"integer","format":"int32","description":"Optional severity in range 1..5."},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional key/value labels that are attached to the alert."},"customDetails":{"type":"object","additionalProperties":true,"description":"Free-form custom key/value details attached to the alert. This is the original event payload of the integration. Only present with ?include=customDetails on the single-alert GET (not on the list endpoint)."},"linkedIncidentId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the incident this alert is linked to, if any."},"mergedIntoId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the alert this alert has been merged into, if any."},"mergeState":{"type":"string","readOnly":true,"enum":["NONE","MAIN","MERGED"],"description":"The merge state of the alert."}}},"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_OPEN_ALERT_ALLOWED","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},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"TeamRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"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"}}}},"UserRel":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"}}},"ScheduleRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"type":{"type":"string","enum":["STATIC","RECURRING"]}}},"ManagedBy":{"type":"object","readOnly":true,"description":"Present when this entity is managed outside of the ilert web app, for example through Terraform, Pulumi or the API. Read-only.","properties":{"type":{"type":"string","enum":["API","TERRAFORM","PULUMI","ILERT"]},"source":{"type":"string","description":"Identifier of the system managing this entity."}}},"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","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","ZOHODESK","ORACLEENTERPRISEMANAGER","OPENOBSERVE","OPENSEARCH","OPENITCOCKPIT","ODOO","OPENNMS","DBMARLIN","TIDEWAYS","SOPHOS","BLEEMEO","UPTRENDS"]},"AlertPriorityRule":{"type":"string","enum":["HIGH","LOW","HIGH_DURING_SUPPORT_HOURS","LOW_DURING_SUPPORT_HOURS"]},"SupportHour":{"required":["name","timezone"],"type":"object","description":"Weekly support hour coverage. Every write of the coverage itself -- a support hour of its own, or an alert source's inline support hours, which carry no id -- must send supportDays or supportWindows: a body with neither is rejected with 400 rather than read as a request to clear the coverage. An alert source that references an existing support hour sends its id alone and needs neither field.","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","description":"A single window per day, kept for existing clients. Lossy once coverage is not representable per day (several windows a day, or an arc across midnight): each day then reports the earliest part of its coverage, and an end at midnight is reported as 23:59. Use supportWindows for the complete picture. On input, sending it back exactly as it was read leaves the coverage unchanged, so a client that only knows supportDays can still rename a support hour or move it to another timezone. A supportDays that differs is applied when the current coverage fits one window per day, and rejected with 400 when it does not, because rebuilding the week from a lossy view would silently drop the coverage it cannot express -- change such coverage with supportWindows instead.","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"}}},"supportWindows":{"type":"array","nullable":true,"maxItems":84,"description":"The complete weekly coverage as arcs, each covering [from, to). An arc whose 'to' is at or before its 'from' wraps past Sunday midnight, so FRIDAY 17:00 to MONDAY 09:00 is one arc; 'from' equal to 'to' is the whole week. Responses list the arcs merged and in ascending order, and return null when supportDays already describes the coverage exactly. On input, when present, it is the coverage of the whole support hour: an empty array clears the weekly coverage, and overlapping or touching arcs are merged. supportDays may be sent alongside it only when it is the per-day view of these arcs; one describing different coverage is rejected with 400. Times are whole minutes (HH:mm); a seconds part is accepted only when it is zero. Only a support hour of its own accepts arcs: an alert source's inline supportHours is one window per day, and sending supportWindows there is rejected.","items":{"$ref":"#/components/schemas/SupportWindow"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/SupportHourException"}},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"currentStatus":{"type":"string","description":"Whether the support hour covers this moment. An include field: request it with include=currentStatus.","enum":["DURING","OUTSIDE"],"readOnly":true},"currentStatusUntil":{"type":"string","description":"When currentStatus next changes, as a local date-time in this support hour's timezone, e.g. 2026-09-18T17:00. Null when no change is in sight: coverage that never ends, no coverage at all, or a covered holiday reaching beyond the three weeks looked ahead. Returned together with currentStatus.","readOnly":true}}},"TimeZone":{"type":"string","enum":["Europe/Berlin","America/New_York","America/Los_Angeles","Asia/Istanbul"]},"SupportDay":{"required":["end","start"],"type":"object","properties":{"start":{"type":"string","format":"time"},"end":{"type":"string","format":"time"}}},"SupportWindow":{"required":["from","to"],"type":"object","properties":{"from":{"$ref":"#/components/schemas/TimeOfWeek"},"to":{"$ref":"#/components/schemas/TimeOfWeek"}}},"TimeOfWeek":{"required":["dayOfWeek","time"],"type":"object","properties":{"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"time":{"type":"string","format":"15:00"}}},"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"]}}},"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: <br />`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"}}}},"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"}}}},"AlertSourceTemplateElementArg":{"type":"object","properties":{"S":{"type":"string"},"N":{"type":"integer"}}},"AlertSourceLinkTemplate":{"required":["hrefTemplate","text"],"type":"object","properties":{"text":{"type":"string"},"hrefTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"}}},"AlertSourcePriorityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourcePriorityTemplateMapping"}}}},"AlertSourcePriorityTemplateMapping":{"required":["priority","value"],"type":"object","properties":{"value":{"type":"string"},"priority":{"type":"string","enum":["LOW","HIGH"]}}},"AlertSourceSeverityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourceSeverityTemplateMapping"}}}},"AlertSourceSeverityTemplateMapping":{"required":["severity","value"],"type":"object","properties":{"value":{"type":"string"},"severity":{"type":"integer","format":"int32"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"publicStatus":{"$ref":"#/components/schemas/ServiceStatus"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Free-form key-value labels assigned to this service."},"iconUrl":{"type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/ServiceLink"}},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/ServiceDependency"},"description":"This is an include field, it is not available in the list resource"}}},"ServiceStatus":{"type":"string","description":"the service status","enum":["OPERATIONAL","UNDER_MAINTENANCE","DEGRADED","PARTIAL_OUTAGE","MAJOR_OUTAGE"]},"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"}}},"ServiceOutage":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/ServiceStatus"},"from":{"type":"string","format":"date-time"},"until":{"type":"string","format":"date-time"}}},"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}}}}},"ServiceLink":{"type":"object","properties":{"href":{"type":"string","format":"uri"},"text":{"type":"string"}}},"ServiceDependency":{"type":"object","required":["targetServiceId"],"properties":{"id":{"type":"integer","format":"int64","readOnly":true},"sourceServiceId":{"type":"integer","format":"int64","description":"The service that depends on the target service."},"targetServiceId":{"type":"integer","format":"int64","description":"The service that is being depended upon."},"notes":{"type":"string"},"invalidAfter":{"type":"string","format":"date-time","description":"Point in time after which this dependency is no longer considered valid."},"createdAt":{"type":"string","format":"date-time","readOnly":true},"updatedAt":{"type":"string","format":"date-time","readOnly":true},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"AlertPriority":{"type":"string","enum":["HIGH","LOW"]},"User":{"required":["email","firstName","lastName"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"timezone":{"$ref":"#/components/schemas/TimeZone"},"position":{"type":"string"},"department":{"type":"string"},"avatarUrl":{"type":"string","readOnly":true},"language":{"type":"string","enum":["de","en","it","fr","es"],"description":"Language of the user. `it`, `fr` and `es` only apply to notifications; the web app is shown in English for these languages."},"region":{"type":"string","enum":["DE","GB","CH","CN","IN","US","FR","ES","CA","IE"]},"role":{"$ref":"#/components/schemas/Role"},"shiftColor":{"type":"string","description":"Optional hex-color code for the user's shifts in schedules calendars"},"mutedUntil":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"createdAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"updatedAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"}}},"Role":{"type":"string","enum":["STAKEHOLDER","GUEST","VIEWER","RESPONDER","USER","ADMIN"],"description":"The user's role."},"EventImage":{"type":"object","properties":{"src":{"type":"string"},"href":{"type":"string"},"alt":{"type":"string"}}},"EventLink":{"type":"object","properties":{"href":{"type":"string"},"text":{"type":"string"}}},"AlertResponder":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserRel"},"status":{"type":"string","enum":["PENDING","ACCEPTED"]},"acceptedAt":{"type":"string","format":"date-time"}}}}},"paths":{"/alerts/{id}/resolve":{"put":{"tags":["Alerts"],"summary":"Resolve the alert.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"the updated alert object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}}}}}}}}
```

## Raise the alert's priority to HIGH.

> Only PENDING alerts with priority LOW can be raised.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}}},"paths":{"/alerts/{id}/raise":{"put":{"tags":["Alerts"],"summary":"Raise the alert's priority to HIGH.","description":"Only PENDING alerts with priority LOW can be raised.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}}],"responses":{"204":{"description":"empty response","content":{}},"400":{"description":"the alert cannot be raised","content":{}}}}}}}
```

## PUT /alerts/{id}/escalate-to-level

> Escalate the alert to a specific level of its escalation policy.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}}},"paths":{"/alerts/{id}/escalate-to-level":{"put":{"tags":["Alerts"],"summary":"Escalate the alert to a specific level of its escalation policy.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}}],"requestBody":{"description":"the target escalation level","content":{"application/json":{"schema":{"required":["level"],"type":"object","properties":{"level":{"type":"integer","format":"int32","description":"zero-based escalation level"}}}}},"required":true},"responses":{"204":{"description":"empty response","content":{}}}}}}}
```

## PUT /alerts/{id}/change-summary

> Change the summary of the alert.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}}},"paths":{"/alerts/{id}/change-summary":{"put":{"tags":["Alerts"],"summary":"Change the summary of the alert.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}}],"requestBody":{"description":"the new summary","content":{"application/json":{"schema":{"required":["summary"],"type":"object","properties":{"summary":{"type":"string"}}}}},"required":true},"responses":{"204":{"description":"empty response","content":{}}}}}}}
```

## GET /alerts/{id}/merged-children

> Get the alerts that were merged into this alert.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"parameters":{"start-index":{"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}}},"schemas":{"Alert":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"summary":{"type":"string"},"details":{"type":"string"},"reportTime":{"type":"string","format":"date-time"},"resolvedOn":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","ACCEPTED","RESOLVED"]},"alertSource":{"$ref":"#/components/schemas/AlertSource"},"escalationPolicy":{"$ref":"#/components/schemas/EscalationPolicy"},"priority":{"$ref":"#/components/schemas/AlertPriority"},"alertKey":{"type":"string"},"assignedTo":{"type":"object","properties":{"id":{"type":"number"}},"description":"This field (type: User) is deprecated, please use 'responders' instead"},"nextEscalation":{"type":"string","format":"date-time","readOnly":true},"escalationRules":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/EscalationRule"}},"nextEscalationUser":{"$ref":"#/components/schemas/User"},"nextEscalationRuleIndex":{"type":"number","readOnly":true},"images":{"type":"array","items":{"$ref":"#/components/schemas/EventImage"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/EventLink"}},"responders":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AlertResponder"}},"severity":{"maximum":5,"minimum":1,"type":"integer","format":"int32","description":"Optional severity in range 1..5."},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional key/value labels that are attached to the alert."},"customDetails":{"type":"object","additionalProperties":true,"description":"Free-form custom key/value details attached to the alert. This is the original event payload of the integration. Only present with ?include=customDetails on the single-alert GET (not on the list endpoint)."},"linkedIncidentId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the incident this alert is linked to, if any."},"mergedIntoId":{"type":"integer","format":"int64","readOnly":true,"description":"Id of the alert this alert has been merged into, if any."},"mergeState":{"type":"string","readOnly":true,"enum":["NONE","MAIN","MERGED"],"description":"The merge state of the alert."}}},"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_OPEN_ALERT_ALLOWED","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},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"TeamRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"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"}}}},"UserRel":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"}}},"ScheduleRel":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"type":{"type":"string","enum":["STATIC","RECURRING"]}}},"ManagedBy":{"type":"object","readOnly":true,"description":"Present when this entity is managed outside of the ilert web app, for example through Terraform, Pulumi or the API. Read-only.","properties":{"type":{"type":"string","enum":["API","TERRAFORM","PULUMI","ILERT"]},"source":{"type":"string","description":"Identifier of the system managing this entity."}}},"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","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","ZOHODESK","ORACLEENTERPRISEMANAGER","OPENOBSERVE","OPENSEARCH","OPENITCOCKPIT","ODOO","OPENNMS","DBMARLIN","TIDEWAYS","SOPHOS","BLEEMEO","UPTRENDS"]},"AlertPriorityRule":{"type":"string","enum":["HIGH","LOW","HIGH_DURING_SUPPORT_HOURS","LOW_DURING_SUPPORT_HOURS"]},"SupportHour":{"required":["name","timezone"],"type":"object","description":"Weekly support hour coverage. Every write of the coverage itself -- a support hour of its own, or an alert source's inline support hours, which carry no id -- must send supportDays or supportWindows: a body with neither is rejected with 400 rather than read as a request to clear the coverage. An alert source that references an existing support hour sends its id alone and needs neither field.","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","description":"A single window per day, kept for existing clients. Lossy once coverage is not representable per day (several windows a day, or an arc across midnight): each day then reports the earliest part of its coverage, and an end at midnight is reported as 23:59. Use supportWindows for the complete picture. On input, sending it back exactly as it was read leaves the coverage unchanged, so a client that only knows supportDays can still rename a support hour or move it to another timezone. A supportDays that differs is applied when the current coverage fits one window per day, and rejected with 400 when it does not, because rebuilding the week from a lossy view would silently drop the coverage it cannot express -- change such coverage with supportWindows instead.","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"}}},"supportWindows":{"type":"array","nullable":true,"maxItems":84,"description":"The complete weekly coverage as arcs, each covering [from, to). An arc whose 'to' is at or before its 'from' wraps past Sunday midnight, so FRIDAY 17:00 to MONDAY 09:00 is one arc; 'from' equal to 'to' is the whole week. Responses list the arcs merged and in ascending order, and return null when supportDays already describes the coverage exactly. On input, when present, it is the coverage of the whole support hour: an empty array clears the weekly coverage, and overlapping or touching arcs are merged. supportDays may be sent alongside it only when it is the per-day view of these arcs; one describing different coverage is rejected with 400. Times are whole minutes (HH:mm); a seconds part is accepted only when it is zero. Only a support hour of its own accepts arcs: an alert source's inline supportHours is one window per day, and sending supportWindows there is rejected.","items":{"$ref":"#/components/schemas/SupportWindow"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/SupportHourException"}},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"currentStatus":{"type":"string","description":"Whether the support hour covers this moment. An include field: request it with include=currentStatus.","enum":["DURING","OUTSIDE"],"readOnly":true},"currentStatusUntil":{"type":"string","description":"When currentStatus next changes, as a local date-time in this support hour's timezone, e.g. 2026-09-18T17:00. Null when no change is in sight: coverage that never ends, no coverage at all, or a covered holiday reaching beyond the three weeks looked ahead. Returned together with currentStatus.","readOnly":true}}},"TimeZone":{"type":"string","enum":["Europe/Berlin","America/New_York","America/Los_Angeles","Asia/Istanbul"]},"SupportDay":{"required":["end","start"],"type":"object","properties":{"start":{"type":"string","format":"time"},"end":{"type":"string","format":"time"}}},"SupportWindow":{"required":["from","to"],"type":"object","properties":{"from":{"$ref":"#/components/schemas/TimeOfWeek"},"to":{"$ref":"#/components/schemas/TimeOfWeek"}}},"TimeOfWeek":{"required":["dayOfWeek","time"],"type":"object","properties":{"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"time":{"type":"string","format":"15:00"}}},"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"]}}},"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: <br />`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"}}}},"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"}}}},"AlertSourceTemplateElementArg":{"type":"object","properties":{"S":{"type":"string"},"N":{"type":"integer"}}},"AlertSourceLinkTemplate":{"required":["hrefTemplate","text"],"type":"object","properties":{"text":{"type":"string"},"hrefTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"}}},"AlertSourcePriorityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourcePriorityTemplateMapping"}}}},"AlertSourcePriorityTemplateMapping":{"required":["priority","value"],"type":"object","properties":{"value":{"type":"string"},"priority":{"type":"string","enum":["LOW","HIGH"]}}},"AlertSourceSeverityTemplate":{"required":["mappings","valueTemplate"],"type":"object","properties":{"valueTemplate":{"$ref":"#/components/schemas/AlertSourceTemplate"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourceSeverityTemplateMapping"}}}},"AlertSourceSeverityTemplateMapping":{"required":["severity","value"],"type":"object","properties":{"value":{"type":"string"},"severity":{"type":"integer","format":"int32"}}},"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"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"},"publicStatus":{"$ref":"#/components/schemas/ServiceStatus"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Free-form key-value labels assigned to this service."},"iconUrl":{"type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/ServiceLink"}},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/ServiceDependency"},"description":"This is an include field, it is not available in the list resource"}}},"ServiceStatus":{"type":"string","description":"the service status","enum":["OPERATIONAL","UNDER_MAINTENANCE","DEGRADED","PARTIAL_OUTAGE","MAJOR_OUTAGE"]},"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"}}},"ServiceOutage":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/ServiceStatus"},"from":{"type":"string","format":"date-time"},"until":{"type":"string","format":"date-time"}}},"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}}}}},"ServiceLink":{"type":"object","properties":{"href":{"type":"string","format":"uri"},"text":{"type":"string"}}},"ServiceDependency":{"type":"object","required":["targetServiceId"],"properties":{"id":{"type":"integer","format":"int64","readOnly":true},"sourceServiceId":{"type":"integer","format":"int64","description":"The service that depends on the target service."},"targetServiceId":{"type":"integer","format":"int64","description":"The service that is being depended upon."},"notes":{"type":"string"},"invalidAfter":{"type":"string","format":"date-time","description":"Point in time after which this dependency is no longer considered valid."},"createdAt":{"type":"string","format":"date-time","readOnly":true},"updatedAt":{"type":"string","format":"date-time","readOnly":true},"createdBy":{"$ref":"#/components/schemas/ManagedBy"},"managedBy":{"$ref":"#/components/schemas/ManagedBy"}}},"AlertPriority":{"type":"string","enum":["HIGH","LOW"]},"User":{"required":["email","firstName","lastName"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"timezone":{"$ref":"#/components/schemas/TimeZone"},"position":{"type":"string"},"department":{"type":"string"},"avatarUrl":{"type":"string","readOnly":true},"language":{"type":"string","enum":["de","en","it","fr","es"],"description":"Language of the user. `it`, `fr` and `es` only apply to notifications; the web app is shown in English for these languages."},"region":{"type":"string","enum":["DE","GB","CH","CN","IN","US","FR","ES","CA","IE"]},"role":{"$ref":"#/components/schemas/Role"},"shiftColor":{"type":"string","description":"Optional hex-color code for the user's shifts in schedules calendars"},"mutedUntil":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"createdAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"},"updatedAt":{"type":"string","description":"Date in ISO-8601","format":"date-time"}}},"Role":{"type":"string","enum":["STAKEHOLDER","GUEST","VIEWER","RESPONDER","USER","ADMIN"],"description":"The user's role."},"EventImage":{"type":"object","properties":{"src":{"type":"string"},"href":{"type":"string"},"alt":{"type":"string"}}},"EventLink":{"type":"object","properties":{"href":{"type":"string"},"text":{"type":"string"}}},"AlertResponder":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserRel"},"status":{"type":"string","enum":["PENDING","ACCEPTED"]},"acceptedAt":{"type":"string","format":"date-time"}}}}},"paths":{"/alerts/{id}/merged-children":{"get":{"tags":["Alerts"],"summary":"Get the alerts that were merged into this alert.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}},{"$ref":"#/components/parameters/start-index"},{"name":"max-results","in":"query","description":"the maximum number of results when paging through a list of entities.","schema":{"maximum":40,"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"a list of merged alerts","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Alert"}}}}},"400":{"description":"the alert has no merged alerts","content":{}}}}}}}
```

## PUT /alerts/accept\_bulk

> Accept multiple alerts.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"SimpleIdField64":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"}},"description":"For POST and PUT requests only the id field is required for sub entities, e.g. status page -> service, alert source -> support hour"},"AlertBulkResult":{"type":"object","description":"IDs of the processed alerts, grouped by outcome. Only the groups relevant to the operation are returned.","properties":{"successful":{"type":"array","description":"processed successfully","items":{"type":"integer","format":"int64"}},"notFound":{"type":"array","description":"not found or not accessible","items":{"type":"integer","format":"int64"}},"alreadyAccepted":{"type":"array","description":"already accepted","items":{"type":"integer","format":"int64"}},"alreadyResolved":{"type":"array","description":"already resolved","items":{"type":"integer","format":"int64"}},"alreadyMerged":{"type":"array","description":"already merged","items":{"type":"integer","format":"int64"}},"internalError":{"type":"array","description":"failed to process","items":{"type":"integer","format":"int64"}}}}}},"paths":{"/alerts/accept_bulk":{"put":{"tags":["Alerts"],"summary":"Accept multiple alerts.","requestBody":{"description":"the alerts to accept","content":{"application/json":{"schema":{"maxItems":25,"type":"array","items":{"$ref":"#/components/schemas/SimpleIdField64"}}}},"required":true},"responses":{"200":{"description":"all alerts were processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertBulkResult"}}}},"400":{"description":"at least one alert could not be processed, see the result lists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertBulkResult"}}}}}}}}}
```

## Assign multiple alerts.

> Either provide a user, policy (escalation policy) or schedule (on-call schedule) that the alerts should be assigned to.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"SimpleIdField64":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"}},"description":"For POST and PUT requests only the id field is required for sub entities, e.g. status page -> service, alert source -> support hour"},"AlertBulkResult":{"type":"object","description":"IDs of the processed alerts, grouped by outcome. Only the groups relevant to the operation are returned.","properties":{"successful":{"type":"array","description":"processed successfully","items":{"type":"integer","format":"int64"}},"notFound":{"type":"array","description":"not found or not accessible","items":{"type":"integer","format":"int64"}},"alreadyAccepted":{"type":"array","description":"already accepted","items":{"type":"integer","format":"int64"}},"alreadyResolved":{"type":"array","description":"already resolved","items":{"type":"integer","format":"int64"}},"alreadyMerged":{"type":"array","description":"already merged","items":{"type":"integer","format":"int64"}},"internalError":{"type":"array","description":"failed to process","items":{"type":"integer","format":"int64"}}}}}},"paths":{"/alerts/assign_bulk":{"put":{"tags":["Alerts"],"summary":"Assign multiple alerts.","description":"Either provide a user, policy (escalation policy) or schedule (on-call schedule) that the alerts should be assigned to.","parameters":[{"name":"user","in":"query","description":"numeric user id","schema":{"type":"string"}},{"name":"policy","in":"query","description":"numeric policy id","schema":{"type":"string"}},{"name":"schedule","in":"query","description":"numeric schedule id","schema":{"type":"string"}}],"requestBody":{"description":"the alerts to assign","content":{"application/json":{"schema":{"maxItems":25,"type":"array","items":{"$ref":"#/components/schemas/SimpleIdField64"}}}},"required":true},"responses":{"200":{"description":"all alerts were processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertBulkResult"}}}},"400":{"description":"at least one alert could not be processed, see the result lists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertBulkResult"}}}}}}}}}
```

## PUT /alerts/resolve\_bulk

> Resolve multiple alerts.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"SimpleIdField64":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"}},"description":"For POST and PUT requests only the id field is required for sub entities, e.g. status page -> service, alert source -> support hour"},"AlertBulkResult":{"type":"object","description":"IDs of the processed alerts, grouped by outcome. Only the groups relevant to the operation are returned.","properties":{"successful":{"type":"array","description":"processed successfully","items":{"type":"integer","format":"int64"}},"notFound":{"type":"array","description":"not found or not accessible","items":{"type":"integer","format":"int64"}},"alreadyAccepted":{"type":"array","description":"already accepted","items":{"type":"integer","format":"int64"}},"alreadyResolved":{"type":"array","description":"already resolved","items":{"type":"integer","format":"int64"}},"alreadyMerged":{"type":"array","description":"already merged","items":{"type":"integer","format":"int64"}},"internalError":{"type":"array","description":"failed to process","items":{"type":"integer","format":"int64"}}}}}},"paths":{"/alerts/resolve_bulk":{"put":{"tags":["Alerts"],"summary":"Resolve multiple alerts.","parameters":[{"name":"resolve-comment","in":"query","description":"optional resolution note","schema":{"type":"string"}}],"requestBody":{"description":"the alerts to resolve","content":{"application/json":{"schema":{"maxItems":50,"type":"array","items":{"$ref":"#/components/schemas/SimpleIdField64"}}}},"required":true},"responses":{"200":{"description":"all alerts were processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertBulkResult"}}}},"400":{"description":"at least one alert could not be processed, see the result lists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertBulkResult"}}}}}}}}}
```

## POST /alerts/merge\_bulk

> Merge alerts into another alert.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"SimpleIdField64":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","format":"int64"}},"description":"For POST and PUT requests only the id field is required for sub entities, e.g. status page -> service, alert source -> support hour"},"AlertBulkResult":{"type":"object","description":"IDs of the processed alerts, grouped by outcome. Only the groups relevant to the operation are returned.","properties":{"successful":{"type":"array","description":"processed successfully","items":{"type":"integer","format":"int64"}},"notFound":{"type":"array","description":"not found or not accessible","items":{"type":"integer","format":"int64"}},"alreadyAccepted":{"type":"array","description":"already accepted","items":{"type":"integer","format":"int64"}},"alreadyResolved":{"type":"array","description":"already resolved","items":{"type":"integer","format":"int64"}},"alreadyMerged":{"type":"array","description":"already merged","items":{"type":"integer","format":"int64"}},"internalError":{"type":"array","description":"failed to process","items":{"type":"integer","format":"int64"}}}}}},"paths":{"/alerts/merge_bulk":{"post":{"tags":["Alerts"],"summary":"Merge alerts into another alert.","requestBody":{"description":"the target alert and the alerts to merge into it","content":{"application/json":{"schema":{"required":["mergeIntoId","children"],"type":"object","properties":{"mergeIntoId":{"type":"integer","format":"int64","description":"ID of the alert to merge into"},"children":{"maxItems":20,"type":"array","items":{"$ref":"#/components/schemas/SimpleIdField64"}}}}}},"required":true},"responses":{"200":{"description":"all alerts were processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertBulkResult"}}}},"400":{"description":"at least one alert could not be processed, see the result lists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertBulkResult"}}}}}}}}}
```

## GET /alerts/{id}/notifications

> Get notifications for the specified alert.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"},{"name":"Notifications"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"Notification":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"method":{"type":"string","enum":["PUSH","VOICE","SMS","EMAIL","WHATSAPP"]},"target":{"type":"string"},"subject":{"type":"string"},"alertId":{"type":"integer","format":"int64"},"user":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstname":{"type":"string"},"lastname":{"type":"string"}}},"notificationTime":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["SCHEDULED","SUCCESS","ERROR"]},"errorMessage":{"type":"string","description":"An error message in case the notification status is ERROR."}}}}},"paths":{"/alerts/{id}/notifications":{"get":{"tags":["Alerts","Notifications"],"summary":"Get notifications for the specified alert.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"a list of notification objects","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Notification"}}}}}}}}}}
```

## GET /alerts/{id}/log-entries

> Get log entries for the specified alert.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alerts"},{"name":"Log-Entries"}],"servers":[{"url":"/api"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"The Bearer API key of your user <a href='/api-docs/#section/Authentication'>more info</a>.","name":"Authorization","in":"header"}},"schemas":{"LogEntry":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"timestamp":{"type":"string","format":"date-time"},"logEntryType":{"type":"string","enum":["ConnectorAutomaticResultErrorLogEntry","ConnectorAutomaticResultLogEntry","AlertActionErrorLogEntry","AlertActionFailLogEntry","AlertActionSuccessLogEntry","AlertNotRoutedLogEntry","AlertReceivedLogEntry","AlertRoutedSuccessfulLogEntry","AlertSourceResponseLogEntry","CallLogEntry","EmailReceivedLogEntry","EmailResolvedLogEntry","FilterableLogEntryType","HeartbeatOverdueLogEntry","HeartbeatResolvedLogEntry","AlertAssignedBySystemLogEntry","AlertAssignedByUserLogEntry","AlertAssignedToPolicyLogEntry","AlertAssignedToScheduleLogEntry","AlertAutoResolvedLogEntry","AlertCommentAddedBySystemLogEntry","AlertCommentAddedLogEntry","AlertCommentPublishedLogEntry","AlertCreatedByUserLogEntry","AlertRaisedBySystemLogEntry","AlertRaisedByUserLogEntry","AlertSummaryChangedLogEntry","IncomingCallLogEntry","LowPriorityCallLog","MailboxCallLogEntry","MailboxRecordReceivedLog","MailboxTranscribedReceivedLog","NobodyOnCallLogEntry","NotificationLogEntry","ParallelCallLogEntry","PhoneNumberNotSetLogEntry","PhoneNumberBlockedLogEntry","QueueResultLogEntry","StakeholderAddedBySystemLogEntry","StakeholderAddedLogEntry","StakeholderRemovedLogEntry","StakeholderResubscribedLogEntry","StakeholderUnsubscribedLogEntry","UserResponseLogEntry","InComIncidentCreatedLogEntry","InComIncidentResolvedLogEntry","InComServiceTransitionLogEntry","InComLinkedLogEntry","InComUnlinkedLogEntry","AlertChannelAttachedByUserLogEntry","AlertChannelDetachedByUserLogEntry","AlertEscalatedToLevelLogEntry"]},"text":{"type":"string"},"alertId":{"type":"integer","format":"int64"},"filterTypes":{"type":"array","items":{"$ref":"#/components/schemas/LogFilterType"}},"vars":{"type":"object","additionalProperties":{"type":"string"}}}},"LogFilterType":{"type":"string","enum":["NOTIFICATIONS","ALERT_SOURCE_EVENTS","CALL_ROUTING_EVENTS","ALERT_UPDATES","CONNECTOR_EVENTS"]}}},"paths":{"/alerts/{id}/log-entries":{"get":{"tags":["Alerts","Log-Entries"],"summary":"Get log entries for the specified alert.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}},{"name":"lang","in":"query","description":"log entry language","schema":{"type":"string","enum":["en","de"]}},{"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}},{"name":"include","in":"query","description":"Describes optional properties that should be included in the response. You may declare multiple. (vars)","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["vars"]}}},{"name":"filter-types","in":"query","description":"filter-type (group) of the log","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["NOTIFICATIONS","ALERT_SOURCE_EVENTS","CALL_ROUTING_EVENTS","ALERT_UPDATES","CONNECTOR_EVENTS","INCIDENT_COMMUNICATIONS"]}}}],"responses":{"200":{"description":"list of log entries","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LogEntry"}}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.ilert.com/developer-docs/rest-api/api-reference/alerts.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
