ESC
Type to search...

TeamMember.ReadWriteNonOwnerRole.All

Export JSON
Export CSV
Copy URL
Print
ApplicationDelegated Read/Write All Resources

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 data: April 6, 2026 at 4:06 AM UTC
Delegated Access App-Only Access

Permission Details

Application Permission

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.

Delegated Permission Admin consent required

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.

Properties

Microsoft Graph v1.0 endpoint-derived-docs

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

Microsoft Graph v1.0 endpoint-derived-docs

JSON representation is shown from stable Microsoft Graph v1.0 metadata.

JSON representation
{
  "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

Microsoft Graph v1.0 endpoint-derived-docs

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

Delegated access App-only access
Exact Microsoft Learn match

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}
Exact Microsoft Learn match

Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
POST /teams/{team-id}/members
POST /teams/{team-id}/members/add
PATCH /teams/{id}/channels/{id}/members/{id}
PATCH /teams/{id}/members/{id}
PATCH /teams/{team-id}/members/{membership-id}
DELETE /teams/{team-id}/members/{membership-id}
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Add-MgTeamMember /teams/{team-id}/members/add
conversationMember: add
New-MgTeamMember /teams/{team-id}/members
Add member to team
Remove-MgTeamMember /teams/{team-id}/members/{membership-id}
Remove member from team
Update-MgTeamMember /teams/{team-id}/members/{membership-id}
Update member in team
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Add-MgBetaTeamMember /teams/{team-id}/members/add
conversationMember: add
New-MgBetaTeamMember /teams/{team-id}/members
Add member to team
Remove-MgBetaTeamMember /teams/{team-id}/members/{membership-id}
Remove member from team
Update-MgBetaTeamMember /teams/{team-id}/members/{membership-id}
Update member in team

Code Examples

C# / .NET SDK
Add member to team
// 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);
JavaScript
Add member to team
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);
PowerShell
Add member to team
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
Python
Add member to team
# 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

1

Navigate to Azure Portal

Go to App registrations in Microsoft Entra admin center

2

Add API Permission

Select your app → API permissions → Add a permission → Microsoft Graph

3

Select Permission Type

Choose Application permissions or delegated permissions and search for TeamMember.ReadWriteNonOwnerRole.All

4

Grant Admin Consent

Application permissions always require admin consent.