Collaboration

Collaboration Rooms

Rooms are shared spaces where multiple users join the same agent session. Every user in the room sees the same conversation history and agent responses. Rooms are useful for shared support queues, team debugging sessions, or any scenario where multiple people interact with the same agent thread.

Creating a room

A room is linked to an existing session. The creator is automatically added as a member.

bash
# Create a room linked to a session
curl -X POST http://localhost:3000/rooms \
  -H "Authorization: Bearer ${JWT_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{ "sessionId": "sess_abc123" }'

# Response (201 Created)
{ "id": "room_def456" }

Joining and leaving

Any authenticated workspace member can join a room. Leaving does not delete the room — it remains active for other members.

bash
# Join a room
curl -X POST http://localhost:3000/rooms/room_def456/join \
  -H "Authorization: Bearer ${JWT_TOKEN}"

# Leave a room
curl -X DELETE http://localhost:3000/rooms/room_def456/leave \
  -H "Authorization: Bearer ${JWT_TOKEN}"

Room details

bash
# Get room details with member list
curl http://localhost:3000/rooms/room_def456 \
  -H "Authorization: Bearer ${JWT_TOKEN}"

# Response
{
  "room": {
    "id": "room_def456",
    "sessionId": "sess_abc123",
    "workspaceId": "ws_abc123",
    "members": ["uid_alice", "uid_bob"],
    "createdAt": "2026-03-07T12:00:00.000Z"
  }
}

Endpoint reference

MethodEndpointDescription
POST/roomsCreate a room (requires sessionId)
GET/rooms/:idGet room details with member list
POST/rooms/:id/joinJoin a room
DELETE/rooms/:id/leaveLeave a room