Namespace: microsoft.graph.healthMonitoring
Important
APIs under the /beta
version in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported. To determine whether an API is available in v1.0, use the Version selector.
Get the list of the Microsoft Entra health monitoring alert objects and their properties from the past 30 days.
This API is available in the following national cloud deployments.
Global service |
US Government L4 |
US Government L5 (DOD) |
China operated by 21Vianet |
✅ |
❌ |
❌ |
❌ |
Permissions
Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
Permission type |
Least privileged permissions |
Higher privileged permissions |
Delegated (work or school account) |
HealthMonitoringAlert.Read.All |
Not available. |
Delegated (personal Microsoft account) |
Not supported. |
Not supported. |
Application |
HealthMonitoringAlert.Read.All |
Not available. |
Important
In addition to the delegated permissions, the signed-in user needs to belong to a Microsoft Entra role that allows them to view alerts. The following least privileged roles are supported for this operation.
- Global Reader
- Security Administrator
- Security Operator
- Security Reader
- Helpdesk Administrator
- Reports Reader
HTTP request
GET /reports/healthMonitoring/alerts
Optional query parameters
This method supports the $count
, $expand
, $filter
, $orderby
, $select
, and $top
OData query parameters to help customize the response. $skip
isn't supported. The default and maximum page sizes are 100 alert objects.
$orderby
is only supported on createdDateTime
property.
When no $expand
query parameter is added, this API doesn't return resourceSampling
property by default. When you want to retrieve a sample of the resources involved in triggering the alert for root cause investigation, you can add $expand=enrichment/impacts/microsoft.graph.healthmonitoring.directoryobjectimpactsummary/resourceSampling
to view resourceSampling
in directoryObjectImpactSummary.
Request body
Don't supply a request body for this method.
Response
If successful, this method returns a 200 OK
response code and a collection of alert objects in the response body.
Examples
Example 1: Get all alerts
Request
The following example shows a request.
GET https://graph.microsoft.com/beta/reports/healthMonitoring/alerts
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Reports.HealthMonitoring.Alerts.GetAsync();
mgc-beta reports health-monitoring alerts list
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
alerts, err := graphClient.Reports().HealthMonitoring().Alerts().Get(context.Background(), nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.models.healthmonitoring.AlertCollectionResponse result = graphClient.reports().healthMonitoring().alerts().get();
const options = {
authProvider,
};
const client = Client.init(options);
let alerts = await client.api('/reports/healthMonitoring/alerts')
.version('beta')
.get();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->reports()->healthMonitoring()->alerts()->get()->wait();
Import-Module Microsoft.Graph.Beta.Reports
Get-MgBetaReportHealthMonitoringAlert
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
result = await graph_client.reports.health_monitoring.alerts.get()
Response
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#reports/healthMonitoring/alerts",
"value": [
{
"id": "0c56dfcb-13db-4128-bda2-fc3e42742467",
"alertType": "mfaSignInFailure",
"scenario": "mfa",
"category": "authentication",
"createdDateTime": "2024-06-19T11:23:44.1234567Z",
"state": "active",
"enrichment": {
"state": "enriched",
"impacts": [
{
"@odata.type": "#microsoft.graph.healthMonitoring.userImpactSummary",
"resourceType": "user",
"impactedCount": 143,
"impactedCountLimitExceeded": false
},
{
"@odata.type": "#microsoft.graph.healthMonitoring.applicationImpactSummary",
"resourceType": "application",
"impactedCount": 1,
"impactedCountLimitExceeded": true
}
],
"supportingData": {
"signIns": "https://graph.microsoft.com/beta/auditLogs/signIns?$filter=((status/errorCode eq 500121) and createdDateTime gt 2024-06-08T11:23:44.1234567Z and createdDateTime le 2024-06-19T11:23:44.1234567Z and (signInEventTypes/any(t:t eq 'interactiveUser' or t eq 'noninteractiveUser')))",
"audits": "https://graph.microsoft.com/beta/auditLogs/directoryaudits?$filter=(activityDateTime ge 2024-06-08T11:23:44.1234567Z and activityDateTime le 2024-06-19T11:23:44.1234567Z)&$top=50&$orderby=activityDateTime desc"
}
},
"signals": {
"mfaSignInFailure": "https://graph.microsoft.com/beta/reports/serviceActivity/getMetricsForMfaSignInFailure(inclusiveIntervalStartDateTime=2024-06-08T11:23:44.1234567Z, exclusiveIntervalEndDateTime=2024-06-19T11:23:44.1234567Z, aggregationIntervalInMinutes=5)"
},
"documentation": {
"troubleshootingGuide": "https://go.microsoft.com/fwlink/?linkid=2280158"
}
},
]
}
Example 2: Get all active alerts
Request
The following example shows a request.
GET https://graph.microsoft.com/beta/reports/healthMonitoring/alerts?$filter=state eq microsoft.graph.healthmonitoring.alertState'active'&$select=id, alertType
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Reports.HealthMonitoring.Alerts.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Filter = "state eq microsoft.graph.healthmonitoring.alertState'active'";
requestConfiguration.QueryParameters.Select = new string []{ "id"," alertType" };
});
mgc-beta reports health-monitoring alerts list --filter "state eq microsoft.graph.healthmonitoring.alertState'active'" --select "id, alertType"
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphreports "github.com/microsoftgraph/msgraph-beta-sdk-go/reports"
//other-imports
)
requestFilter := "state eq microsoft.graph.healthmonitoring.alertState'active'"
requestParameters := &graphreports.HealthMonitoringAlertsRequestBuilderGetQueryParameters{
Filter: &requestFilter,
Select: [] string {"id"," alertType"},
}
configuration := &graphreports.HealthMonitoringAlertsRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
alerts, err := graphClient.Reports().HealthMonitoring().Alerts().Get(context.Background(), configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.models.healthmonitoring.AlertCollectionResponse result = graphClient.reports().healthMonitoring().alerts().get(requestConfiguration -> {
requestConfiguration.queryParameters.filter = "state eq microsoft.graph.healthmonitoring.alertState'active'";
requestConfiguration.queryParameters.select = new String []{"id", " alertType"};
});
const options = {
authProvider,
};
const client = Client.init(options);
let alerts = await client.api('/reports/healthMonitoring/alerts')
.version('beta')
.filter('state eq microsoft.graph.healthmonitoring.alertState\'active\'')
.select('id,alertType')
.get();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Reports\HealthMonitoring\Alerts\AlertsRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new AlertsRequestBuilderGetRequestConfiguration();
$queryParameters = AlertsRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->filter = "state eq microsoft.graph.healthmonitoring.alertState'active'";
$queryParameters->select = ["id"," alertType"];
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->reports()->healthMonitoring()->alerts()->get($requestConfiguration)->wait();
Import-Module Microsoft.Graph.Beta.Reports
Get-MgBetaReportHealthMonitoringAlert -Filter "state eq microsoft.graph.healthmonitoring.alertState'active'" -Property "id, alertType"
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.reports.health_monitoring.alerts.alerts_request_builder import AlertsRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
query_params = AlertsRequestBuilder.AlertsRequestBuilderGetQueryParameters(
filter = "state eq microsoft.graph.healthmonitoring.alertState'active'",
select = ["id"," alertType"],
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
result = await graph_client.reports.health_monitoring.alerts.get(request_configuration = request_configuration)
Response
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#reports/healthMonitoring/alerts(id,alertType)",
"value": [
{
"id": "0c56dfcb-13db-4128-bda2-fc3e42742467",
"alertType": "mfaSignInFailure"
},
{
"id": "564bc4e2-10f6-4d76-b10c-25657637f748",
"alertType": "managedDeviceSignInFailure"
},
]
}
Example 3: List the state of all alerts in a specific time range
Request
The following example shows a request.
GET https://graph.microsoft.com/beta/reports/healthMonitoring/alerts?$filter=createdDateTime gt 2024-06-10T11:23:44Z&$select=id, alertType, createdDateTime, state
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Reports.HealthMonitoring.Alerts.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Filter = "createdDateTime gt 2024-06-10T11:23:44Z";
requestConfiguration.QueryParameters.Select = new string []{ "id"," alertType"," createdDateTime"," state" };
});
mgc-beta reports health-monitoring alerts list --filter "createdDateTime gt 2024-06-10T11:23:44Z" --select "id, alertType, createdDateTime, state"
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphreports "github.com/microsoftgraph/msgraph-beta-sdk-go/reports"
//other-imports
)
requestFilter := "createdDateTime gt 2024-06-10T11:23:44Z"
requestParameters := &graphreports.HealthMonitoringAlertsRequestBuilderGetQueryParameters{
Filter: &requestFilter,
Select: [] string {"id"," alertType"," createdDateTime"," state"},
}
configuration := &graphreports.HealthMonitoringAlertsRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
alerts, err := graphClient.Reports().HealthMonitoring().Alerts().Get(context.Background(), configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.models.healthmonitoring.AlertCollectionResponse result = graphClient.reports().healthMonitoring().alerts().get(requestConfiguration -> {
requestConfiguration.queryParameters.filter = "createdDateTime gt 2024-06-10T11:23:44Z";
requestConfiguration.queryParameters.select = new String []{"id", " alertType", " createdDateTime", " state"};
});
const options = {
authProvider,
};
const client = Client.init(options);
let alerts = await client.api('/reports/healthMonitoring/alerts')
.version('beta')
.filter('createdDateTime gt 2024-06-10T11:23:44Z')
.select('id,alertType,createdDateTime,state')
.get();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Reports\HealthMonitoring\Alerts\AlertsRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new AlertsRequestBuilderGetRequestConfiguration();
$queryParameters = AlertsRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->filter = "createdDateTime gt 2024-06-10T11:23:44Z";
$queryParameters->select = ["id"," alertType"," createdDateTime"," state"];
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->reports()->healthMonitoring()->alerts()->get($requestConfiguration)->wait();
Import-Module Microsoft.Graph.Beta.Reports
Get-MgBetaReportHealthMonitoringAlert -Filter "createdDateTime gt 2024-06-10T11:23:44Z" -Property "id, alertType, createdDateTime, state"
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.reports.health_monitoring.alerts.alerts_request_builder import AlertsRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
query_params = AlertsRequestBuilder.AlertsRequestBuilderGetQueryParameters(
filter = "createdDateTime gt 2024-06-10T11:23:44Z",
select = ["id"," alertType"," createdDateTime"," state"],
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
result = await graph_client.reports.health_monitoring.alerts.get(request_configuration = request_configuration)
Response
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#reports/healthMonitoring/alerts(id,alertType,createdDateTime,state)",
"value": [
{
"id": "0c56dfcb-13db-4128-bda2-fc3e42742467",
"alertType": "mfaSignInFailure",
"createdDateTime": "2024-06-19T11:23:44.1234567Z",
"state": "active"
},
{
"id": "564bc4e2-10f6-4d76-b10c-25657637f748",
"alertType": "managedDeviceSignInFailure",
"createdDateTime": "2024-06-11T01:25:24.1234567Z",
"state": "active"
},
]
}
Example 4: Use $expand to get all alerts with directory object resource sampling
Request
The following example shows a request.
GET https://graph.microsoft.com/beta/reports/healthMonitoring/alerts?$expand=enrichment/impacts/microsoft.graph.healthmonitoring.directoryobjectimpactsummary/resourceSampling&$select=alertType, createdDateTime, enrichment'
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Reports.HealthMonitoring.Alerts.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Expand = new string []{ "enrichment/impacts/microsoft.graph.healthmonitoring.directoryobjectimpactsummary/resourceSampling" };
requestConfiguration.QueryParameters.Select = new string []{ "alertType"," createdDateTime"," enrichment'" };
});
mgc-beta reports health-monitoring alerts list --select "alertType, createdDateTime, enrichment'" --expand "enrichment/impacts/microsoft.graph.healthmonitoring.directoryobjectimpactsummary/resourceSampling"
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphreports "github.com/microsoftgraph/msgraph-beta-sdk-go/reports"
//other-imports
)
requestParameters := &graphreports.HealthMonitoringAlertsRequestBuilderGetQueryParameters{
Expand: [] string {"enrichment/impacts/microsoft.graph.healthmonitoring.directoryobjectimpactsummary/resourceSampling"},
Select: [] string {"alertType"," createdDateTime"," enrichment'"},
}
configuration := &graphreports.HealthMonitoringAlertsRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
alerts, err := graphClient.Reports().HealthMonitoring().Alerts().Get(context.Background(), configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.models.healthmonitoring.AlertCollectionResponse result = graphClient.reports().healthMonitoring().alerts().get(requestConfiguration -> {
requestConfiguration.queryParameters.expand = new String []{"enrichment/impacts/microsoft.graph.healthmonitoring.directoryobjectimpactsummary/resourceSampling"};
requestConfiguration.queryParameters.select = new String []{"alertType", " createdDateTime", " enrichment'"};
});
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Reports\HealthMonitoring\Alerts\AlertsRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new AlertsRequestBuilderGetRequestConfiguration();
$queryParameters = AlertsRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->expand = ["enrichment/impacts/microsoft.graph.healthmonitoring.directoryobjectimpactsummary/resourceSampling"];
$queryParameters->select = ["alertType"," createdDateTime"," enrichment'"];
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->reports()->healthMonitoring()->alerts()->get($requestConfiguration)->wait();
Import-Module Microsoft.Graph.Beta.Reports
Get-MgBetaReportHealthMonitoringAlert -ExpandProperty "enrichment/impacts/microsoft.graph.healthmonitoring.directoryobjectimpactsummary/resourceSampling" -Property "alertType, createdDateTime, enrichment'"
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.reports.health_monitoring.alerts.alerts_request_builder import AlertsRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
query_params = AlertsRequestBuilder.AlertsRequestBuilderGetQueryParameters(
expand = ["enrichment/impacts/microsoft.graph.healthmonitoring.directoryobjectimpactsummary/resourceSampling"],
select = ["alertType"," createdDateTime"," enrichment'"],
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
result = await graph_client.reports.health_monitoring.alerts.get(request_configuration = request_configuration)
Response
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#reports/healthMonitoring/alerts(alertType,createdDateTime,enrichment,enrichment/impacts/microsoft.graph.healthMonitoring.directoryObjectImpactSummary/resourceSampling())",
"value": [
{
"alertType": "mfaSignInFailure",
"createdDateTime": "2024-06-19T11:23:44.1234567Z",
"enrichment": {
"state": "enriched",
"impacts": [
{
"@odata.type": "#microsoft.graph.healthMonitoring.userImpactSummary",
"resourceType": "user",
"impactedCount": 143,
"impactedCountLimitExceeded": false,
"resourceSampling": []
},
{
"@odata.type": "#microsoft.graph.healthMonitoring.applicationImpactSummary",
"resourceType": "application",
"impactedCount": 1,
"impactedCountLimitExceeded": true,
"resourceSampling": [
{
"id": "63c83fa4-d90c-4274-8460-5463e96f1113"
}
]
}
],
"supportingData": {
"signIns": "https://graph.microsoft.com/beta/auditLogs/signIns?$filter=((status/errorCode eq 500121) and createdDateTime gt 2024-06-08T11:23:44.1234567Z and createdDateTime le 2024-06-19T11:23:44.1234567Z and (signInEventTypes/any(t:t eq 'interactiveUser' or t eq 'noninteractiveUser')))",
"audits": "https://graph.microsoft.com/beta/auditLogs/directoryaudits?$filter=(activityDateTime ge 2024-06-08T11:23:44.1234567Z and activityDateTime le 2024-06-19T11:23:44.1234567Z)&$top=50&$orderby=activityDateTime desc"
}
}
},
]
}