Microsoft Teams Presence Graph API: How to Use It and Some Other Details About It

Update: Dec 6, 2019 Microsoft Graph Presence API Preview announced here. We now know for certain: No App Permissions (you get presence from a AD user perspective), no subscription (programmers only get point in time presence) and get a batch of AD User's presence. Graph details here.

Teams developers have been waiting on the Graph Presence API with baited breath. (It appears to be available in Preview as of 11/29/2019. At this time there have been no announcements since Ignite 2019, but it seems to work).

How to quickly test the Teams Presence Graph API it

The Graph presence API for Microsoft Teams was mentioned in session VCE50 at Ignite 2019 but I just decided to test it today and it seems to work. Here is how:

  1. Go to and sign in as a valid Teams users
  2. Give your user permissions to see Presence by clicking "modify permissions"
  3. run: for a quick test. more below

Some more about the Graph API for Microsoft Teams

It appears to be user based at the moment. (Perhaps App based will come later this month?)

Presence permissions include: Presence.Read and Present.Read.All: Read lets this user read its own presence and Read.All lets users read other user's presence as well.

You can check your own presence or others:{ad_user_guid}/presence

The API returns "availability" (ie:Busy) and "activity" (ie: InACall).

The presence is request based and not subscription based which means it is a somewhat basic API and not optimal for most realtime applications since the app needs to keep asking for the state.

NOTE: The presence response is sometimes very slow (5000ms?).

Below is the Ignite 2019, Session VCE50 slide 29:

Below is the Ignite 2019, Session VCE50 slide 30:


This is an additional API that helps Microsoft Teams developers make solutions for Teams more full featured. Its another step in enabling voice scenarios for Microsoft Teams. The lack of subscriptions indicates this is the "first step" in the presence API.

Landis Technologies has been eager for presence API's to add presence based routing & Queue alerting to our Contact Center for Microsoft Teams. I'm sure vendors like Embrava are eager to put the ME API to use in their Blync Lights as well as many other ISV's and developers.

If there is anything you noticed that I've missed, please comment.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.