Tom Talks Microsoft Teams and Microsoft 365 news and opinions

Microsoft Teams call records API now Generally Available

Being able to report at depth on usage (number of calls, who called who, what modalities were used etc.) and on performance (packet loss, jitter latency etc.) on unified communications is something many organisations want to do.

Some History

In Skype for Business Server, we could get all the data in the backend CDR/QoE SQL databases and also later in its life-cycle had the option of leveraging the SDN API to get session detail information. Many third parties, including Modality (who I work for), build products that collected, sorted and interpreted this data into useful, actionable information for customers.

In Skype for Business Online, we got some limited access via a PowerShell cmdlet Get-CsUserSession (now depreciated, see below), but it was tricky to get information out at scale.

Call Records API now GA

Now for Microsoft Teams and Skype for Business online, there is the call records API. A Graph webhook API that will give access to this information.

In March this entered public preview and was accessed under the /beta Graph API but is now in Graph v1.0.

There are 2 versions of Microsoft Graph REST APIs – v1.0 and beta. API’s under /beta are preview status and are subject to change and may break existing scenarios without notice. Microsoft recommends you don’t take a production dependency on APIs in the beta endpoint. API sets on the v1.0 endpoint ( are in general availability (GA) status.

Call records provide usage and diagnostic information about the calls and online meetings that occur within your organisation when using Microsoft Teams or Skype for Business. Usage and diagnostic data can be consumed and reported on to help monitor adoption or to troubleshoot call quality issues.

Organisations can subscribe to changes to call records using the Microsoft Graph webhook subscriptions capability, allowing them to build near-real-time reports from the data or to alert on specific scenarios like emergency calls.

Now the Call Records API is GA, you can expect to see reporting products from various Microsoft partners collecting and reporting on this data.

You can find more detail on the call records API at the Microsoft documentation here

The API offers the following resources

  • callRecord – represents a single peer-to-peer call or a group call between multiple participants
  • session – A peer-to-peer call contains a single session between the two participants in the call. Group calls contain one or more session entities. In a group call, each session is between the participant and a service endpoint.
  • segment – A segment represents a media link between two endpoints.



Get-CsUserSession deprecation from 30th May 2020

Use the Get-CsUserSession was a PowerShell cmdlet to retrieve user-session information for Skype for Business Online. On 7th May, Microsoft updated the online documentation to say it is depreciated and to move to use the new call records API. Thanks to my colleague Simon Gardner for the heads up on this.


About the author

Tom Arbuthnot

A Microsoft MVP and Microsoft Certified Master, Tom Arbuthnot is Founder and Principal at Empowering.Cloud as well as a Solutions Director at Pure IP.

Tom stays up to date with industry developments and shares news and his opinions on his, UC Today Microsoft Teams Podcast and email list. He is a regular speaker at events around the world.

  • Tom Talks Microsoft Teams and Microsoft 365 news and opinions