Skip to content

Rooms

Create Room

POST /api/v1/rooms

Request

{
"name": "CS101 Lecture",
"config": {
"max_participants": 100,
"recording_enabled": true,
"chat_enabled": true
}
}

Response

{
"id": "room_abc123",
"name": "CS101 Lecture",
"status": "active",
"config": {
"max_participants": 100,
"recording_enabled": true,
"chat_enabled": true
},
"created_at": "2026-01-06T10:00:00Z"
}

List Rooms

GET /api/v1/rooms

Query Parameters

ParameterTypeDefaultDescription
limitinteger20Maximum number of rooms to return
offsetinteger0Number of rooms to skip

Response

{
"rooms": [
{
"id": "room_abc123",
"name": "CS101 Lecture",
"status": "active",
"participant_count": 25,
"config": {
"max_participants": 100,
"recording_enabled": true,
"chat_enabled": true
},
"created_at": "2026-01-06T10:00:00Z"
}
],
"total": 42,
"limit": 20,
"offset": 0
}

Get Room

GET /api/v1/rooms/{id}

Response

{
"id": "room_abc123",
"name": "CS101 Lecture",
"status": "active",
"participant_count": 25,
"config": {
"max_participants": 100,
"recording_enabled": true,
"chat_enabled": true
},
"created_at": "2026-01-06T10:00:00Z"
}

Update Room

PATCH /api/v1/rooms/{id}

Request

All fields are optional.

{
"name": "CS101 Lecture - Updated",
"config": {
"max_participants": 150,
"recording_enabled": false
}
}

Response

Returns the updated room object.

{
"id": "room_abc123",
"name": "CS101 Lecture - Updated",
"status": "active",
"config": {
"max_participants": 150,
"recording_enabled": false,
"chat_enabled": true
},
"created_at": "2026-01-06T10:00:00Z"
}

Delete Room

DELETE /api/v1/rooms/{id}

Permanently deletes the room.

Response

Returns 204 No Content on success.

End Room

POST /api/v1/rooms/{id}/end

Ends the room session. Unlike delete, this marks the room as ended but preserves the record.

Response

{
"id": "room_abc123",
"name": "CS101 Lecture",
"status": "ended",
"config": {
"max_participants": 100,
"recording_enabled": true,
"chat_enabled": true
},
"created_at": "2026-01-06T10:00:00Z",
"ended_at": "2026-01-06T11:30:00Z"
}