ChatMessage.Read
Allows an app to read one-to-one and group chat messages, on behalf of the signed-in user.
Permission Details
Read user chat messages
Allows an app to read one-to-one and group chat messages, on behalf of the signed-in user.
cdcdac3a-fd45-410d-83ef-554db620e5c7
Properties
Properties is shown from stable Microsoft Graph v1.0 metadata.
| Property | Type | Description |
|---|---|---|
attachments |
chatMessageAttachment collection |
References to attached objects like files, tabs, meetings etc. |
body |
itemBody |
Plaintext/HTML representation of the content of the chat message. Representation is specified by the contentType inside the body. The content is always in HTML if the chat message contains a chatMessageMention. |
chatId |
stringNullable |
If the message was sent in a chat, represents the identity of the chat. |
channelIdentity |
channelIdentity |
If the message was sent in a channel, represents identity of the channel. |
createdDateTime |
dateTimeOffsetNullable |
Timestamp of when the chat message was created. |
deletedDateTime |
dateTimeOffsetNullable |
Read only. Timestamp at which the chat message was deleted, or null if not deleted. |
etag |
stringNullable |
Read-only. Version number of the chat message. |
eventDetail |
eventMessageDetail |
Read-only. If present, represents details of an event that happened in a chat, a channel, or a team, for example, adding new members. For event messages, the messageType property will be set to systemEventMessage. |
from |
chatMessageFromIdentitySet |
Details of the sender of the chat message. Can only be set during migration. |
id |
String |
Read-only. Unique ID of the message. IDs are unique within a chat/channel/reply-to-message, but might be duplicated in other chats/channels/reply-to-messages. |
importance |
string |
The importance of the chat message. The possible values are: normal, high, urgent. |
lastModifiedDateTime |
dateTimeOffsetNullable |
Read only. Timestamp when the chat message is created (initial setting) or modified, including when a reaction is added or removed. |
lastEditedDateTime |
dateTimeOffsetNullable |
Read only. Timestamp when edits to the chat message were made. Triggers an "Edited" flag in the Teams UI. If no edits are made the value is null. |
locale |
string |
Locale of the chat message set by the client. Always set to en-us. |
mentions |
chatMessageMention collection |
List of entities mentioned in the chat message. Supported entities are: user, bot, team, channel, chat, and tag. |
Showing 15 of 25 properties.
JSON Representation
JSON representation is shown from stable Microsoft Graph v1.0 metadata.
{
"attachments": [
{
"@odata.type": "microsoft.graph.chatMessageAttachment"
}
],
"body": {
"@odata.type": "microsoft.graph.itemBody"
},
"channelIdentity": {
"@odata.type": "microsoft.graph.channelIdentity"
},
"chatId": "String",
"createdDateTime": "String (timestamp)",
"deletedDateTime": "String (timestamp)",
"etag": "String",
"eventDetail": {
"@odata.type": "microsoft.graph.eventMessageDetail"
},
"from": {
"@odata.type": "microsoft.graph.chatMessageFromIdentitySet"
},
"id": "String (identifier)",
"importance": "String",
"lastEditedDateTime": "String (timestamp)",
"lastModifiedDateTime": "String (timestamp)",
"locale": "String",
"mentions": [
{
"@odata.type": "microsoft.graph.chatMessageMention"
}
],
"messageHistory": [
{
"@odata.type": "microsoft.graph.chatMessageHistoryItem"
}
],
"messageType": "String",
"policyViolation": {
"@odata.type": "microsoft.graph.chatMessagePolicyViolation"
},
"reactions": [
{
"@odata.type": "microsoft.graph.chatMessageReaction"
}
],
"replyToId": "String (identifier)",
"subject": "String",
"summary": "String",
"webUrl": "String"
}
Relationships
Relationships is shown from stable Microsoft Graph v1.0 metadata.
| Relationship | Type | Description |
|---|---|---|
hostedContents |
chatMessageHostedContent collection |
Content in a message hosted by Microsoft Teams - for example, images or code snippets. |
replies |
chatMessage collection |
Replies for a specified message. Supports $expand for channel messages. |
attachments |
chatMessageAttachment collection |
References to attached objects like files, tabs, meetings etc. |
body |
itemBody |
Related body data exposed by this resource. |
importance |
chatMessageImportance |
Related importance data exposed by this resource. |
mentions |
chatMessageMention collection |
List of entities mentioned in the chat message. Supported entities are: user, bot, team, channel, chat, and tag. |
messageHistory |
chatMessageHistoryItem collection |
List of activity history of a message item, including modification time and actions, such as reactionAdded, reactionRemoved, or reaction changes, on the message. |
messageType |
chatMessageType |
Related messageType data exposed by this resource. |
reactions |
chatMessageReaction collection |
Reactions for this chat message (for example, Like). |
Graph Methods
Microsoft Graph v1.0 endpoints are not available from refreshed Microsoft Learn or Microsoft Graph OpenAPI metadata for this permission.
No API methods available for this version.
Microsoft Graph beta endpoints are not available from refreshed Microsoft Learn or Microsoft Graph OpenAPI metadata for this permission.
No API methods available for this version.
Microsoft Graph PowerShell v1.0 commands are not available from refreshed Microsoft Learn PowerShell snippets for this permission.
No deterministic PowerShell command map is available for this permission.
Browse PowerShell docsMicrosoft Graph PowerShell beta commands are not available from refreshed Microsoft Learn PowerShell snippets for this permission.
No deterministic PowerShell command map is available for this permission.
Browse PowerShell docsCode Examples
using Azure.Identity;
using Microsoft.Graph;
var scopes = new[] { "ChatMessage.Read" };
var credential = new InteractiveBrowserCredential(
new InteractiveBrowserCredentialOptions
{
ClientId = "YOUR_CLIENT_ID",
TenantId = "YOUR_TENANT_ID",
RedirectUri = new Uri("http://localhost")
});
var graphClient = new GraphServiceClient(credential, scopes);
var response = await graphClient
.WithUrl("https://graph.microsoft.com/v1.0/chatmessage")
.GetAsync();
import { Client } from "@microsoft/microsoft-graph-client";
import { InteractiveBrowserCredential } from "@azure/identity";
const credential = new InteractiveBrowserCredential({
clientId: "YOUR_CLIENT_ID",
tenantId: "YOUR_TENANT_ID",
redirectUri: "http://localhost"
});
const token = await credential.getToken(["ChatMessage.Read"]);
const client = Client.init({
authProvider: (done) => done(null, token.token)
});
const response = await client.api("/chatmessage").get();
Connect-MgGraph -Scopes "ChatMessage.Read"
Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/v1.0/chatmessage"
from azure.identity import InteractiveBrowserCredential
import requests
credential = InteractiveBrowserCredential(
client_id="YOUR_CLIENT_ID",
tenant_id="YOUR_TENANT_ID"
)
token = credential.get_token("ChatMessage.Read")
response = requests.get(
"https://graph.microsoft.com/v1.0/chatmessage",
headers={"Authorization": f"Bearer {token.token}"}
)
print(response.json())
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 Delegated permissions and search for ChatMessage.Read
Grant Admin Consent
Users can consent to this permission during sign-in.