Get a report that provides the trend in the number of active users for each app (Outlook, Word, Excel, PowerPoint, OneNote, and Teams) in your organization.
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)
Reports.Read.All
Not available.
Delegated (personal Microsoft account)
Not supported.
Not supported.
Application
Reports.Read.All
Not available.
Note: For delegated permissions to allow apps to read service usage reports on behalf of a user, the tenant administrator must have assigned the user the appropriate Microsoft Entra limited administrator role. For more details, see Authorization for APIs to read Microsoft 365 usage reports.
HTTP request
GET /reports/getM365AppUserCounts(period='{period_value}')
Function parameters
In the request URL, provide the following parameter with a valid value.
Parameter
Type
Description
period
string
Specifies the length of time over which the report is aggregated. The supported values for {period_value} are: D7, D30, D90, and D180. These values follow the format Dn where n represents the number of days over which the report is aggregated. Required.
Optional query parameters
This method supports the $formatOData query parameter to customize the response. The default output type is text/csv. However, if you want to specify the output type, you can use the OData $format query parameter to set the default output to text/csv or application/json.
If successful, this method returns a 302 Found response that redirects to a preauthenticated download URL for the report. That URL can be found in the Location header in the response.
Preauthenticated download URLs are only valid for a short period of time (a few minutes) and do not require an Authorization header.
The CSV file has the following headers for columns:
Report Refresh Date
Report Period
Report Date
Outlook
Word
Excel
PowerPoint
OneNote
Teams
JSON
If successful, this method returns a 200 OK response code and a JSON object in the response body.
GET https://graph.microsoft.com/v1.0/reports/getM365AppUserCounts(period='D7')?$format=text/csv
// 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
await graphClient.Reports.GetM365AppUserCountsWithPeriod("{period}").GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Format = "text/csv";
});
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphreports "github.com/microsoftgraph/msgraph-sdk-go/reports"
//other-imports
)
requestFormat := "text/csv"
requestParameters := &graphreports.ReportsGetM365AppUserCountsWithPeriodRequestBuilderGetQueryParameters{
Format: &requestFormat,
}
configuration := &graphreports.ReportsGetM365AppUserCountsWithPeriodRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
period := "{period}"
graphClient.Reports().GetM365AppUserCountsWithPeriod(&period).Get(context.Background(), configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
graphClient.reports().getM365AppUserCountsWithPeriod("{period}").get(requestConfiguration -> {
requestConfiguration.queryParameters.format = "text/csv";
});
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.reports.get_m365_app_user_counts(period='{period}').get_m365_app_user_counts_with_period_request_builder import GetM365AppUserCountsWithPeriodRequestBuilder
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 = GetM365AppUserCountsWithPeriodRequestBuilder.GetM365AppUserCountsWithPeriodRequestBuilderGetQueryParameters(
format = "text/csv",
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
await graph_client.reports.get_m365_app_user_counts_with_period("{period}").get(request_configuration = request_configuration)
GET https://graph.microsoft.com/v1.0/reports/getM365AppUserCounts(period='D7')?$format=application/json
// 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
await graphClient.Reports.GetM365AppUserCountsWithPeriod("{period}").GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Format = "application/json";
});
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphreports "github.com/microsoftgraph/msgraph-sdk-go/reports"
//other-imports
)
requestFormat := "application/json"
requestParameters := &graphreports.ReportsGetM365AppUserCountsWithPeriodRequestBuilderGetQueryParameters{
Format: &requestFormat,
}
configuration := &graphreports.ReportsGetM365AppUserCountsWithPeriodRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
period := "{period}"
graphClient.Reports().GetM365AppUserCountsWithPeriod(&period).Get(context.Background(), configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
graphClient.reports().getM365AppUserCountsWithPeriod("{period}").get(requestConfiguration -> {
requestConfiguration.queryParameters.format = "application/json";
});
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.reports.get_m365_app_user_counts(period='{period}').get_m365_app_user_counts_with_period_request_builder import GetM365AppUserCountsWithPeriodRequestBuilder
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 = GetM365AppUserCountsWithPeriodRequestBuilder.GetM365AppUserCountsWithPeriodRequestBuilderGetQueryParameters(
format = "application/json",
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
await graph_client.reports.get_m365_app_user_counts_with_period("{period}").get(request_configuration = request_configuration)