Blog Post

Exchange Team Blog
2 MIN READ

Message Trace Support Using Graph API is now in Public Preview

The_Exchange_Team's avatar
The_Exchange_Team
Platinum Contributor
Jan 22, 2026

We are excited to announce that Message Trace support using Graph API is now in Public Preview. In response to feedback from our community, we are making enhancements to improve the overall Message Trace experience. We plan to start GA roll-out by January-end and complete within the first week of February. With this RESTful web API, you can trace your email messages throughout your Exchange Online organization. The new Message Trace support using Graph API will replace the existing Message Trace support using Reporting Webservice API.

Please see our Graph API documentation for more details: exchangeMessageTrace resource type - Microsoft Graph beta | Microsoft Learn.

Migration guidance and deprecation timeline

If you currently use Message Trace using the Reporting Webservice, please migrate to use Message Trace using the Graph API before April 6, 2026.

Message Trace and Message Trace Detail support using the Reporting Webservice will begin deprecating on April 6, 2026.

Please note that all new organizations onboarding to Exchange Online already do not have access to Message Trace support using Reporting Webservice by default due to the migration effort.

Throttling

To reduce the risk of misuse and abuse of Exchange Online resources, ensure services availability for all users, and provide a predictable experience for our customers, we will implement a rate-based throttling limit based on the number of requests in a time period. All calls to message trace or message trace detail share the same quota. For a tenant, a maximum of 100 query message trace requests will be accepted within a 5-minute running window. Throttling is not applied if the request rate is lower than 100 requests in the past 5 minutes. If your tenant has automation set up to query more frequently than the throttling threshold, please update your automation to fit below the throttling limit.

Please note that query request and result size are not the same. A single query request can return up to a maximum of 5,000 results. This means that the maximum number of results you can pull in a 5-minute running window is 500,000 results. If you distribute the queries, you can retrieve up to a maximum of 144 million results daily. This throttling limit is to ensure fairness and service availability for all tenants.

Cmdlet

Tenant level limit

Get-MessageTraceV2  

100 requests per 5 min  

Get-MessageTraceDetailV2  

100 requests per 5 min  

Exchange Online Messaging Team

Published Jan 22, 2026
Version 1.0

2 Comments

  • GrzeWier's avatar
    GrzeWier
    Copper Contributor

    What happens when quota is exceeded and I make a new requests ?

    Will service delay the response until throttling is gone or will the command fail ?

  • There's not much substance in this post. Can you please expand a bit, make it clearer what the expected experience should be? I.e. is this going to replace the cmdlets, or is intended only as a replacement for the web service (bulk data retrieval). There is no payload or $filter support, so it seems to be the latter, but a clarification might be nice.

    Also, are there additional steps required to provision this or is the rollout incomplete, or did you miss the memo on service principal-less auth:

            "message": "Service principal-less Authentication failed: the service principal for App ID 8bd644d1-64a1-4d4b-ae52-2e0cbf64e373 was not found. Please create a service principal for this app in your tenant. Provisioning may take several hours to complete. For details, see: https://learn.microsoft.com/entra/identity-platform/retire-service-principal-less-authentication?branch=main#create-a-service-principal",