---
title: "Save Room Settings"
slug: "save-room-settings"
updated: 2026-06-08T12:46:40Z
published: 2026-06-08T12:46:40Z
stale: true
---

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

# Save Room Settings

Post/api/v1/rooms.saveRoomSettings

Updates the settings of an existing room.

For ABAC-managed rooms, the following guardrails apply:

- Changing `roomAnnouncement`, `roomTopic`, or `roomDescription` is rejected with `error-action-not-allowed`.
- Setting `default: true` on an ABAC-managed room is rejected with `error-action-not-allowed`.
- Changing `roomType` from `p` to `c` is rejected with `error-action-not-allowed`. The same guard applies to private rooms in ABAC-managed private teams.
- When `roomType` changes to `c` (public) and conversion is allowed, existing room ABAC attributes are cleared as part of the conversion.

Permission required: `edit-room`

### Changelog

| Version | Description |
| --- | --- |
| 8.5.0 | Added ABAC guardrails: announcement, topic, description, default flag, and conversion to public are blocked on ABAC-managed rooms. |
| 3.13.0 | Added |

Header parametersX-Auth-TokenstringRequired

The `authToken` of the authenticated user.

ExampleRScctEHSmLGZGywfIhWyRpyofhKOiMoUIpimhvheU3f
X-User-IdstringRequired

The `userId` of the authenticated user.

ExamplerbAXPnMktTFbNpwtJ

Body parameters<select class='api-response-data' aria-label='Media type'><option value='36c46ce6-9c93-417d-b5dc-8c11172fed2b'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='8e2dede8-63e2-483e-afa8-42290ac3fd4d'>Example</option>
</select>Example

```json
{
  "rid": "JZ8Y2dLfYhsg323Rf",
  "roomName": "Test-Save-Room",
  "roomDescription": "This is a test room."
}
```

Expand Allobject  ridstring    Required

The room ID.

roomNamestring    

The name of the room.

roomDescriptionstring    

The description of the room.

roomAvatarstring    

The base64 image.

featuredboolean    

Whether the room is featured or not.

roomTopicstring    

The topic of the room.

roomAnnouncementstring    

The announcement of the room.

roomCustomFieldsobject  

An object of the custom fields of the room.

roomTypestring    

The type of the room. It could be `c` for public rooms or `p` for private rooms.

readOnlyboolean    

Whether the room is read-only or not.

reactWhenReadOnlyboolean    

Whether users can react when the room is read-only.

systemMessages Array of string   

The system messages that the room supports.

string    
defaultboolean    

Whether the room is the default room or not.

joinCodestring    

The join code of the room.

streamingOptionsobject  

The streaming options of the room.

retentionEnabledboolean    

Whether retention is enabled for the room or not.

retentionMaxAgestring    

The maximum age (in days) of messages to be retained in the room.

retentionExcludePinnedboolean    

Whether to exclude pinned messages from retention or not.

retentionFilesOnlyboolean    

Whether to retain only files in the room or not.

retentionIgnoreThreadsboolean    

Whether to ignore threads when retaining messages or not.

retentionOverrideGlobalboolean    

Whether to override the global retention settings for the room or not.

encryptedboolean    

Whether the room is encrypted or not.

favoriteobject  

The favorite settings of the room. Whether the room is marked as favorite and whether it is set as the default room.

sidepanelobject  

List the team's channels or discussions to be displayed in the sidepanel.

items Array of string   

The options are `discussions` and `channels`.

string    Example["discussions", "channels"]

Responses200

OK

<select class='api-response-data' aria-label='Media type'><option value='cdb758b0-92e0-4437-9f2c-38de2c544cca'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='dc719b80-ce59-4546-8518-d242cda28dbd'>Success</option>
</select>Success

```json
{
  "rid": "JZ8Y2dLfYhsg323Rf",
  "success": true
}
```

object  ridstring    
successboolean    

400

Bad Request

<select class='api-response-data' aria-label='Media type'><option value='415141c3-5f9d-4cd4-944d-986bff183832'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='01bc994a-1eca-4b1e-b6e4-6c11566c87e8'>Invalid room</option>
<option value='88c50bf6-ce9c-468f-885c-2b3954caf0ea'>ABAC-managed room type conversion blocked</option>
<option value='ffb3e32a-9d1a-4dc1-bf89-18039f41fdbc'>ABAC-managed room default blocked</option>
</select>Invalid room

```json
{
  "success": false,
  "error": "Invalid room [error-invalid-room]",
  "errorType": "error-invalid-room"
}
```

ABAC-managed room type conversion blocked

```json
{
  "success": false,
  "error": "Changing an ABAC managed private room to public is not allowed [error-action-not-allowed]",
  "errorType": "error-action-not-allowed",
  "details": {
    "method": "saveRoomSettings",
    "action": "Change_Room_Type"
  }
}
```

ABAC-managed room default blocked

```json
{
  "success": false,
  "error": "Setting an ABAC managed room as default is not allowed [error-action-not-allowed]",
  "errorType": "error-action-not-allowed",
  "details": {
    "method": "saveRoomSettings",
    "action": "Viewing_room_administration"
  }
}
```

Expand Allobject  successboolean    
errorstring    
errorTypestring    
detailsobject  methodstring    
actionstring    

401

Unauthorized

<select class='api-response-data' aria-label='Media type'><option value='e72539dd-3ce3-424b-99e1-9a69c18acae7'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='e1f2dba9-e6a7-4704-85d7-31348695d13c'>Authorization Error</option>
</select>Authorization Error

```json
{
  "status": "error",
  "message": "You must be logged in to do this."
}
```

object  statusstring    
messagestring
