ESC
Type to search...

Channel.Create

Export JSON
Export CSV
Copy URL
Print
ApplicationDelegated Read User Scope

Create channels in any team, without a signed-in user.

Permission data: April 6, 2026 at 4:06 AM UTC
Delegated Access App-Only Access

Permission Details

Application Permission

Create channels

Create channels in any team, without a signed-in user.

Delegated Permission Admin consent required

Create channels

Create channels in any team, on behalf of the signed-in user.

Properties

Microsoft Graph v1.0 exact-category-docs

Properties is shown from stable Microsoft Graph v1.0 metadata.

Property Type Description
createdDateTime dateTimeOffsetNullable Read only. Timestamp at which the channel was created.
description StringNullable Optional textual description for the channel.
displayName String Channel name as it will appear to the user in Microsoft Teams. The maximum length is 50 characters.
email StringNullable The email address for sending messages to the channel. Read-only.
id String The channel's unique identifier. Read-only.
isArchived BooleanNullable Indicates whether the channel is archived. Read-only.
isFavoriteByDefault BooleanNullable Indicates whether the channel should be marked as recommended for all members of the team to show in their channel list. Note: All recommended channels automatically show in the channels list for education and frontline worker users. The property can only be set programmatically via the Create team method. The default value is false.
membershipType channelMembershipType The type of the channel. Can be set during creation and can't be changed. The possible values are: standard, private, unknownFutureValue, shared. The default value is standard. Use the Prefer: include-unknown-enum-members request header to get the following members in this evolvable enum: shared.
tenantId stringNullable The ID of the Microsoft Entra tenant.
webUrl StringNullable A hyperlink that will go to the channel in Microsoft Teams. This is the URL that you get when you right-click a channel in Microsoft Teams and select Get link to channel. This URL should be treated as an opaque blob, and not parsed. Read-only.
summary channelSummary Contains summary information about the channel, including number of owners, members, guests, and an indicator for members from other tenants. The summary property will only be returned if it is specified in the $select clause of the Get channel method.
@microsoft.graph.channelCreationMode string Indicates that the channel is in migration state and is currently being used for migration purposes. It accepts one value: migration.
allMembers conversationMember collection A collection of membership records associated with the channel, including both direct and indirect members of shared channels.
filesFolder object Metadata for the location where the channel's files are stored.
members conversationMember collection A collection of membership records associated with the channel.

Showing 15 of 18 properties.

JSON Representation

Microsoft Graph v1.0 exact-category-docs

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

JSON representation
{
  "createdDateTime": "String (timestamp)",
  "description": "String",
  "displayName": "String",
  "email": "String",
  "id": "String (identifier)",
  "isArchived": "Boolean",
  "isFavoriteByDefault": "Boolean",
  "membershipType": "String",
  "webUrl": "String"
}

Relationships

Microsoft Graph v1.0 exact-category-docs

Relationships is shown from stable Microsoft Graph v1.0 metadata.

Relationship Type Description
allMembers conversationMember collection A collection of membership records associated with the channel, including both direct and indirect members of shared channels.
enabledApps teamsApp collection A collection of enabled apps in the channel.
filesFolder driveItem Metadata for the location where the channel's files are stored.
members conversationMember collection A collection of membership records associated with the channel.
messages chatMessage collection A collection of all the messages in the channel. A navigation property. Nullable.
operations teamsAsyncOperation collection The async operations that ran or are running on this team.
sharedWithTeams sharedWithChannelTeamInfo collection A collection of teams with which a channel is shared.
tabs teamsTab collection A collection of all the tabs in the channel. A navigation property.

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

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

Methods
POST /teams/{team-id}/channels
Exact Microsoft Learn PowerShell match

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

Commands
New-MgTeamChannel /teams/{team-id}/channels
Create channel
Exact Microsoft Learn PowerShell match

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

Commands
New-MgBetaTeamChannel /teams/{team-id}/channels
Create channel

Code Examples

C# / .NET SDK
Create channel
// Code snippets are only available for the latest version. Current version is 5.x

// Dependencies
using Microsoft.Graph.Models;

var requestBody = new Channel
{
	DisplayName = "Architecture Discussion",
	Description = "This channel is where we debate all future architecture plans",
	MembershipType = ChannelMembershipType.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["{team-id}"].Channels.PostAsync(requestBody);
JavaScript
Create channel
const options = {
	authProvider,
};

const client = Client.init(options);

const channel = {
  displayName: 'Architecture Discussion',
  description: 'This channel is where we debate all future architecture plans',
  membershipType: 'standard'
};

await client.api('/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels')
	.post(channel);
PowerShell
Create channel
Import-Module Microsoft.Graph.Teams

$params = @{
	displayName = "Architecture Discussion"
	description = "This channel is where we debate all future architecture plans"
	membershipType = "standard"
}

New-MgTeamChannel -TeamId $teamId -BodyParameter $params
Python
Create channel
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.channel import Channel
from msgraph.generated.models.channel_membership_type import ChannelMembershipType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Channel(
	display_name = "Architecture Discussion",
	description = "This channel is where we debate all future architecture plans",
	membership_type = ChannelMembershipType.Standard,
)

result = await graph_client.teams.by_team_id('team-id').channels.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 Channel.Create

4

Grant Admin Consent

Application permissions always require admin consent.