List posts

Get the posts of the specified thread. You can specify both the parent conversation and the thread, or, you can specify the thread without referencing the parent conversation.


One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

Permission type Permissions (from least to most privileged)
Delegated (work or school account) Group.ReadWrite.All, Group.Read.All
Delegated (personal Microsoft account) Not supported.
Application Group.ReadWrite.All, Group.Read.All

HTTP request

GET /groups/{id}/threads/{id}/posts
GET /groups/{id}/conversations/{id}/threads/{id}/posts

Optional query parameters

This method supports the OData Query Parameters to help customize the response.

Request headers

Header Value
Authorization Bearer {token}. Required.

Request body

Do not supply a request body for this method.


If successful, this method returns a 200 OK response code and collection of Post objects in the response body.



Here is an example of the request.


Here is an example of the response. Note: The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call.

HTTP/1.1 200 OK
Content-type: application/json
Content-length: 523

  "value": [
      "body": {
        "contentType": "",
        "content": "content-value"
      "receivedDateTime": "datetime-value",
      "hasAttachments": true,
      "from": {
        "emailAddress": {
          "name": "name-value",
          "address": "address-value"
      "sender": {
        "emailAddress": {
          "name": "name-value",
          "address": "address-value"
      "conversationThreadId": "conversationThreadId-value"

SDK sample code

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var posts = await graphClient.Groups["{id}"].Threads["{id}"].Posts

Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.