---
title: "Message"
slug: "message-schema"
updated: 2025-09-03T04:28:55Z
published: 2025-09-03T04:28:55Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://developer.rocket.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Message

The message object is the heart of a conversation. It encapsulates all the information needed in order to represent a single entry on a message list.

## Properties

The message object contains the following fields:

| Parameter | Data type | Description |
| --- | --- | --- |
| `_id` | String | The unique identifier for the message. |
| `rid` | String | The unique ID for the room. This will identify the room that the message belongs to. Example: '`GENERAL`' |
| `msg` | String | The content of the message. |
| `tmid` | String | The ID of the thread to which the message belongs. |
| `tshow` | Boolean | Indicates whether the thread should be shown. |
| `ts` | Date | A timestamp of when the message was created. (The date of creation on client) |
| `mentions` | Array of objects | An array of user mentions within the message. Identifies (`type`:"type of the mention; either user or tea", `_id`: ID of the user that is mentioned, `username`: username of the user that is mentioned", `name`: name of the user that is mentioned). |
| `groupable` | Boolean | Boolean that states whether or not this message should be grouped together with other messages from the same user. |
| `channels` | Array of objects | An array of channels to which the message belongs. |
| `u` | Object | The user who sent the message (either the _id or username or name). |
| `blocks` | MessageSurfaceLayout (enum) | If it is a UIkit message, then the UIkit blocks components. |
| `alias` | String | An alias for the message sender. |
| `md` | Array of object | The message's content in a markdown format. |
| `_hidden` | Boolean | Indicates whether the message is hidden. |
| `imported` | Boolean | Indicates whether the message is imported. |
| `replies` | Array of strings | An array of user IDs representing the message replies. |
| `location` | Object | The geographic location associated with the message. |
| `starred` | Array of objects | A list of users that have the message starred (list of user IDs` (_id) |
| `pinned` | Boolean | Indicates whether the message is pinned. |
| `pinnedAt` | Date | The date and time when the message was pinned. |
| `pinnedBy` | Object | Information about the user who pinned the message. |
| `unread` | Boolean | Indicates whether the message is unread. |
| `temp` | Boolean | Indicates whether the message is temporary. |
| `drid` | String | The direct room ID (if belongs to a direct room). |
| `tlm` | Date | The date and time when the last thread message was sent. |
| `dcount` | Number | The count of messages deleted in the thread. |
| `tcount` | Number | The count of messages in the thread. |
| `t` | MessageTypesValues (enum) | The [message type](/v1/docs/message#message-type). |
| `e2e` | `pending` or `done` (enum) | The end-to-end encryption status of the message. |
| `otrAck` | String | The acknowledgment status of an off-the-record message. |
| `urls` | Array of objects | An array of URLs contained within the message. |
| `actionLinks` | Array of objects (deprecated) | An array of action links associated with the message. |
| `file` | FileProp (deprecated) | The file property associated with the message. |
| `fileUpload` | Object | Information about a file upload associated with the message. |
| `files` | Array of FileProp objects | An array of file properties associated with the message. |
| `attachments` | Array of MessageAttachment objects | An array of [attachment objects](/apidocs/post-message), available only when the message has at least one attachment. |
| `reactions` | Object | Object containing reaction information associated with the message. |
| `private` | Boolean | Indicates whether the message is private. |
| `bot` | Boolean (deprecated) | Indicates whether the message is sent by a bot. |
| `sentByEmail` | Boolean | Indicates whether the message was sent by email. |
| `webRtcCallEndTs` | Date | The date and time when a WebRTC call ended. |
| `role` | String | The role associated with the message. |
| `avatar` | String | A url to an image, that is accessible to anyone, to display as the avatar instead of the message user's account avatar |
| `emoji` | String | The emoji associated with the user who sent the message. |
| `tokens` | Array of Token objects | An array of tokens extracted from the message content. |
| `html` | String | The HTML representation of the message. |
| `token` | String (deprecated) | A deprecated field used for messages sent by visitors. |
| `federation` | Object | Information about federation associated with the message. |
| `slaData` | Object (used for specific message types) | Additional data related to SLA (Service Level Agreements) change history messages. |
| `priorityData` | Object (used for specific message types) | Additional data related to priority change history messages. |

> - The user presented on `u` and `editedBy` fields are a simplified version of the user information: (`_id`: The user id, `username`: The username, *name*: The name)
> - The URL metadata contains several informational fields: (`url`: The URL itself (just as it appears on the message), `meta`: URL metadata (varies accord to the URL), `headers`: Some HTTP headers (varies accord to the URL), `parsedUrl`: The parsed URL broken into its parts)

## Message type

Some of the message types are listed below. A full list of the message-type property can be found here:

[Rocket.Chat/MessageTypes.ts at 957c69d7ebdcf4dca02e7753bfd75086be11ca44 · RocketChat/Rocket.Chat](https://github.com/RocketChat/Rocket.Chat/blob/957c69d7ebdcf4dca02e7753bfd75086be11ca44/apps/meteor/app/lib/lib/MessageTypes.ts#L315)

| Type | Description |
| --- | --- |
| `r` | Room name changed. |
| `au` | User added by. |
| `ru` | User removed by. |
| `ul` | User left. |
| `ult` | User left team. |
| `uj` | User joined channel. |
| `ujt` | User joined team. |
| `ut` | User joined conversation. |
| `rm` | Message removed. |
| `added-user-to-team` | Added user to team. |
| `removed-user-from-team` | Removed user from team. |
| `user-muted` | User muted by. |

### Attachment object

[The attachment object is fully described here](/apidocs/post-message)

```json
{
    "messages": [
        {
            "_id": "message-id",
            "rid": "room-id",
            "msg": "Hello World!",
            "ts": { "$date": 1480377601 },
            "u": {
                "_id": "user-id",
                "username": "username"
            },
            "_updatedAt": { "$date": 1480377601 }
        },
        {
            "_id": "message-id",
            "rid": "room-id",
            "msg": "Hello!",
            "ts": { "$date": 1480377601 },
            "u": {
                "_id": "user-id",
                "username": "username"
            },
            "_updatedAt": { "$date":1480377601 },
            "editedAt": { "$date": 1480377601 },
            "editedBy": {
                "_id": "user-id",
                "username": "username"
            }
        }
    ]
}
```

## Message object example

Messages are stored in the `rocketchat_message` collection on MongoDB.

The `IMessage` interface represents the structure of a message object in the Rocket.Chat It defines the properties and their types that can be associated with a message sent. You can check the `IMessage `interface here.

[Rocket.Chat/IMessage.ts at develop · RocketChat/Rocket.Chat](https://github.com/RocketChat/Rocket.Chat/blob/develop/packages/core-typings/src/IMessage/IMessage.ts)

**Example object**

```json
{
  "_id": "8gMsLe9ApZjo2D2iB",
  "rid": "EhpNtqqrMXT4QWk3z",
  "msg": "This meesage is from Rocket.Chat.",
  "ts": {
    "$date": "2023-02-09T13:35:59.484Z"
  },
  "u": {
    "_id": "rYhzFRd2QZjNwAAXX",
    "username": "rodriq",
    "name": "Rodriq"
  },
  "_updatedAt": {
    "$date": "2023-02-09T13:40:47.334Z"
  },
  "urls": [],
  "mentions": [],
  "channels": [],
  "md": [
    {
      "type": "PARAGRAPH",
      "value": [
        {
          "type": "PLAIN_TEXT",
          "value": "This meesage is from "
        },
        {
          "type": "LINK",
          "value": {
            "src": {
              "type": "PLAIN_TEXT",
              "value": "//Rocket.Chat."
            },
            "label": {
              "type": "PLAIN_TEXT",
              "value": "Rocket.Chat."
            }
          }
        }
      ]
    }
  ],
  "editedAt": {
    "$date": "2023-02-09T13:40:47.303Z"
  },
  "editedBy": {
    "_id": "rYhzFRd2QZjNwAAXX",
    "username": "rodriq"
  }
}
```
