> ## 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.
# Join a Room
> Join a room of any type, including public channels, private groups, and discussions. Unlike the channels.join endpoint, which only joins public channels, this endpoint applies to all kinds of rooms.
### Changelog
| Version | Description |
| ------------ | ----------- |
| 8.6.0 | Added |
## OpenAPI
````json POST /api/v1/rooms.join
{
"openapi": "3.0.0",
"info": {
"version": "1.0.0",
"title": "Rooms"
},
"servers": [
{
"url": "https://apiexplorer.support.rocket.chat"
}
],
"tags": [
{
"name": "Channels"
},
{
"name": "Directory"
},
{
"name": "Groups"
},
{
"name": "Rooms"
},
{
"name": "Teams"
},
{
"name": "Room Invites"
},
{
"name": "Subscriptions"
},
{
"name": "ABAC"
}
],
"paths": {
"/api/v1/rooms.join": {
"post": {
"tags": [
"Rooms"
],
"summary": "Join a Room",
"description": "Join a room of any type, including public channels, private groups, and discussions. Unlike the channels.join endpoint, which only joins public channels, this endpoint applies to all kinds of rooms. \n\n### Changelog\n| Version | Description |\n| ------------ | ----------- |\n| 8.6.0 | Added |",
"operationId": "post-api-v1-rooms.join",
"parameters": [
{
"$ref": "#/components/parameters/Auth-Token"
},
{
"$ref": "#/components/parameters/UserId"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"type": "object",
"properties": {
"roomId": {
"type": "string",
"description": "The ID of the room to join. Provide either `roomId` or `roomName`.",
"example": "ByehQjC44FwMeiLbX"
},
"joinCode": {
"type": "string",
"description": "The join code of the room. Rooms can be password-protected. In that case, users must enter the password for access. The join code isn't needed if the user has the `join-without-join-code` permission.",
"example": "1234"
}
},
"required": [
"roomId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"roomName": {
"type": "string",
"description": "The name of the room to join. Provide either `roomId` or `roomName`.",
"example": "general"
},
"joinCode": {
"type": "string",
"description": "The join code of the room. Rooms can be password-protected. In that case, users must enter the password for access. The join code isn't needed if the user has the `join-without-join-code` permission.",
"example": "1234"
}
},
"required": [
"roomName"
],
"additionalProperties": false
}
]
},
"examples": {
"Join by room ID": {
"value": {
"roomId": "ByehQjC44FwMeiLbX",
"joinCode": "1234"
}
},
"Join by room name": {
"value": {
"roomName": "general"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"room": {
"type": "object",
"properties": {
"_id": {
"type": "string"
},
"name": {
"type": "string"
},
"fname": {
"type": "string"
},
"t": {
"type": "string"
},
"msgs": {
"type": "integer"
},
"usersCount": {
"type": "integer"
},
"u": {
"type": "object",
"properties": {
"_id": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"ts": {
"type": "string"
},
"ro": {
"type": "boolean"
},
"default": {
"type": "boolean"
},
"sysMes": {
"type": "boolean"
},
"_updatedAt": {
"type": "string"
}
}
},
"success": {
"type": "boolean"
}
}
},
"examples": {
"Example": {
"value": {
"room": {
"_id": "ByehQjC44FwMeiLbX",
"name": "general",
"fname": "general",
"t": "c",
"msgs": 8,
"usersCount": 2,
"u": {
"_id": "rocketchat.internal.admin.test",
"username": "rocketchat.internal.admin.test"
},
"ts": "2026-01-16T12:00:04.783Z",
"ro": false,
"sysMes": true,
"default": true,
"_updatedAt": "2026-01-16T12:06:30.426Z"
},
"success": true
}
}
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"error": {
"type": "string"
},
"errorType": {
"type": "string"
}
}
},
"examples": {
"Invalid params": {
"value": {
"success": false,
"error": "Match error: Missing key 'roomId'",
"errorType": "error-invalid-params"
}
},
"Room not found": {
"value": {
"success": false,
"error": "The required \"roomId\" or \"roomName\" param provided does not match any channel [error-room-not-found]",
"errorType": "error-room-not-found"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/authorizationError"
}
}
}
}
},
"components": {
"parameters": {
"Auth-Token": {
"name": "X-Auth-Token",
"in": "header",
"description": "The `authToken` of the authenticated user.",
"required": true,
"schema": {
"type": "string"
},
"example": "RScctEHSmLGZGywfIhWyRpyofhKOiMoUIpimhvheU3f"
},
"UserId": {
"name": "X-User-Id",
"in": "header",
"description": "The `userId` of the authenticated user.",
"required": true,
"schema": {
"type": "string"
},
"example": "rbAXPnMktTFbNpwtJ"
}
},
"responses": {
"authorizationError": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"error": {
"type": "string"
}
}
},
"examples": {
"Authorization Error": {
"value": {
"success": false,
"error": "You must be logged in to do this."
}
}
}
}
}
}
}
}
}
````