Some of the existing reporting API endpoints for Microsoft Teams activity have been updated to include additional details including audio, video and screen-sharing durations and meeting actions.
Which reports have been updated?

Get Activity Counts
The Get Activity Counts report provides a tenant-wide overview of Teams activity of licensed Teams users and has been updated with new columns for:
- Number of messages posted in the reporting period
- Number of replies in the reporting period
- Total audio duration in the reporting period
- Total video duration in the reporting period
- Total screen share duration in the reporting period
- Meetings organised in the reporting period
- Meetings attended in the reporting period
Get Activity Total Counts
The Get Activity Total Counts report is similar to the previous report but includes non-licensed users. It also also been updated with new columns for:
- Number of messages posted in the reporting period
- Number of replies in the reporting period
- Total audio duration in the reporting period
- Total video duration in the reporting period
- Total screen share duration in the reporting period
- Meetings organised in the reporting period
- Meetings attended in the reporting period
Get User Detail
The Get User Detail report provides detailed user-level reporting on Teams activity. To support Shared Channels, this report now includes details of the user tenant as well as their ID. New columns in this report are:
- Tenant Display Name
- Shared Channel Tenant Display Names
- Number of messages posted in the reporting period
- Number of replies sent in the reporting period
- Number of urgent messages sent in the reporting period
Which reports are new?

Get total distribution activity counts
The Get total distribution activity counts is a new report that returns data similar to the Get Activity Total Counts report, but aggregated in a different way. Rather than providing a set of values for each day in the reporting period, this report provides a single set of values for the entire period. It takes a period parameter of 7, 30, 90 and 180 days and outputs in either JSON or CSV. It has the following columns:
- Team chat messages posted in the reporting period
- Private chat messages posted in the reporting period
- Calls in the reporting period
- Meetings in the reporting period
- Meetings organized in the reporting period
- Meetings attended in the reporting period
- Audio duration in the reporting period
- Video duration in the reporting period
- Screen share duration in the reporting period
- Post messages in the reporting period
- Reply messages in the reporting period
- Report period in the reporting period
Example output from this report. Notice that regardless of how many days in the reporting period, a single set of results is returned, aggregated the period:
{
"@odata.context": "https://graph.microsoft.com/beta/getTeamsUserActivityTotalDistributionCounts(period='D7')",
"value": [
"reportRefreshDate": "2022-04-08",
"userCounts"
{
"reportPeriod":7,
"teamChatMessages": 26,
"privateChatMessages": 17,
"calls": 4,
"meetings": 0,
"meetingsOrganized": 0,
"meetingsAttended": 0,
"audioDuration": "P16DT8H9M41S",
"videoDuration": "P11DT16H37M51S",
"screenShareDuration": "P11DT17H16M28S",
"postMessages": 1,
"replyMessages": 1
}
]
}
The durations are returned in the ISO8601 Duration format, which may be somewhat unfamiliar to developers.
Right now all these changes are only reflected in the /beta version of the reports.



