--- title: "Message" slug: "message-schema" updated: 2025-09-03T04:28:55Z published: 2025-09-03T04:28:55Z canonical: "developer.rocket.chat/message-schema" --- > ## 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"  } } ```