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: May 21, 2026 at 4:34 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.
layoutType channelLayoutType The layout type of the channel. It can be set during creation and updated later. The possible values are: post, chat, unknownFutureValue. The default value is post. Channels with the post layout use a traditional post‑reply conversation format, and channels with the chat layout provide a chat‑like threading experience similar to group chats.
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.
migrationMode migrationMode Indicates whether a channel is in migration mode. This value is null for channels that never entered migration mode. The possible values are: inProgress, completed, unknownFutureValue.
originalCreatedDateTime dateTimeOffsetNullable Timestamp of the original creation time for the channel. The value is null if the channel never entered migration mode.
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.

Showing 15 of 22 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",
  "layoutType": "String",
  "membershipType": "String",
  "migrationMode": "String",
  "originalCreatedDateTime": "String (timestamp)",
  "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.