Skip to content
POST/{organizationId}/{mandateId}/crm/conversations/{conversationId}/messages/list

List conversation messages

Returns a list of messages for a given conversation

Required permissions:

  • mandate.read

  • conversation.read

Path Parameters

organizationIdstringrequired
mandateIdstringrequired
conversationIdstringrequired

Request Body required

Content-Type: application/json

limitintegeroptional

Default: 50

minimum: 0

maximum: 100

offsetintegeroptional

Default: 0

minimum: 0

maximum: 9007199254740991

returnCountbooleanoptional

Default: false

markAsReadbooleanoptional

Default: true

Authentication: X-API-Key

Request

POST/{organizationId}/{mandateId}/crm/conversations/{conversationId}/messages/list
curl --request POST 'https://cloud.campai.com/api/{organizationId}/{mandateId}/crm/conversations/{conversationId}/messages/list' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "sort": {},
  "limit": 50,
  "offset": 0
}'

Responses

This endpoint returns different response codes based on the request outcome.

200Successful response

Content-Type: application/json

countintegerrequired

minimum: 0

maximum: 9007199254740991

Additional properties are not allowed.

Response

200
{
  "count": 0,
  "messages": [
    {
      "_id": "000000000000000000000001",
      "conversation": "000000000000000000000001",
      "messageId": "string",
      "date": "2026-06-15T22:30:00Z",
      "author": {
        "actor": {
          "name": "string",
          "type": "user",
          "userId": "string",
          "image": {
            "resource": "string"
          }
        },
        "email": "string",
        "type": "cc"
      },
      "type": "incoming",
      "contentType": "note",
      "noteText": "string",
      "failedReason": "string",
      "bodyHtml": {
        "resource": "string"
      },
      "strippedBodyHtml": {
        "resource": "string"
      },
      "bodyText": "string",
      "strippedBodyText": "string",
      "attachmentIgnored": true,
      "attachments": [
        {
          "resource": "string",
          "id": "string"
        }
      ]
    }
  ],
  "conversation": {
    "_id": "000000000000000000000001",
    "recipients": [
      {
        "actor": {
          "name": "string",
          "type": "contact",
          "nameNormalized": "string",
          "nameSort": "string",
          "contact": "000000000000000000000001",
          "image": {
            "resource": "string"
          },
          "user": {
            "name": "string",
            "type": "user",
            "userId": "string",
            "image": {
              "resource": "string"
            }
          }
        },
        "email": "string",
        "type": "cc"
      }
    ],
    "subject": "string",
    "read": true,
    "lastMessageAt": "2026-06-15T22:30:00Z",
    "folder": "000000000000000000000001",
    "mailbox": "inbox"
  }
}

400Invalid input data

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

400
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}

401Authorization not provided

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

401
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}

403Insufficient access

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

403
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}

500Internal server error

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

500
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}