---
title: "Room"
slug: "room-schema"
updated: 2025-09-02T13:26:58Z
published: 2025-09-02T13:26:58Z
---

> ## 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.

# Room

A room in Rocket.Chat is where conversations take place. The room object represents the details of rooms created in a workspace.

There are at least two fields on the room object.

- `_id`: The room/user ID (depends on the room type).
- `t`: The room type. See the table below for details.

## Properties

The `Room` object has the following fields:

| Field | Data type | Description |
| --- | --- | --- |
| `_id` | String | The room ID. |
| `t` | String | The room type. E.g `c` = channel, `d` = direct message, `l` = livechat, `p`=private chat |
| `name` | String | The room’s name. |
| `fname` | String | The full name of the room. |
| `msgs` | Number | The number of messages in the room. |
| `default` | Boolean | Indicates if the room is the default room. |
| `broadcast` | Boolean | Indicates if the room is a broadcast room. |
| `featured` | Boolean | Indicates if the room is featured. |
| `announcement` | String | The announcement or summary of the room. |
| `joinCodeRequired` | Boolean | Indicates if a join code is required to enter the room. |
| `announcementDetails` | String | Additional details about the room announcement, such as the style. |
| `encrypted` | Boolean | Indicates if the room is encrypted. |
| `topic` | String | The topic of the room. |
| `reactWhenReadOnly` | Boolean | Indicates if reactions are allowed when the room is read-only. |
| `sysMes` | MessageTypesValues[] \| Boolean | Indicates whether system messages are enabled or an array of allowed system message types. |
| `u` | String | Information about the user who created the room (`_id`: string, `username`: string, `name`: string). |
| `uids` | Array of string | Array of user IDs in the room. |
| `lastMessage` | Object | The last message sent in the room. |
| `lm` | Date | Timestamp of the last message. |
| `usersCount` | Number | The number of users in the room. |
| `callStatus` | CallStatus | The status of a call in the room. |
| `webRtcCallStartTime` | Date | The start time of a WebRTC call in the room. |
| `servedBy` | String | Information about the user who served the room (`_id`: string). |
| `streamingOptions` | String | Options for streaming content in the room (`id`?: string, `type`?: string, `url`?: string, `thumbnail`?: string, `isAudioOnly`?: boolean, `message`?: string). |
| `prid` | String | The primary room ID (for threads). |
| `avatarETag` | String | The ETag for the room avatar. |
| `teamMain` | Boolean | Indicates if the room is the main room for a team. |
| `teamId` | String | The ID of the team the room belongs to. |
| `teamDefault` | Boolean | Indicates if the room is the default room for the team. |
| `open` | Boolean | Indicates if the room is open. |
| `autoTranslateLanguage` | String | The language used for automatic translation in the room. |
| `autoTranslate` | Boolean | Indicates if automatic translation is enabled for the room. |
| `unread` | Number | The number of unread messages in the room. |
| `alert` | Boolean | Indicates if there is an alert in the room. |
| `hideUnreadStatus` | Boolean | Indicates if the unread status is hidden. |
| `hideMentionStatus` | Boolean | Indicates if the mention status is hidden. |
| `muted` | Array of string | An array of user IDs who are muted in the room. |
| `unmuted` | Array of string | An array of user IDs who are not muted in the room. |
| `usernames` | Array of string | An array of usernames in the room. |
| `ts` | Date | Timestamp of when the room was created. |
| `cl` | Boolean | Indicates if the room is a channel. |
| `ro` | Boolean | Indicates if the room is read-only. |
| `favorite` | Boolean | Indicates if the room is marked as a favorite. |
| `archived` | Boolean | Indicates if the room is archived. |
| `description` | String | Description or summary of the room. |
| `createdOTR` | Boolean | Indicates if the room was created as an OTR (off-the-record) room. |
| `e2eKeyId` | String | Key ID for end-to-end encryption in the room. |
| `federated` | Boolean | (Deprecated) Indicates if the room is federated. |
| `customFields` | Object | (Deprecated) Custom fields for additional room information. |
| `channel` | { _id: string } | Information about the channel the room belongs to. |

## Room types

- `d`: Direct messages
- `c`: Public channel
- `p`: Private channel
- `discussions`: Team or channel discussions
- `teams`: Workspace teams
- `l`: Livechat
- `v`: Omnichannel VoIP rooms

The information that comes with the room object changes according to its type.

Direct chatPublic chat roomPrivate chat room

A DM room object contains two fields:

- `_id`: The room ID.
- `t`: The room type (in this case, the value is `d`)

For example:

```json
{
    "_id": "room-id",
    "t": "d"
}
```

A public chat room contains information about the room, as follows:

- `_id`: The room ID.
- `t`: The room type (in this case, the value is `c`).
- `name`: The room name.
- `u`: The room creator (it may return a null user).
- `topic`: (Optional) The room topic.
- `muted`: (Optional) A collection of muted users by their username.
- `jitsiTimeout`: (Optional) If the Jitsi app is used in your workspace, this parameter may be present.

For example:

```json
{
    "_id": "room-id",
    "t": "c",
    "name": "room-name",
    "u": { "_id": "user-id", "username": "username" },
    "topic": "room-topic",
    "muted": [ "username" ],
    "jitsiTimeout": { "$date": 1480377601 }
}
```

This type of room resembles a public chat room:

- `_id`: The room ID.
- `t`: The room type (in this case, the value is `p`).
- `name`: The room name.
- `u`: The room creator (it may return a null user).
- `topic`: (Optional) The room topic.
- `muted`: (Optional) A collection of muted users by their username.
- `jitsiTimeout`: (Optional) If the Jitsi app is used in your workspace, this parameter may be present.
- `ro`: Flags if the room is read-only.

For example:

```json
{
    "_id": "room-id",
    "t": "p",
    "name": "room-name",
    "u": { "_id": null, "username": null },
    "topic": "room-topic",
    "ro": false // This room is not read-only
}
```

The **IRoom**interface represents the **Room**object, defining the properties and their types that can be associated with a Room. Room information is stored in the `rocketchat_room `collection on MongoDB.

See the IRoom interface here.

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

## Room object example

**Example object**
