TeamMember.ReadWriteNonOwnerRole.All
Add and remove members from all teams, without a signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.
Permission Details
Add and remove members with non-owner role for all teams
Add and remove members from all teams, without a signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.
4437522e-9a86-4a41-a7da-e380edd4a97d
Add and remove members with non-owner role for all teams
Add and remove members from all teams, on behalf of the signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.
2104a4db-3a2f-4ea0-9dba-143d457dc666
Properties
Properties is shown from stable Microsoft Graph v1.0 metadata.
| Property | Type | Description |
|---|---|---|
id |
string |
The unique identifier of the team. The group has the same ID as the team. This property is read-only, and is inherited from the base entity type. |
classification |
stringNullable |
An optional label. Typically describes the data or business sensitivity of the team. Must match one of a preconfigured set in the tenant's directory. |
classSettings |
teamClassSettings |
Configure settings of a class. Available only when the team represents a class. |
createdDateTime |
dateTimeOffsetNullable |
Timestamp at which the team was created. |
description |
stringNullable |
An optional description for the team. Maximum length: 1,024 characters. |
displayName |
stringNullable |
The name of the team. |
firstChannelName |
StringNullable |
The name of the first channel in the team. This is an optional property, only used during team creation and isn't returned in methods to get and list teams. |
funSettings |
teamFunSettings |
Settings to configure use of Giphy, memes, and stickers in the team. |
guestSettings |
teamGuestSettings |
Settings to configure whether guests can create, update, or delete channels in the team. |
internalId |
stringNullable |
A unique ID for the team that was used in a few places such as the audit log/Office 365 Management Activity API. |
isArchived |
BooleanNullable |
Whether this team is in read-only mode. |
memberSettings |
teamMemberSettings |
Settings to configure whether members can perform certain actions, for example, create channels and add bots, in the team. |
messagingSettings |
teamMessagingSettings |
Settings to configure messaging and mentions in the team. |
specialization |
teamSpecialization |
Optional. Indicates whether the team is intended for a particular use case. Each team specialization has access to unique behaviors and experiences targeted to its use case. |
summary |
teamSummary |
Contains summary information about the team, including number of owners, members, and guests. |
Showing 15 of 32 properties.
JSON Representation
JSON representation is shown from stable Microsoft Graph v1.0 metadata.
{
"classSettings": {
"@odata.type": "microsoft.graph.teamClassSettings"
},
"classification": "String",
"createdDateTime": "DateTimeOffset",
"description": "String",
"displayName": "String",
"firstChannelName": "String",
"funSettings": {
"@odata.type": "microsoft.graph.teamFunSettings"
},
"guestSettings": {
"@odata.type": "microsoft.graph.teamGuestSettings"
},
"internalId": "String",
"isArchived": "Boolean",
"memberSettings": {
"@odata.type": "microsoft.graph.teamMemberSettings"
},
"messagingSettings": {
"@odata.type": "microsoft.graph.teamMessagingSettings"
},
"specialization": "String",
"tenantId": "String",
"visibility": "String",
"webUrl": "String (URL)"
}
Relationships
Relationships is shown from stable Microsoft Graph v1.0 metadata.
| Relationship | Type | Description |
|---|---|---|
allChannels |
channel collection |
List of channels either hosted in or shared with the team (incoming channels). |
channels |
channel collection |
The collection of channels and messages associated with the team. |
incomingChannels |
channel collection |
List of channels shared with the team. |
installedApps |
teamsAppInstallation collection |
The apps installed in this team. |
members |
conversationMember collection |
Members and owners of the team. |
operations |
teamsAsyncOperation collection |
The async operations that ran or are running on this team. |
photo |
profilePhoto |
The profile photo for the team. |
primaryChannel |
channel |
The general channel for the team. |
schedule |
schedule |
The schedule of shifts for this team. |
tags |
teamworkTag collection |
The tags associated with the team. |
template |
teamsTemplate |
The template this team was created from. See available templates. |
permissionGrants |
resourceSpecificPermissionGrant collection |
A collection of permissions granted to apps to access the team. |
owners |
user collection |
The list of this team's owners. Currently, when creating a team using application permissions, exactly one owner must be specified. When using user-delegated permissions, no owner can be specified (the current user is the owner). The owner must be specified as an object ID (GUID), not a UPN. |
Graph Methods
Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
| Methods |
|---|
POST
/teams/{team-id}/members
|
POST
/teams/{team-id}/members/add
|
PATCH
/teams/{team-id}/members/{membership-id}
|
DELETE
/teams/{team-id}/members/{membership-id}
|
Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.
Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.
Code Examples
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AadUserConversationMember
{
OdataType = "#microsoft.graph.aadUserConversationMember",
Roles = new List<string>
{
"owner",
},
AdditionalData = new Dictionary<string, object>
{
{
"[email protected]" , "https://graph.microsoft.com/v1.0/users('8b081ef6-4792-4def-b2c9-c363a1bf41d5')"
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Teams["{team-id}"].Members.PostAsync(requestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const conversationMember = {
'@odata.type': '#microsoft.graph.aadUserConversationMember',
roles: ['owner'],
'[email protected]': 'https://graph.microsoft.com/v1.0/users(\'8b081ef6-4792-4def-b2c9-c363a1bf41d5\')'
};
await client.api('/teams/ee0f5ae2-8bc6-4ae5-8466-7daeebbfa062/members')
.post(conversationMember);
Import-Module Microsoft.Graph.Teams
$params = @{
"@odata.type" = "#microsoft.graph.aadUserConversationMember"
roles = @(
"owner"
)
"[email protected]" = "https://graph.microsoft.com/v1.0/users('8b081ef6-4792-4def-b2c9-c363a1bf41d5')"
}
New-MgTeamMember -TeamId $teamId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.aad_user_conversation_member import AadUserConversationMember
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = AadUserConversationMember(
odata_type = "#microsoft.graph.aadUserConversationMember",
roles = [
"owner",
],
additional_data = {
"user@odata_bind" : "https://graph.microsoft.com/v1.0/users('8b081ef6-4792-4def-b2c9-c363a1bf41d5')",
}
)
result = await graph_client.teams.by_team_id('team-id').members.post(request_body)
App Registration
Navigate to Azure Portal
Go to App registrations in Microsoft Entra admin center
Add API Permission
Select your app → API permissions → Add a permission → Microsoft Graph
Select Permission Type
Choose Application permissions or delegated permissions and search for TeamMember.ReadWriteNonOwnerRole.All
Grant Admin Consent
Application permissions always require admin consent.