Forum Discussion

nikhilkunta's avatar
nikhilkunta
Copper Contributor
Apr 15, 2025

Pin a message in a channel in MS Teams using MS Graph API

I've created a MS Teams app and as part of it's functionality, it has to pin the message (in both one-on-one chat and in a channel) on behalf of the user

I'm using below API to pin a message in a channel in MS Teams

https://graph.microsoft.com/v1.0/chats/19:....@thread.tacv2/pinnedMessages

Endpoint: - POST https://graph.microsoft.com/v1.0/chats/19:....@thread.tacv2/pinnedMessages

Body: 

{

"email address removed for privacy reasons": "https://graph.microsoft.com/v1.0/chats/https://graph.microsoft.com/v1.0/chats/19:....@thread.tacv2/pinnedMessages/messages/<message_id>"

}

Note: - https://graph.microsoft.com/v1.0/chats/19:....@thread.tacv2/pinnedMessages is the chatID of the channel


And I get a successful response as below 

201 Created

{

"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#chats('19%3.......%40thread.tacv2')/pinnedMessages/$entity",

"id": "<message_id>"

}

But when I go that particular channel, I don't see the message as the pinned message in the channel

But when I try to get the list of pinned message in a channel using below API, it gives the response that the above message which I pinned. But I don't see it in the channel in MS Teams.

And I'm facing this issue only while pinning the message in the channel using MS Graph API. I don't face the same issue with one-on-one chat with the bot I've created.

1 Reply

  • nikhilkunta's avatar
    nikhilkunta
    Copper Contributor

    There is a typo in the request body above. Below is the request body.

    Body: 

    {

    "message @odata.bind"

    : "https://graph.microsoft.com/v1.0/chats/19:....@thread.tacv2/messages/<message_id>"

    }

Resources