# Message interactions

You can list message interactions on a specific message using the following endpoint. In order to get a Google RCS message, you must have an active Google RCS channel and perform a HTTP request with a [valid access key](https://docs.bird.com/api/api-access/api-authorization).

## List message interactions

> List message interactions

```json
{"openapi":"3.0.3","info":{"title":"Channels","version":"v1"},"servers":[{"url":"https://api.bird.com","description":"Production API"}],"security":[{"accessKey":[]}],"components":{"securitySchemes":{"accessKey":{"description":"Uses the Authorization header: 'AccessKey ' followed by your access key token (e.g., 'Authorization: AccessKey AbCdEfGhIjKlMnOpQrStUvWxYzAbCdEfGhIj')","scheme":"AccessKey","type":"http"}},"schemas":{"MessageInteractionsList":{"type":"object","title":"ChannelMessageInteractionsList","description":"A list of channel messages interactions","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/MessageInteraction"}}}},"MessageInteraction":{"type":"object","title":"ChannelMessageInteraction","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"messageId":{"type":"string","format":"uuid"},"channelId":{"type":"string","format":"uuid"},"platformId":{"type":"string"},"messagePartId":{"nullable":true,"type":"string","format":"uuid","deprecated":true},"type":{"type":"string","enum":["clicked","delete-request","invalid","opened","read","reported-as-spam","unsubscribe-request","reaction","conversion","subscribe-request","subscribe-consent"]},"messageReference":{"type":"string"},"messagePartsCount":{"type":"number"},"messageTags":{"nullable":true,"type":"array","items":{"type":"string"}},"receiver":{"oneOf":[{"$ref":"#/components/schemas/Connector"},{"$ref":"#/components/schemas/Contacts"}]},"createdAt":{"type":"string","format":"date-time"},"details":{"type":"string"},"context":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}}}},"metadata":{"description":"Metadata is a free-form object that can be used to store any additional information such as platform specific information\n","type":"object","additionalProperties":true,"properties":{"link":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}}},"button":{"properties":{"payload":{"type":"string"}}},"reaction":{"type":"object","properties":{"emoji":{"type":"string"},"action":{"type":"string"}}},"conversion":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"},"status":{"type":"string"},"method":{"type":"string"},"timestamp":{"type":"string","format":"date-time"}}},"prefetched":{"type":"boolean"}}}}},"Connector":{"type":"object","title":"ChannelConnector","additionalProperties":false,"properties":{"connector":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"identifierValue":{"type":"string"},"annotations":{"$ref":"#/components/schemas/MessageAnnotations"},"types":{"type":"array","items":{"type":"string"}}},"required":["id"]}},"required":["connector"]},"MessageAnnotations":{"type":"object","title":"MessageAnnotations","description":"Annotations are used to add additional information to a message.\nFor email messages, it can be used to specify a custom sender name.\n","additionalProperties":false,"properties":{"name":{"type":"string"}}},"Contacts":{"type":"object","title":"ChannelContacts","additionalProperties":false,"properties":{"contacts":{"type":"array","minLength":1,"items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"identifierKey":{"type":"string"},"identifierValue":{"type":"string"},"type":{"type":"string"},"countryCode":{"type":"string"},"identifiers":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"identifierKey":{"type":"string"},"identifierValue":{"type":"string"}}}},"platformAddress":{"type":"string"},"platformAddressSelector":{"type":"string","nullable":true},"annotations":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string"}}}}}}},"required":["contacts"]},"RequestError":{"type":"object","properties":{"code":{"type":"string","description":"A unique code that identifies the error. This code can be used to programmatically identify the error.\n"},"message":{"type":"string","description":"A human-readable message that describes the error. An example is 'The requested resource does not exist: channel not found'.\n"}},"required":["code","message"]}},"responses":{"requestError":{"description":"The request did not pass validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestError"}}}}}},"paths":{"/workspaces/{workspaceId}/channels/{channelId}/messages/{messageId}/interactions":{"get":{"summary":"List message interactions","operationId":"listChannelMessageInteractions","description":"List message interactions","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageInteractionsList"}}}},"404":{"$ref":"#/components/responses/requestError"}}}}}}
```

Google RCS supports the following [message interactions](https://docs.bird.com/api/message-status-and-interactions#message-interactions):&#x20;

| Interaction | Description                             |
| ----------- | --------------------------------------- |
| Read        | A user has read a message               |
| Clicked     | A user has clicked a quick reply button |

Additional information about the interactions can be found in the `details` field and `metadata.button` object as follows:

<table><thead><tr><th>Interaction</th><th width="141">details</th><th width="177">metadata.button.</th><th>Description</th></tr></thead><tbody><tr><td>Clicked (Suggestions)</td><td>item_<strong>N</strong>_clicked</td><td><ul><li>payload - user supplied payload sent in action button</li></ul></td><td>Recipient clicked a suggestion. <br><br><strong>N =</strong> the position of the item in the actions array of the associated message</td></tr><tr><td>Clicked (Card Actions)</td><td>card_<strong>N1</strong>_item_item_<strong>N2</strong>_clicked</td><td>payload - user supplied payload sent in action button</td><td><p>Recipient clicked a card action.</p><p></p><p><strong>N1</strong> <strong>=</strong> the position of the card e.g. 1st card in a carousel <br><br><strong>N2 =</strong> the position of the action on the card e.g. the second button on a specific card</p></td></tr></tbody></table>

## Examples

### Read interaction

```json
{
  "id": "de476f9b-5966-11ef-90fc-0a58a9feac01",
  "type": "read",
  "createdAt": "2024-08-13T11:26:21.19271Z",
  "messageId": "2e22e26a-c876-4ea1-9e87-8ace0eb5dfc1",
  "channelId": "cc79a83e-ae28-4d20-9576-cd6ef76641a1",
  "platformId": "rcs-google",
  "messageReference": "7af126ba-8861-4d38-84b8-a613f982b9a9",
  "messagePartsCount": 1,
  "receiver": {
    "contacts": [
      {
        "id": "46623801-a627-4a3f-9523-363c501d459d",
        "identifierKey": "phonenumber",
        "identifierValue": "+447123456789",
        "receiverValue": "+447123456789",
        "type": "to",
        "countryCode": "GB"
      }
    ]
  }
}
```

### Clicked interaction

```json
{
  "id": "dee91f17-5966-11ef-8508-0a58a9feac01",
  "type": "clicked",
  "createdAt": "2024-08-13T11:26:22.035459Z",
  "messageId": "2e22e26a-c876-4ea1-9e87-8ace0eb5dfc1",
  "channelId": "cc79a83e-ae28-4d20-9576-cd6ef76641a1",
  "platformId": "rcs-google",
  "messageReference": "7af126ba-8861-4d38-84b8-a613f982b9a9",
  "messagePartsCount": 1,
  "receiver": {
    "contacts": [
      {
        "id": "46623801-a627-4a3f-9523-363c501d459d",
        "identifierKey": "phonenumber",
        "identifierValue": "+447123456789",
        "receiverValue": "+447123456789",
        "type": "to",
        "countryCode": "GB"
      }
    ]
  },
  "details": "card_0_item_1_clicked",
  "metadata": {
    "button": {
      "payload": "website"
    }
  }
}
```
