Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jitsi/jitsi-meet/llms.txt

Use this file to discover all available pages before exploring further.

Breakout rooms allow moderators to split conference participants into separate sub-sessions that run in parallel within the same meeting. Each breakout room is an independent conference with its own audio and video space — participants in one room cannot see or hear those in another. When breakout sessions end, all participants return to the main room automatically.

How to Use Breakout Rooms

1

Open the Participants pane

Click the Participants icon in the toolbar (or press Alt+P) to open the Participants panel on the right side of the screen.
2

Open the Breakout Rooms section

At the bottom of the Participants pane, click Breakout Rooms to expand the breakout room controls. This section is only visible to moderators.
3

Create a breakout room

Click Add Breakout Room to create a new sub-session. Rooms are named automatically (e.g., “Breakout Room 1”) or you can provide a custom name.
4

Assign participants

Drag participants from the main list into a breakout room, or click Auto Assign to distribute everyone evenly across existing rooms. Participants can also be moved individually using the action menu next to their name.
5

Close breakout rooms

Click Close Breakout Rooms to end all sub-sessions and return every participant to the main conference.

IFrame API Commands

All breakout room commands require moderator privileges on the local participant. Commands dispatched without moderator rights will be silently rejected.
const api = new JitsiMeetExternalAPI(domain, options);

// Create a new breakout room with an optional display name
api.executeCommand('addBreakoutRoom', 'Team Alpha');

// Remove a breakout room by its JID
api.executeCommand('removeBreakoutRoom', 'roomjid@conference.example.com');

// Auto-distribute all participants across existing breakout rooms
api.executeCommand('autoAssignToBreakoutRooms');

// Move a specific remote participant to a room (moderator only)
api.executeCommand('sendParticipantToRoom', participantId, roomId);

// Move the local participant to a specific breakout room
api.executeCommand('joinBreakoutRoom', roomId);

// Close a specific breakout room and return its participants to the main room
api.executeCommand('closeBreakoutRoom', roomId);
CommandParametersDescription
addBreakoutRoomname: stringCreates a new breakout room with the given display name
removeBreakoutRoombreakoutRoomJid: stringPermanently removes the specified room
autoAssignToBreakoutRoomsEvenly distributes all participants across existing rooms
sendParticipantToRoomparticipantId, roomIdMoves a remote participant to the target room
joinBreakoutRoomroomIdMoves the local participant to the target breakout room
closeBreakoutRoomroomIdCloses a room and returns its members to the main conference

Breakout Room Events

Subscribe to breakoutRoomsUpdated to keep your embedding application in sync with the current room state.
api.addListener('breakoutRoomsUpdated', ({ rooms }) => {
  console.log('Breakout room state updated:', rooms);
  rooms.forEach(room => {
    console.log(`Room: ${room.name}, participants: ${room.participants?.length ?? 0}`);
  });
});
The event fires whenever a room is created, removed, or whenever participants move between rooms.

Retrieving Current Room State

Use getRoomsInfo() to fetch a snapshot of all rooms and their current participants — useful for building a custom rooms UI or tracking occupancy.
api.getRoomsInfo().then(({ rooms }) => {
  const mainRoom = rooms.find(r => r.isMainRoom);
  const breakouts = rooms.filter(r => !r.isMainRoom);

  console.log(`Main room participants: ${mainRoom.participants.length}`);
  breakouts.forEach(room => {
    console.log(`${room.name}: ${room.participants.length} participant(s)`);
  });
});
Each room object in the response contains:
FieldTypeDescription
idstringUnique room identifier (JID)
namestringDisplay name of the room
isMainRoombooleantrue for the main conference room
participantsarrayList of participant objects currently in this room

Limitations

  • Only moderators can create, remove, or assign participants to breakout rooms. Participants can voluntarily move to a room when invited.
  • Breakout rooms require a Prosody deployment with the muc_breakout_rooms plugin enabled. Self-hosted deployments must configure this explicitly.
  • On JaaS (8x8.vc), the maximum number of active breakout rooms per meeting may be subject to your plan limits.
  • Breakout rooms are not persisted — they are destroyed when the meeting ends.

Build docs developers (and LLMs) love