Get notified of presence changes – the Microsoft Graph presence subscription API is now available in public preview

Ananya Mishra

We’re excited to announce that our presence subscription API is now in Microsoft Graph beta! As part of our Cloud communications API set, this API is used to subscribe to the Teams presence information of other users. Use webhooks to receive notifications when a user’s presence changes.

This is an alternative to polling for presence by using the GET presence and POST getPresencesByUserId APIs.

This API uses the Presence.Read.All delegated permission. A signed-in user is required. Follow these steps to set up a webhook and retrieve these notifications:

  1. Subscribe to a single user’s presence through the /communications/presences/{id} path.
  2. Subscribe to a maximum number of 650 users by using /communications/presences?$filter=id in ({id},{id}...). The {id} represents a user ID GUID.

Subscriptions expire every hour and must be renewed.

Presence overview

Presence refers to the status of the user. This information allows users to see which users are active and likely to engage with them. It adds a new level of transparency to how we communicate with each other.

The APIs return two key properties that make up presence:

  1. The availability, or base presence information (Available, Away, Busy)
  2. The activity, or information that’s supplemental to the availability (InAMeeting, InACall)

Note that the availability and activity can be the same value.

Sample use cases

  • Display the presence of users in the user interface of a custom business application.
  • Automate tasks to be completed based on a user’s presence status.
  • Integrate with IoT devices. View an open source example and a demo video where a user’s presence information is used to change the color of a smart light bulb.

Learn more


For questions or feedback, visit the Microsoft Graph Support page.


Comments are closed. Login to edit/delete your existing comments

Feedback usabilla icon