title | description | author | ms.localizationpriority | ms.subservice | doc_type |
---|---|---|---|---|---|
List group transitive members |
Get a list of the group's members. A group can have users, devices, organizational contacts, and other groups as members. This operation is transitive and returns a flat list of all nested members. |
Jordanndahl |
medium |
entra-groups |
apiPageType |
Namespace: microsoft.graph
Get a list of the group's members. A group can have different object types as members. For more information about supported member types for different groups, see Group membership.
This operation is transitive and returns a flat list of all nested members. An attempt to filter by an OData cast that represents an unsupported member type returns a 400 Bad Request
error with the Request_UnsupportedQuery
code.
[!INCLUDE national-cloud-support]
Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
[!INCLUDE permissions-table]
[!INCLUDE limited-info]
Note: To list the members of a hidden membership group, the Member.Read.Hidden permission is required.
GET /groups/{id}/transitiveMembers
This method supports the OData query parameters to help customize the response, including $search
, $count
, $top
, and $filter
. You can use $search
on the displayName and description properties. You can also filter the results on the OData type, such as microsoft.graph.user
or microsoft.graph.group
.
This API returns up to 100 member objects by default. The maximum page size that you can request through the $top
query parameter is 999 objects.
Some queries are supported only when you use the ConsistencyLevel header set to eventual
and $count
. For more information, see Advanced query capabilities on directory objects.
Name | Description |
---|---|
Authorization | Bearer {token}. Required. Learn more about authentication 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 a 200 OK
response code and a collection of directoryObject objects in the response body.
An attempt to filter by an OData cast that represents an unsupported member type returns a 400 Bad Request
error with the Request_UnsupportedQuery
code. For example, /groups/{id}}/transitiveMembers/microsoft.graph.group
when the group is a Microsoft 365 group will return this error, because Microsoft 365 groups cannot have other groups as members.
The following example shows a request.
GET https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/transitiveMembers
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"@odata.type": "#microsoft.graph.user",
"id": "11111111-2222-3333-4444-555555555555",
"mail": "group1@contoso.com"
}
]
}
The following example shows a request.
GET https://graph.microsoft.com/v1.0/groups/{id}/transitiveMembers/$count
ConsistencyLevel: eventual
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-type: text/plain
893
The following example shows a request.
GET https://graph.microsoft.com/v1.0/groups/{id}/transitiveMembers/microsoft.graph.group?$count=true
ConsistencyLevel: eventual
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups",
"@odata.count": 2,
"value": [
{
"@odata.id": "https://graph.microsoft.com/v2/927c6607-8060-4f4a-a5f8-34964ac78d70/directoryObjects/4d0ef681-e88f-42a3-a2db-e6bf1e249e10/Microsoft.DirectoryServices.Group",
"id": "4d0ef681-e88f-42a3-a2db-e6bf1e249e10",
"organizationId": "927c6607-8060-4f4a-a5f8-34964ac78d70",
"description": null,
"displayName": "Executives",
"groupTypes": [],
"mail": "Executives@contoso.com",
"mailEnabled": true,
"mailNickname": "Executives",
},
{
"@odata.id": "https://graph.microsoft.com/v2/927c6607-8060-4f4a-a5f8-34964ac78d70/directoryObjects/d9fb0c47-c783-40a1-bce1-53b52ada51fc/Microsoft.DirectoryServices.Group",
"id": "d9fb0c47-c783-40a1-bce1-53b52ada51fc",
"organizationId": "927c6607-8060-4f4a-a5f8-34964ac78d70",
"displayName": "Project Falcon",
"groupTypes": [],
"mail": "Falcon@contoso.com",
"mailEnabled": true,
"mailNickname": "Falcon",
}
]
}
Example 4: Use OData cast and $search to get membership in groups with display names that contain the letters 'tier' including a count of returned objects
The following example shows a request.
GET https://graph.microsoft.com/v1.0/groups/{id}/transitiveMembers/microsoft.graph.user?$count=true&$orderby=displayName&$search="displayName:tier"&$select=displayName,id
ConsistencyLevel: eventual
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users(displayName,id)",
"@odata.count":7,
"value":[
{
"displayName":"Joseph Price",
"id":"11111111-2222-3333-4444-555555555555"
}
]
}
Example 5: Use OData cast and $filter to get user membership in groups with a display name that starts with 'A' including a count of returned objects
The following example shows a request.
GET https://graph.microsoft.com/v1.0/groups/{id}/transitiveMembers/microsoft.graph.user?$count=true&$orderby=displayName&$filter=startswith(displayName, 'a')
ConsistencyLevel: eventual
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users",
"@odata.count":76,
"value":[
{
"displayName":"AAD Contoso Users",
"mail":"AADContoso_Users@contoso.com"
}
]
}