Microsoft Graph Feature Requests

Welcome to the Microsoft Graph UserVoice! Do you have an idea or feature suggestion based on your experience with Microsoft Graph? Please share these with us by submitting your idea below or voting up ideas submitted by other users. This forum will be directly monitored by the Microsoft Graph engineering teams who are working on new features every day.

If you have feedback on a specific API service, please choose the corresponding category. Please submit any broad ideas related to Microsoft Graph or ideas across more than one service to the “General” category.

This site is only for feature suggestions and ideas! If you need technical help, please go to the Microsoft Graph StackOverflow or if you have a Premier support contract raise a support ticket.

For more information on Microsoft Graph, please checkout https://graph.microsoft.com.


  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Include users' last logon time

    Last Logon is missing from the user objects in Azure! I'd like to be able to read the Last Logon information through the Graph API, to tell which users are actually logging in. But very surprisingly I can't find any such attribute!

    Can we please please add this attribute to the user object?

    483 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    47 comments  ·  Users  ·  Flag idea as inappropriate…  ·  Admin →

    This capability is now in /beta. It was actually documented earlier, but the service wasn’t quite functional. It is now.
    Here’s an example of getting users and their last signin activity: https://docs.microsoft.com/graph/api/user-list?view=graph-rest-beta&tabs=http#example-5-list-the-last-sign-in-time-of-users-in-a-specific-time-range

    Although not documented you can also filter on a date range to get the set of users that have not signed in since a certain date, or the users that signed in in the last 3 weeks etc.

    Try GET https://graph.microsoft.com/beta/users?$filter=signInActivity/lastSignInDateTime ge 2020-03-20T00:00:00Z&$select=signInActivity,id,userPrincipalName

  2. allow access to user presence via API

    Please allow access to read and update user presence via API.

    119 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    21 comments  ·  Cloud Communications  ·  Flag idea as inappropriate…  ·  Admin →
  3. Teams- Subscription to user presence updates

    As it stands, the API to get Teams presence requires constant polling in order to track a user's presence in near-real time. It would be more useful if we could subscribe to all presence updates using a webhook.

    79 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    7 comments  ·  Cloud Communications  ·  Flag idea as inappropriate…  ·  Admin →
  4. Provide a Teams API To send direct messages to users

    Currently, the only way to send messages is to post a message on a channel in a team. It would be great if there could be an API to send a direct message to the users. Please let me know if it already exists, because I could not find any such method in the chat object here :
    https://docs.microsoft.com/en-us/graph/api/resources/teams-api-overview?view=graph-rest-beta

    60 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    9 comments  ·  Teamwork (Teams)  ·  Flag idea as inappropriate…  ·  Admin →
  5. Provide webhooks for Microsoft Teams messages.

    We are integrating Microsoft Teams threaded chat into our product offering. Our users will interact with the channel-based chat using both the Microsoft Teams application and from within our application. To avoid polling, we would like to be able to subscribe to Microsoft Teams related events. Of interest are events related to new channel messages. We found similar subscriptions for files and email, but nothing related to Microsoft Teams.

    See documentation for /subscription endpoints, Change notifications: "Use the Microsoft Graph API to get change notifications"

    60 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    11 comments  ·  Teamwork (Teams)  ·  Flag idea as inappropriate…  ·  Admin →
  6. Support Azure Conditional Access for Microsoft Graph

    A lot of Microsoft products does not work as expected due to the fact the Microsoft Graph does not support Azure Conditional Access. Among the applications I can mention is Microsoft Teams, ToDo, etc. that all rely on the Microsoft Graph and breaks to to limited support or no support for Azure Conditional Access.

    Teams:
    https://microsoftteams.uservoice.com/forums/555103-public/suggestions/32657161-conditional-access-team-authentication

    ToDo:
    https://todo.uservoice.com/forums/597175-feature-suggestions/suggestions/32007451-add-support-for-conditional-access

    /Peter Selch Dahl - Azure MVP

    39 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Identity and Access  ·  Flag idea as inappropriate…  ·  Admin →
  7. Allow filtering users by officeLocation

    While filtering works for some attributes like department it doesn't work for officeLocation, which sadly I need for my use case.

    GET https://graph.microsoft.com/beta/users?$filter=officeLocation eq 'Gaithersburg, MD'

    Returns:
    {

    "error": {
    
    "code": "Request_UnsupportedQuery",
    "message": "Unsupported or invalid query filter clause specified for property 'officeLocation' of resource 'User'.",
    "innerError": {
    "request-id": "641beedd-4df5-4b97-b6b5-4f574c382d08",
    "date": "2017-07-26T18:32:39"
    }
    }

    }

    36 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    4 comments  ·  Users  ·  Flag idea as inappropriate…  ·  Admin →

    This capability is now available in Microsoft Graph public preview. It’s not currently documented.

    NOTE: you’ll need to use a custom HTTP request header ConsistencyLevel: eventual and request $count=true as well, to enable this query capability.

    GET ../beta/users?$filter=officeLocation eq ‘SomeLocation’&$count=true
    ConsistencyLevel:eventual

    See also related queries in the changelog entry https://docs.microsoft.com/en-us/graph/changelog#identity-and-access-azure-ad

  8. Support $count for group members and owners

    Currently $count is not supported on directoryObjects like users and groups. Although it would be great to know how much members / owners are in a group. The only way right now is via querying the members or owners endpoint of the group and checking the array length. Depending on the number of members, this could lead to multiple calls.

    It would be great that the $count parameter would be supported so that only one call is required.

    32 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Groups  ·  Flag idea as inappropriate…  ·  Admin →

    This capability is now available in Microsoft Graph public preview. For an example please see https://docs.microsoft.com/en-us/graph/api/group-list-members?view=graph-rest-beta&tabs=http#example-5-use-filter-to-get-group-membership-with-a-display-name-that-starts-with-the-letter-a-including-a-count-of-returned-objects. Although not documented, this IS also supported on /owners.

    NOTE: you’ll need to use a custom HTTP request header and request $count too, to enable this query capability.

    See also related queries in the changelog entry https://docs.microsoft.com/en-us/graph/changelog#identity-and-access-azure-ad

  9. Allow / Add onPremisesSamAccountName as a filter

    It will be very interesting to allow filter by onPremisesSamAccountName in users endpoint.

    20 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Users  ·  Flag idea as inappropriate…  ·  Admin →

    his capability is now available in Microsoft Graph public preview. It’s not currently documented.

    NOTE: you’ll need to use a custom HTTP request header ConsistencyLevel: eventual and request $count=true as well, to enable this query capability.

    GET ../beta/users?$filter=onPremisesSamAccountName eq ‘name’&$count=true
    ConsistencyLevel:eventual

    See also related queries in the changelog entry https://docs.microsoft.com/en-us/graph/changelog#identity-and-access-azure-ad

  10. Allow filter on target of a navigation collection for users and groups

    Enable filtering and casting on the target for a navigation collection. For example "get the users that are members of a group, even though the group contains users, groups and service principals. Additionally allow me to do things like find all the members of this group that are in "sales" department.

    20 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Groups  ·  Flag idea as inappropriate…  ·  Admin →

    This capability is now available in Microsoft Graph public preview. For an example please see https://docs.microsoft.com/en-us/graph/api/group-list-members?view=graph-rest-beta&tabs=http#example-5-use-filter-to-get-group-membership-with-a-display-name-that-starts-with-the-letter-a-including-a-count-of-returned-objects.

    NOTE: you’ll need to use a custom HTTP request header and request $count too, to enable this query capability.

    See also related queries in the changelog entry https://docs.microsoft.com/en-us/graph/changelog#identity-and-access-azure-ad

  11. Expose Office API via Swagger.

    OK this is a radical idea from listening to @mkristensen talk about VS.NET tooling and how they are looking at supporting Swagger 2.0 to provide code generation for RESTful APIs in VSNET.

    http://devchat.tv/adventures-in-angular/019-aia-microsoft-tooling-with-mads-kristensen

    I looked up Swagger and their online documentation editor, and browser and here's an example

    http://petstore.swagger.wordnik.com/#!/pet/updatePet

    Which is surprisingly similar to Office 365's

    http://msdn.microsoft.com/en-us/library/office/dn600182(v=office.15).aspx

    I think Office 365 documentation on MSDN should still be the primary resource. Any future tie in to API-Sandbox would be awesome.

    But if VSNET starts to support auto-codegen (like the old days with WSDL/Soap Services) from Swagger documentation, then I can also…

    19 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    5 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
  12. Graph - Provide access to ItemAttachment bytes

    In the EWS api we could download an email attachment that is itself an email (say message.eml) as a byte array, untouched. This does not appear to be possible in the Graph API. The itemAttachment is visible using $expand=microsoft.graph.itemattachment/item but only as exploded json and attachments to the itemAttachment itself are not there.

    I work in a Search and Rescue environment (lives are at stake) and from an auditing/quality/completeness perspective I need to know exactly what was attached to the email (the bytes). I think the API needs to be enhanced to provide this. Can I suggest that the api…

    17 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Mail (Outlook)  ·  Flag idea as inappropriate…  ·  Admin →
  13. Planner Task Change Notifications or Delta Query

    I would like to be notified when tasks are created, updated or deleted in the graph api change notifications. Alternatively delta queries would be helpful in creating a standup-feed of information that has changed since the last meeting.

    14 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  Tasks and Plans (Planner)  ·  Flag idea as inappropriate…  ·  Admin →
  14. 12 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    4 comments  ·  Users  ·  Flag idea as inappropriate…  ·  Admin →

    Hi,
    filtering on mobilePhone is tricky because it is a “free-text” field, and there is no format guarantee.
    It can start with the country code, it may not.
    It can be separated by parenthesis, hyphens or dots, or not. Totally depends on the user input.

    However, this functionality is currently beta, thanks to the new advanced query capabilities for Directory Objects (see announcement blog post https://aka.ms/CountFilterMSGraphAAD )

    Here is the query you can try today by setting:
    1) Beta Endpoint
    2) ConsistencyLevel = eventual header
    3) $count=true parameter

    Example: find all users with mobilePhone starting with “+1” (note: + character is urlencoded)

    https://developer.microsoft.com/en-us/graph/graph-explorer?request=users?$select=id,displayName,mobilePhone%26$filter=startswith(mobilePhone,'%252B1')%26$count=true&method=GET&version=beta&GraphUrl=https://graph.microsoft.com&requestBody=&headers=W3sibmFtZSI6IkNvbnNpc3RlbmN5TGV2ZWwiLCJ2YWx1ZSI6ImV2ZW50dWFsIn1d

  15. Ability to filter users with onPremisesSamAccountName with Microsoft Graph API

    would like to have a filter on the users api of Microsoft Graph API, where I will be able to filter the users based on onPremisesSamAccountName, which is currently not available with Graph API.

    We have the internal employee id to be stored with onPremisesSamAccountName variable which is present in users API of Microsoft Graph. We are trying to filter with onPremisesSamAccountName property to filter based on the internal employee id. Currently we are not able to do that with Graph API but we really need this to be workling or would be happy if we get know any possible…

    10 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    In Beta  ·  1 comment  ·  Users  ·  Flag idea as inappropriate…  ·  Admin →
  16. Support the $count operator for user and group objects

    Given that the return size of any query is limited, the $count operator should be supported a lot more broadly. My immediate need when targetting AzureAD instead of an OnPrem AD is knowing the number of users, and number of groups when I send a query.

    10 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Users  ·  Flag idea as inappropriate…  ·  Admin →

    This capability is now available in Microsoft Graph public preview.

    For an example please see https://docs.microsoft.com/en-us/graph/api/group-list?view=graph-rest-beta&tabs=http#example-3-get-only-a-count-of-groups

    NOTE: you’ll need to use a custom HTTP request header to enable this query capability.

    See also related queries in the changelog entry https://docs.microsoft.com/en-us/graph/changelog#identity-and-access-azure-ad

  17. Allow filtering on businessPhones field in Microsoft Graph

    Filtering currently does not work on businessPhones field. I would like to be able to return users, for example, with a certain area code.

    10 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  Users  ·  Flag idea as inappropriate…  ·  Admin →

    Hi Courtney, filtering on businessPhones is currently in beta, using this query (all business phones starting with +1):

    ../users?$count=true&$select=id,displayName,mobilePhone,businessPhones&$filter=businessPhones/Any(x:startsWith(x,‘%2B1%205’))

    Remember to add ConsistencyLevel:eventual request header, and $count=true querystring parameter.
    Note1: “+” character of “+1” country code needs to be urlencoded.
    Note2: this field is free-text, and depends on the user input. It’s difficult to get reliable results if the data is not in a standard format.

    Click here to try in MS Graph:
    https://developer.microsoft.com/en-US/graph/graph-explorer/preview?request=users?$count=true%26$select=id,displayName,mobilePhone,businessPhones%26$filter=businessPhones/Any(x:startsWith(x,%20'%252B1%25205'))&method=GET&version=beta&GraphUrl=https://graph.microsoft.com&requestBody=&headers=W3sibmFtZSI6IkNvbnNpc3RlbmN5TGV2ZWwiLCJ2YWx1ZSI6ImV2ZW50dWFsIn1d

    @Anonymous: we are thinking to index all the phone numbers without the special characters (e.g. only digits), so if you want to search for 18474969000, you could do a:
    $filter=businessPhones/Any(x:endsWith(x,‘8474969000’))

    Note: I’m using “endsWith”, operator that is currently in deveopment, and I removed the optional country code “1” from the search string to return all results.
    Please open a new feedback item if you would like to track this work.

  18. User Provisioning API

    MS Teams configuration is currently split between two powershell modules: the Skype for Business Online PS Module and the Teams PS module.

    We're using these to provision MS Teams, but it is cumbersome to do remote PS, the SfBO Module has stringent limits like number of sessions, throttling and speed overall (takes a long time to even get a session).

    My suggestion is to move everything to MS graph.. and for end users, extend the MS Teams PS module using these newly established graph API functionality and offer them to developers as well. We'd be a lot more effective being…

    9 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  Teamwork (Teams)  ·  Flag idea as inappropriate…  ·  Admin →
  19. Graph API Retrieving Nested Mail Attachments Not Available

    Graph API Retrieving Nested Mail Attachments Not Available

    We are using the Graph API to connect to an account using Java. We are able to make calls to retrieve user details, mail details, headers and attachments, etc… One of our use cases require us to retrieve information related to nested attached emails (e.g. an email in the account has an attached email. This email has an attached email and also some attached files). By using the Graph API, we are able to retrieve information related to the email including attachments https://graph.microsoft.com/v1.0/me/messages/{messageid}/?$expand=attachments. From what’s returned, we are able to…

    9 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Mail (Outlook)  ·  Flag idea as inappropriate…  ·  Admin →
  20. Allow filtering users by companyName

    While filtering works for some attributes like department it doesn't work for companyName, which sadly I need for my use case.

    8 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    In Beta  ·  1 comment  ·  Users  ·  Flag idea as inappropriate…  ·  Admin →
← Previous 1
  • Don't see your idea?

Feedback and Knowledge Base