This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can trysigning in orchanging directories.
Access to this page requires authorization. You can trychanging directories.
Namespace: microsoft.graph
Getgroups,directory roles, andadministrative units that the user is a direct member of. This operation isn't transitive. To retrieve groups, directory roles, and administrative units that the user is a member through transitive membership, use theList user transitive memberOf API.
This API is available in the followingnational cloud deployments.
| Global service | US Government L4 | US Government L5 (DOD) | China operated by 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissionsonly if your app requires it. For details about delegated and application permissions, seePermission types. To learn more about these permissions, see thepermissions reference.
| Permission type | Least privileged permissions | Higher privileged permissions |
|---|---|---|
| Delegated (work or school account) | User.Read | Directory.Read.All, Directory.ReadWrite.All, GroupMember.Read.All |
| Delegated (personal Microsoft account) | Not supported. | Not supported. |
| Application | Not supported. | Not supported. |
| Permission type | Least privileged permissions | Higher privileged permissions |
|---|---|---|
| Delegated (work or school account) | User.Read.All | Directory.Read.All, Directory.ReadWrite.All, GroupMember.Read.All |
| Delegated (personal Microsoft account) | Not supported. | Not supported. |
| Application | Directory.Read.All | Directory.ReadWrite.All |
Important
When an application queries a relationship that returns adirectoryObject type collection, if it doesn't have permission to read a certain resource type, members of that type are returned but with limited information. For example, only the@odata.type property for the object type and theid is returned, while other properties are indicated asnull. With this behavior, applications can request the least privileged permissions they need, rather than rely on the set ofDirectory.* permissions. For details, seeLimited information returned for inaccessible member objects.
Tip
/me/memberOf endpoint requires a signed-in user and therefore a delegated permission. Application permissions are not supported when you use the/me/memberOf endpoint.Member.Read.Hidden permission is required.GET /me/memberOfNote
Calling the/me endpoint requires a signed-in user and therefore a delegated permission. Application permissions aren't supported when using the/me endpoint.
GET /users/{id | userPrincipalName}/memberOfThis method supports theOData query parameters to help customize the response, including$search,$count, and$filter. OData cast is also enabled; for example, you can cast to get just thedirectoryRoles the user is a member of. You can use$search on thedisplayName property. Items that are added or updated for this resource are specially indexed for use with the$count and$search query parameters. There can be a slight delay between when an item is added or updated and when it's available in the index.
The use of$filter with this API requires theConsistencyLevel header set toeventual and$count. However, in such scenarios, you can't use$expand in the same request as it isn't supported with advanced query parameters. For more information, seeAdvanced query capabilities on directory objects.
| Header | Value |
|---|---|
| Authorization | Bearer {token}. Required. Learn more aboutauthentication and authorization. |
| ConsistencyLevel | eventual. This header and$count are required when using the$search,$filter,$orderby, or OData cast query parameters. It uses an index that might not be up-to-date with recent changes to the object. |
Don't supply a request body for this method.
If successful, this method returns a200 OK response code and collection ofdirectoryObject objects in the response body.
The following example shows a request.
GET https://graph.microsoft.com/v1.0/users/6e7b768e-07e2-4810-8459-485f84f8f204/memberOfThe following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OKContent-type: application/json{ "value": [ { "@odata.type": "#microsoft.graph.group", "displayName": "All Users", "mailEnabled": false, "securityEnabled": true } ]}The following example shows a request.
GET https://graph.microsoft.com/v1.0/users/{id}/memberOf/$countConsistencyLevel: eventualThe following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OKContent-type: text/plain17The following example shows a request.
GET https://graph.microsoft.com/v1.0/users/{id}/memberOf/microsoft.graph.group/$countConsistencyLevel: eventualThe following example shows the response.
HTTP/1.1 200 OKContent-type: text/plain16The following example shows a request.
GET https://graph.microsoft.com/v1.0/users/{id}/memberOf/microsoft.graph.group?$count=true&$orderby=displayName&$search="displayName:tier"&$select=displayName,idConsistencyLevel: eventualThe following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OKContent-type: application/json{ "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups(displayName,id)", "@odata.count":7, "value":[ { "displayName":"Contoso-tier Query Notification", "id":"11111111-2222-3333-4444-555555555555" } ]}The following example shows a request.
GET https://graph.microsoft.com/v1.0/users/{id}/memberOf/microsoft.graph.group?$count=true&$orderby=displayName&$filter=startswith(displayName, 'a')ConsistencyLevel: eventualThe following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OKContent-type: application/json{ "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups", "@odata.count":76, "value":[ { "displayName":"AAD Contoso Users", "mail":"AADContoso_Users@contoso.com", "mailEnabled":true, "mailNickname":"AADContoso_Users", "securityEnabled":true } ]}The following example shows a request.
GET https://graph.microsoft.com/v1.0/users/{id}/memberOf/microsoft.graph.group?$filter=appRoleAssignments/$count gt 0&$select=id,displayNameThe following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OKContent-type: application/json{ "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups", "value":[ { "id": "c11b732b-0e16-46c1-b0fa-bd32c8a42455", "displayName":"All users" }, { "id": "3f927b40-06f8-4352-b8e4-37a7ba04b7ff", "displayName":"AAD Contoso Users" } ]}Was this page helpful?
Need help with this topic?
Want to try using Ask Learn to clarify or guide you through this topic?
Was this page helpful?
Want to try using Ask Learn to clarify or guide you through this topic?