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/getM365AppPlatformUserCounts(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
Windows
Mac
Mobile
Web
JSON
If successful, this method returns a 200 OK response code and a JSON object in response body.
GET https://graph.microsoft.com/v1.0/reports/getM365AppPlatformUserCounts(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.GetM365AppPlatformUserCountsWithPeriod("{period}").GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Format = "text/csv";
});
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
graphClient.reports().getM365AppPlatformUserCountsWithPeriod("{period}").get(requestConfiguration -> {
requestConfiguration.queryParameters.format = "text/csv";
});
GET https://graph.microsoft.com/v1.0/reports/getM365AppPlatformUserCounts(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.GetM365AppPlatformUserCountsWithPeriod("{period}").GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Format = "application/json";
});
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
graphClient.reports().getM365AppPlatformUserCountsWithPeriod("{period}").get(requestConfiguration -> {
requestConfiguration.queryParameters.format = "application/json";
});
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see: https://aka.ms/ContentUserFeedback.