Chat.Create
Allows the app to create chats without a signed-in user.
Permission Details
Create chats
Allows the app to create chats without a signed-in user.
d9c48af6-9ad9-47ad-82c3-63757137b9af
Create chats
Allows the app to create chats on behalf of the signed-in user.
38826093-1258-4dea-98f0-00003be2b8d0
Properties
Properties is shown from stable Microsoft Graph v1.0 metadata.
| Property | Type | Description |
|---|---|---|
chatType |
chatType |
Specifies the type of chat. The possible values are: group, oneOnOne, meeting, unknownFutureValue. |
createdDateTime |
dateTimeOffsetNullable |
Date and time at which the chat was created. Read-only. |
id |
String |
The chat's unique identifier. Read-only. |
isHiddenForAllMembers |
BooleanNullable |
Indicates whether the chat is hidden for all its members. Read-only. |
lastUpdatedDateTime |
dateTimeOffsetNullable |
Date and time at which the chat was renamed or the list of members was last changed. Read-only. |
onlineMeetingInfo |
teamworkOnlineMeetingInfo |
Represents details about an online meeting. If the chat isn't associated with an online meeting, the property is empty. Read-only. |
tenantId |
StringNullable |
The identifier of the tenant in which the chat was created. Read-only. |
topic |
StringNullable |
(Optional) Subject or topic for the chat. Only available for group chats. |
viewpoint |
chatViewpoint |
Represents caller-specific information about the chat, such as the last message read date and time. This property is populated only when the request is made in a delegated context. |
webUrl |
StringNullable |
The URL for the chat in Microsoft Teams. The URL should be treated as an opaque blob, and not parsed. Read-only. |
installedApps |
teamsAppInstallation collection |
A collection of all the apps in the chat. Nullable. |
lastMessagePreview |
object |
Preview of the last message sent in the chat. Null if no messages were sent in the chat. Currently, only the list chats operation supports this property. |
members |
conversationMember collection |
A collection of all the members in the chat. Nullable. |
messages |
chatMessage collection |
A collection of all the messages in the chat. Nullable. |
permissionGrants |
resourceSpecificPermissionGrant collection |
A collection of permissions granted to apps for the chat. |
Showing 15 of 17 properties.
JSON Representation
JSON representation is shown from stable Microsoft Graph v1.0 metadata.
{
"createdDateTime": "dateTimeOffset",
"chatType": "string",
"id": "string (identifier)",
"isHiddenForAllMembers": "Boolean",
"lastUpdatedDateTime": "dateTimeOffset",
"onlineMeetingInfo": {
"@odata.type": "microsoft.graph.teamworkOnlineMeetingInfo"
},
"tenantId": "string",
"topic": "string",
"viewpoint": {
"@odata.type": "microsoft.graph.chatViewpoint"
},
"webUrl": "string",
}
Relationships
Relationships is shown from stable Microsoft Graph v1.0 metadata.
| Relationship | Type | Description |
|---|---|---|
installedApps |
teamsAppInstallation collection |
A collection of all the apps in the chat. Nullable. |
lastMessagePreview |
chatMessageInfo |
Preview of the last message sent in the chat. Null if no messages were sent in the chat. Currently, only the list chats operation supports this property. |
members |
conversationMember collection |
A collection of all the members in the chat. Nullable. |
messages |
chatMessage collection |
A collection of all the messages in the chat. Nullable. |
permissionGrants |
resourceSpecificPermissionGrant collection |
A collection of permissions granted to apps for the chat. |
pinnedMessages |
pinnedChatMessageInfo collection |
A collection of all the pinned messages in the chat. Nullable. |
tabs |
teamsTab collection |
A collection of all the tabs in the chat. Nullable. |
chatType |
chatType |
Related chatType data exposed by this resource. |
operations |
teamsAsyncOperation collection |
A collection of all the Teams async operations that ran or are running on the chat. Nullable. |
Graph Methods
Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
| Methods |
|---|
POST
/chats
|
Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
| Methods |
|---|
POST
/chats
|
Code Examples
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Chat
{
ChatType = ChatType.OneOnOne,
Members = new List<ConversationMember>
{
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')"
},
},
},
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('82af01c5-f7cc-4a2e-a728-3a5df21afd9d')"
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Chats.PostAsync(requestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const chat = {
chatType: 'oneOnOne',
members: [
{
'@odata.type': '#microsoft.graph.aadUserConversationMember',
roles: ['owner'],
'[email protected]': 'https://graph.microsoft.com/v1.0/users(\'8b081ef6-4792-4def-b2c9-c363a1bf41d5\')'
},
{
'@odata.type': '#microsoft.graph.aadUserConversationMember',
roles: ['owner'],
'[email protected]': 'https://graph.microsoft.com/v1.0/users(\'82af01c5-f7cc-4a2e-a728-3a5df21afd9d\')'
}
]
};
await client.api('/chats')
.post(chat);
Import-Module Microsoft.Graph.Teams
$params = @{
chatType = "oneOnOne"
members = @(
@{
"@odata.type" = "#microsoft.graph.aadUserConversationMember"
roles = @(
"owner"
)
"[email protected]" = "https://graph.microsoft.com/v1.0/users('8b081ef6-4792-4def-b2c9-c363a1bf41d5')"
}
@{
"@odata.type" = "#microsoft.graph.aadUserConversationMember"
roles = @(
"owner"
)
"[email protected]" = "https://graph.microsoft.com/v1.0/users('82af01c5-f7cc-4a2e-a728-3a5df21afd9d')"
}
)
}
New-MgChat -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.chat import Chat
from msgraph.generated.models.chat_type import ChatType
from msgraph.generated.models.conversation_member import ConversationMember
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 = Chat(
chat_type = ChatType.OneOnOne,
members = [
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')",
}
),
AadUserConversationMember(
odata_type = "#microsoft.graph.aadUserConversationMember",
roles = [
"owner",
],
additional_data = {
"user@odata_bind" : "https://graph.microsoft.com/v1.0/users('82af01c5-f7cc-4a2e-a728-3a5df21afd9d')",
}
),
],
)
result = await graph_client.chats.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 Chat.Create
Grant Admin Consent
Application permissions always require admin consent.