An API that connects multiple Microsoft services, enabling data access and automation across platforms
Security change notifications via Microsoft Graph are currently documented only for the legacy security/alerts resource, not for security/alerts_v2 or security/incidents.
From the change notifications documentation:
- Supported security alert subscription resource paths are:
-
/security/alerts/{id}(specific alert) -
/security/alerts/?$filter={parameters}(filtered alerts)
-
- These are explicitly tied to the legacy
alertresource. The same table points back to the Security API alerts section, which clearly labels this as Legacy alerts and states that the legacy alerts API is deprecated and will be removed by April 2026, recommending migration to the new alerts/incidents API.
From the Security API overview:
- The legacy
alertresource (surfaced atsecurity/alerts) is deprecated and will be removed by April 2026. - New work should target the newer alerts and incidents model (
alerts_v2and incidents), but the documentation in the provided context only shows these for GET and PATCH operations, not for change notifications. - The “Common use cases” section lists:
-
GET /security/alerts_v2(List alerts) -
PATCH /security/alerts/{id}(Update alert) but does not list any subscription or webhook support foralerts_v2orincidents.
-
On filters and examples:
- The change notifications docs show the pattern
/security/alerts/?$filter={parameters}and refer back to the Security API alerts docs for details. In the provided context, there is no authoritative list of valid enum values forstatusor other properties, and no clarification ofNewvsNewAlert. Only the general capability to filter is documented, not the exact values.
On what is currently supported (based on the provided documentation):
- Legacy
security/alerts- Still documented as a supported resource for change notifications.
- Supports subscriptions on a specific alert or filtered alerts.
- Marked as legacy and deprecated, with removal planned by April 2026.
-
security/alerts_v2- Documented for listing and updating alerts.
- No documented webhook/change notification support in the provided context.
-
security/incidents- Mentioned as part of the new alerts/incidents model.
- No documented webhook/change notification support in the provided context.
Given only the provided documentation, the supported and documented patterns are:
- For near-real-time notifications today: use change notifications on legacy
security/alerts(/security/alerts/{id}or/security/alerts/?$filter=...). - For working with the newer model (
alerts_v2and incidents): use polling (GET) plus PATCH for updates, because no subscription support is documented. - Treat
security/alertssubscriptions as a time-limited solution, since the API is deprecated and scheduled for removal by April 2026.
No roadmap or ETA for subscriptions on security/alerts_v2 or security/incidents is provided in the context. The only forward-looking guidance is the deprecation notice and the recommendation to migrate to the new alerts/incidents API.
A reasonable architecture strictly based on the documentation in the context would be:
- Short term (while legacy is still available):
- Use change notifications on
security/alertsfor near-real-time signals. - Correlate those legacy alerts with
alerts_v2/incidents via polling if needed.
- Use change notifications on
- Long term / future-proofing:
- Design core workflows around polling
security/incidentsand optionallysecurity/alerts_v2. - Treat the legacy
security/alertssubscription as an optimization that will need to be removed or replaced before April 2026.
- Design core workflows around polling
References: