> 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/alert-sources.md).

# Alert Sources

## GET /alert-sources

> List alert sources.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alert Sources"}],"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":{"AlertSourceNoIncludes":{"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},"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"}},"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"]}}},"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"}}}}},"paths":{"/alert-sources":{"get":{"tags":["Alert Sources"],"summary":"List alert sources.","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 alert sources.","schema":{"maximum":50,"type":"integer","format":"int32","default":50}}],"responses":{"200":{"description":"the alert source object","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertSourceNoIncludes"}}}}}}}}}}
```

## POST /alert-sources

> Create a new alert source.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alert Sources"}],"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":{"AlertSourceRel":{"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/SimpleIdField64"},"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"]},"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"},"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"}}},"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"}}},"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"]}}}}},"paths":{"/alert-sources":{"post":{"tags":["Alert Sources"],"summary":"Create a new alert source.","requestBody":{"description":"the alert source","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSourceRel"}}},"required":true},"responses":{"201":{"description":"The URI of the alert source will be included in the location header and the alert source will be included in the body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSource"}}}},"400":{"description":"the request is invalid; for an inline supportHours, because it names no coverage or sends supportWindows, which an alert source's own support hours do not accept -- reference a support hour by id for coverage that needs arcs","content":{}}}}}}}
```

## GET /alert-sources/{id}

> Get the alert source with specified id or alternatively integration key.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alert Sources"}],"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":{"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"}}}}},"paths":{"/alert-sources/{id}":{"get":{"tags":["Alert Sources"],"summary":"Get the alert source with specified id or alternatively integration key.","parameters":[{"name":"id","in":"path","description":"numeric source id or integration key","required":true,"schema":{"type":"string"}},{"name":"include","in":"query","description":"Describes optional properties that should be included in the response. You may declare multiple. (detailsTemplate, summaryTemplate, routingTemplate, linkTemplates, priorityTemplate, severityTemplate, textTemplate, eventFilter, alertKeyTemplate, servicesTemplate, eventTypeFilterCreate, eventTypeFilterAccept, eventTypeFilterResolve); some may not work in lists; may be used for POST and PUT as well.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["detailsTemplate","summaryTemplate","routingTemplate","alertKeyTemplate","servicesTemplate","linkTemplates","priorityTemplate","severityTemplate","textTemplate","eventFilter","eventTypeFilterCreate","eventTypeFilterAccept","eventTypeFilterResolve"]}}}],"responses":{"200":{"description":"the alert source object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSource"}}}}}}}}}
```

## PUT /alert-sources/{id}

> Update an existing alert source.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alert Sources"}],"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":{"AlertSourceRel":{"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/SimpleIdField64"},"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"]},"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"},"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"}}},"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"}}},"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"]}}}}},"paths":{"/alert-sources/{id}":{"put":{"tags":["Alert Sources"],"summary":"Update an existing alert source.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}}],"requestBody":{"description":"the alert source","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSourceRel"}}},"required":true},"responses":{"200":{"description":"the updated alert source object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSource"}}}},"400":{"description":"the request is invalid; for an inline supportHours, because it names no coverage or sends supportWindows, which an alert source's own support hours do not accept -- reference a support hour by id for coverage that needs arcs","content":{}}}}}}}
```

## DELETE /alert-sources/{id}

> Delete the specified alert source.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alert Sources"}],"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":{"/alert-sources/{id}":{"delete":{"tags":["Alert Sources"],"summary":"Delete the specified alert source.","parameters":[{"name":"id","in":"path","description":"entity ID","required":true,"schema":{"type":"number"}}],"responses":{"204":{"description":"if deletion was successful","content":{}}}}}}}
```

## GET /alert-sources/name/{name}

> Get the alert source with the specified name.

```json
{"openapi":"3.0.1","info":{"title":"ilert REST API","version":"v2.2026.9-r.4"},"tags":[{"name":"Alert Sources"}],"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":{"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"}}}}},"paths":{"/alert-sources/name/{name}":{"get":{"tags":["Alert Sources"],"summary":"Get the alert source with the specified name.","parameters":[{"name":"name","in":"path","description":"unique name of the alert source","required":true,"schema":{"type":"string"}},{"name":"include","in":"query","description":"Describes optional properties that should be included in the response. You may declare multiple. (detailsTemplate, summaryTemplate, routingTemplate, linkTemplates, priorityTemplate, severityTemplate, textTemplate, eventFilter, alertKeyTemplate, servicesTemplate, eventTypeFilterCreate, eventTypeFilterAccept, eventTypeFilterResolve); some may not work in lists; may be used for POST and PUT as well.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["detailsTemplate","summaryTemplate","routingTemplate","alertKeyTemplate","servicesTemplate","linkTemplates","priorityTemplate","severityTemplate","textTemplate","eventFilter","eventTypeFilterCreate","eventTypeFilterAccept","eventTypeFilterResolve"]}}}],"responses":{"200":{"description":"the alert source object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSource"}}}}}}}}}
```


---

# 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/alert-sources.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.
