Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

Pages Menu
TwitterRssFacebook

Posted by on Apr 19, 2023 in Microsoft Teams

Act now: are you ready for Microsoft Graph billing changes coming in July?

Act now: are you ready for Microsoft Graph billing changes coming in July?

We’ve known for a while (since October 2021 in fact) that Microsoft would start charging for using specific API endpoints in Microsoft Graph.

These chargable endpoints are confined to Change Notifications for Teams activity, Export APIs and message updates. The specific APIs impacted are:

Now though, thanks to a blog post on the Microsoft 365 Platform blog, we know that Microsoft are going to start implementing their planned charging for use of these endpoints.

In this post I’ve tried to give clear advice on who should act, what you need to do by when, and answer some common questions. Let me know if there are questions you think I’ve missed!

If you created your application registration after March 1st 2023…

If your application registration (not your app, just the application registration) was created after 1st March then you are already being charged for these APIs and therefore there isn’t any new action for you to take.

If this was a surprise, then either you’re using Evaluation Mode (which is fully functional but with a low rate) and your application isn’t making enough calls to cause a problem, or you’re missing data. Check for HTTP 402: Payment Required response errors.

If you created your application registration before March 1st 2023…

If you have an application registration which is older than March 1st then you have yet to be impacted by this change.

This is changing. From July 1st 2023, your application must be registered and configured correctly, otherwise it will revert to Evaluation Mode, putting you at risk of those HTTP 402: Payment Required errors.

What is Evaluation Mode?

Evaluation Mode is the default state your application is placed into if you don’t do anything. The throughput limits for Evaluation Mode are:

  • 500 chatMessage change notification messages per month, per app
  • 500 conversationMember change notification messages per month, per app
  • 500 chat change notification messages per month, per app
  • 500 export messages across all chats per month, per app
  • 500 export messages across all channels per month, per app
  • 500 policyViolation chatMessage updates, per month, per app

After this, you will receive HTTP 402: Payment Required errors and data will not be returned until the limit resets at the start of the next month.

What do I need to do to prepare for Graph billing changes?

  • You need to associate your application with an Azure subscription for billing. This is done by creating a resource of type Microsoft.GraphServices. If this is the first time you have done this you also need to register the resource provider on your subscription, which you can do in the CLI: az provider register –namespace Microsoft.GraphServices
  • To actually associate the application with the subscription, create a new instance of a Microsoft.GraphServices resource:
az resource create --resource-group RESOURCE_GROUP_NAME --name myGraphAppBilling --resource-type Microsoft.GraphServices/accounts --properties  "{`"appId`": `"myAppGUID`"}" --location Global --subscription mySubscriptionGUID

You’ll need to know your subscription ID and application ID. More information on these commands is in the Microsoft docs: Enable metered APIs and services in Microsoft Graph – Microsoft Graph | Microsoft Learn.

Tip: I recommend creating a new resource group, either for all of these GraphService resources you create (one per application), or a separate resource group for each GraphService resource. This will make viewing the costs easier (see below).

I have a multi-tenanted application. What happens?

Microsoft Graph consumption charges accrue to the owner of the application, whether it’s single tenant or multi-tenant. This means that if you have a multi-tenanted application used by many different tenants, all the charges will come to you!

How can I see what I’m being charged?

Once you have configured your application and subscription for consumption billing the costs will appear in Azure alongside any other charges you have, via the Cost Analysis blade. If you have created your GraphService resources in a separate resource group then it should be easier to separate out the consumption API cost from anything else that’s happening in your tenant.

Written by Tom Morgan

Tom is a Microsoft Teams Platform developer and Microsoft MVP who has been blogging for over a decade. Find out more.
Buy the book: Building and Developing Apps & Bots for Microsoft Teams. Now available to purchase online with free updates.

Post a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Share to Microsoft Teams