Skip to main content

Rooms

Rooms are the core resource in Livestorm Nexus. Each room has a unique name (slug) and belongs to a user.

List Rooms

Returns all rooms owned by the authenticated user, with recording count.

GET /api/dashboard/rooms

Response:

{
"rooms": [
{
"id": 1,
"name": "team-standup-1234",
"user_id": 1,
"created_at": 1710000000,
"last_used_at": 1710100000,
"recording_count": 3,
"scheduled_at": null,
"accent_color": "#0B42C3",
"waiting_room_enabled": 0,
"waiting_room_message": null
}
]
}

Create Room

Creates a new room with the given name.

POST /api/dashboard/rooms

Request body:

FieldTypeRequiredDescription
namestringNoRoom name (auto-generated if omitted)
scheduled_atnumberNoUnix timestamp for scheduled meeting
accent_colorstringNoHex color for room branding
waiting_room_enablednumberNo1 to enable, 0 to disable
waiting_room_messagestringNoCustom message shown to waiting participants

Response: 201 Created

{
"room": {
"id": 2,
"name": "my-meeting-room",
"user_id": 1,
"created_at": 1710000000,
...
}
}

Errors:

  • 400 — Invalid room name
  • 409 — Room name already taken

Get Room

Returns a single room by name.

GET /api/dashboard/rooms/:name

Response:

{
"room": { ... }
}

Update Room

Updates room settings.

PATCH /api/dashboard/rooms/:name

Request body: Any subset of scheduled_at, accent_color, waiting_room_enabled, waiting_room_message.

Response:

{
"room": { ... }
}

Delete Room

Permanently deletes a room and all its recordings.

DELETE /api/dashboard/rooms/:name

Response:

{ "ok": true }

Generate Room Name

Generates a random room name suggestion. No authentication required.

GET /api/dashboard/generate-name

Response:

{
"name": "autumn-waterfall-bold-sunset-1234"
}