Namespace: microsoft.graph
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 most recent activity data for enabled users of Microsoft 365 Copilot apps.
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) |
Reports.Read.All |
Not available. |
Delegated (personal Microsoft account) |
Not supported. |
Not supported. |
Application |
Reports.Read.All |
Not available. |
Important
For delegated permissions to allow apps to read service usage reports on behalf of a user, the tenant administrator must have assigned the user one of the following Microsoft Entra ID limited administrator roles:
- Company Administrator
- Exchange Administrator
- SharePoint Administrator
- Lync Administrator
- Teams Service Administrator
- Teams Communications Administrator
- Global Reader
- Usage Summary Reports Reader
- Reports Reader
For more information, see Authorization for APIs to read Microsoft 365 usage reports.
HTTP request
GET /reports/getMicrosoft365CopilotUsageUserDetail(period='{period_value}')
Function parameters
In the request URL, provide the following query parameters with values.
Parameter |
Type |
Description |
period |
String |
The number of previous days over which to report aggregated usage. The supported values are: D7 , D30 , D90 , D180 , ALL . The first four values follow the format Dn where n represents the number of previous days over which to aggregate data. ALL indicates to report usage for 7, 30, 90, and 180 days. |
Optional query parameters
This method supports the $format
OData query parameter to customize the response. The default output type is application/json
. 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
.
Request body
Don't supply a request body for this method.
Response
CSV
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 don't require an Authorization
header.
The CSV file has the following headers for columns.
- Report Refresh Date
- Report Period
- User Principal Name
- Display Name
- Last Activity Date
- Microsoft Teams Copilot Last Activity Date
- Word Copilot Last Activity Date
- Excel Copilot Last Activity Date
- PowerPoint Copilot Last Activity Date
- Outlook Copilot Last Activity Date
- OneNote Copilot Last Activity Date
- Loop Copilot Last Activity Date
- Copilot Chat Last Activity Date
JSON
If successful, this method returns a 200 OK
response code and a JSON object in the response body.
Examples
Example 1: CSV output
The following example returns a URL for a CSV file.
Request
The following example shows a request.
GET https://graph.microsoft.com/beta/reports/getMicrosoft365CopilotUsageUserDetail(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.GetMicrosoft365CopilotUsageUserDetailWithPeriod("{period}").GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Format = "text/csv";
});
mgc-beta reports get-microsoft365-copilot-usage-user-detail-with-period get --period {period-id}
// 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
)
requestFormat := "text/csv"
requestParameters := &graphreports.ReportsGetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetQueryParameters{
Format: &requestFormat,
}
configuration := &graphreports.ReportsGetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetRequestConfiguration{
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().GetMicrosoft365CopilotUsageUserDetailWithPeriod(&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().getMicrosoft365CopilotUsageUserDetailWithPeriod("{period}").get(requestConfiguration -> {
requestConfiguration.queryParameters.format = "text/csv";
});
const options = {
authProvider,
};
const client = Client.init(options);
let stream = await client.api('/reports/getMicrosoft365CopilotUsageUserDetail(period='D7')')
.version('beta')
.get();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Reports\GetMicrosoft365CopilotUsageUserDetail(period='{period}')\GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetRequestConfiguration();
$queryParameters = GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->format = "text/csv";
$requestConfiguration->queryParameters = $queryParameters;
$graphServiceClient->reports()->getMicrosoft365CopilotUsageUserDetailWithPeriod('{period}', )->get($requestConfiguration)->wait();
Import-Module Microsoft.Graph.Beta.Reports
Get-MgBetaReportMicrosoft365CopilotUsageUserDetail -Format "text/csv" -Period $periodId
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.reports.get_microsoft365_copilot_usage_user_detail(period='{period}').get_microsoft365_copilot_usage_user_detail_with_period_request_builder import GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilder
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 = GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilder.GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetQueryParameters(
format = "text/csv",
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
await graph_client.reports.get_microsoft365_copilot_usage_user_detail_with_period("{period}").get(request_configuration = request_configuration)
Response
The following example shows the response.
HTTP/1.1 302 Found
Content-Type: text/plain
Location: https://reports.office.com/data/download/JDFKdf2_eJXKS034dbc7e0t__XDe
The CSV file in the Location
header of the 302 response has the following schema.
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Report Refresh Date,Report Period,User Principal Name,Display Name,Last Activity Date,Microsoft Teams Copilot Last Activity Date,Word Copilot Last Activity Date,Excel Copilot Last Activity Date,PowerPoint Copilot Last Activity Date,Outlook Copilot Last Activity Date,OneNote Copilot Last Activity Date,Loop Copilot Last Activity Date,Copilot Chat Last Activity Date
Example 2: JSON output
The following example returns JSON data.
Request
The following example shows a request.
GET https://graph.microsoft.com/beta/reports/getMicrosoft365CopilotUsageUserDetail(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.GetMicrosoft365CopilotUsageUserDetailWithPeriod("{period}").GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Format = "application/json";
});
mgc-beta reports get-microsoft365-copilot-usage-user-detail-with-period get --period {period-id}
// 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
)
requestFormat := "application/json"
requestParameters := &graphreports.ReportsGetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetQueryParameters{
Format: &requestFormat,
}
configuration := &graphreports.ReportsGetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetRequestConfiguration{
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().GetMicrosoft365CopilotUsageUserDetailWithPeriod(&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().getMicrosoft365CopilotUsageUserDetailWithPeriod("{period}").get(requestConfiguration -> {
requestConfiguration.queryParameters.format = "application/json";
});
const options = {
authProvider,
};
const client = Client.init(options);
let stream = await client.api('/reports/getMicrosoft365CopilotUsageUserDetail(period='D7')')
.version('beta')
.get();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Reports\GetMicrosoft365CopilotUsageUserDetail(period='{period}')\GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetRequestConfiguration();
$queryParameters = GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->format = "application/json";
$requestConfiguration->queryParameters = $queryParameters;
$graphServiceClient->reports()->getMicrosoft365CopilotUsageUserDetailWithPeriod('{period}', )->get($requestConfiguration)->wait();
Import-Module Microsoft.Graph.Beta.Reports
Get-MgBetaReportMicrosoft365CopilotUsageUserDetail -Format "application/json" -Period $periodId
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.reports.get_microsoft365_copilot_usage_user_detail(period='{period}').get_microsoft365_copilot_usage_user_detail_with_period_request_builder import GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilder
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 = GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilder.GetMicrosoft365CopilotUsageUserDetailWithPeriodRequestBuilderGetQueryParameters(
format = "application/json",
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
await graph_client.reports.get_microsoft365_copilot_usage_user_detail_with_period("{period}").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
Content-Length: 10747
{
"@odata.nextLink": "https://graph.microsoft.com/beta/reports/getMicrosoft365CopilotUsageUserDetail(period='D7')?$format=application/json&$skiptoken=MDoyOg",
"value": [
{
"reportRefreshDate": "2024-08-20",
"userPrincipalName": "DC8C64D6EC3A3AA17481D7E5EB5B68A6",
"displayName": "C65E8D8AFA0DAB9639EDFAAEA94AFE66",
"lastActivityDate": "2024-08-20",
"copilotChatLastActivityDate": "2024-08-16",
"microsoftTeamsCopilotLastActivityDate": "2024-08-20",
"wordCopilotLastActivityDate": "2024-08-06",
"excelCopilotLastActivityDate": "",
"powerPointCopilotLastActivityDate": "2024-03-26",
"outlookCopilotLastActivityDate": "",
"oneNoteCopilotLastActivityDate": "",
"loopCopilotLastActivityDate": "",
"copilotActivityUserDetailsByPeriod": [
{
"reportPeriod": 7
}
]
}
]
}