Team.Create
Allows the app to create teams without a signed-in user.
In short
Team.Create is available as both an application permission and a delegated permission in the Microsoft Graph API, grouped under the Team category. Allows the app to create teams without a signed-in user. It grants read-only access to resources. Application permissions always require admin consent.
Permission Details
Create teams
Allows the app to create teams without a signed-in user.
23fc2474-f741-46ce-8465-674744c5c361
Create teams
Allows the app to create teams on behalf of the signed-in user.
7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0
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
|
POST
/teams/{id}/clone
|
Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
| Methods |
|---|
POST
/teams
|
POST
/teams/{id}/clone
|
Code Examples
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Team
{
DisplayName = "My Sample Team",
Description = "My sample team’s description",
FirstChannelName = "My first channel of the sample team",
AdditionalData = new Dictionary<string, object>
{
{
"[email protected]" , "https://graph.microsoft.com/v1.0/teamsTemplates('standard')"
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Teams.PostAsync(requestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const team = {
'[email protected]': 'https://graph.microsoft.com/v1.0/teamsTemplates(\'standard\')',
displayName: 'My Sample Team',
description: 'My sample team’s description',
firstChannelName: 'My first channel of the sample team',
};
await client.api('/teams')
.post(team);
Import-Module Microsoft.Graph.Teams
$params = @{
"[email protected]" = "https://graph.microsoft.com/v1.0/teamsTemplates('standard')"
displayName = "My Sample Team"
description = "My sample team’s description"
firstChannelName = "My first channel of the sample team"
}
New-MgTeam -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.team import Team
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Team(
display_name = "My Sample Team",
description = "My sample team’s description",
first_channel_name = "My first channel of the sample team",
additional_data = {
"template@odata_bind" : "https://graph.microsoft.com/v1.0/teamsTemplates('standard')",
}
)
result = await graph_client.teams.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 Team.Create
Grant Admin Consent
Application permissions always require admin consent.
Frequently asked questions
What is the Team.Create Microsoft Graph permission?
Team.Create is available as both an application permission and a delegated permission in the Microsoft Graph API, grouped under the Team category. Allows the app to create teams without a signed-in user. It grants read-only access to resources. Application permissions always require admin consent. It is mapped to the Microsoft Graph team resource type. 4 documented Microsoft Graph REST methods require it. 2 Microsoft Graph PowerShell commands are documented for it.
Is Team.Create an application or a delegated permission?
Team.Create is available as both an application permission (app-only access, no signed-in user) and a delegated permission (access on behalf of a signed-in user).
Does Team.Create require admin consent?
Application permissions always require admin consent.
What is the permission ID (GUID) for Team.Create?
For Team.Create, the application (app role) ID is 23fc2474-f741-46ce-8465-674744c5c361, and the delegated (OAuth2 scope) ID is 7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0. These are the real Microsoft Graph identifiers and can be used directly in an app registration manifest.