Moderation
RTCstack exposes LiveKit's room management via a thin REST layer. All moderation actions require moderator or host role in the originating token — the API does not enforce role-based access on these endpoints, so your backend is responsible for checking the caller's role before forwarding.
List Participants
GET /v1/rooms/:roomId/participantsResponse:
{
"participants": [
{
"sid": "PA_abc123",
"identity": "user-1",
"name": "Alice",
"state": "ACTIVE",
"joinedAt": "2024-04-21T10:00:00.000Z",
"audioLevel": 0.4,
"isSpeaking": true,
"metadata": ""
}
]
}Mute a Participant
Mutes a specific track type for a participant. The participant is notified via LiveKit data channel.
POST /v1/rooms/:roomId/participants/:participantId/mute
Content-Type: application/json
{
"trackType": "audio"
}trackType is "audio" or "video".
Response: 204 No Content
Kick a Participant
Removes a participant from the room. They can rejoin unless your app prevents it.
DELETE /v1/rooms/:roomId/participants/:participantIdResponse: 204 No Content
Room Management
List Rooms
GET /v1/roomsGet Room
GET /v1/rooms/:roomIdCreate Room (explicit)
POST /v1/rooms
Content-Type: application/json
{
"roomId": "my-room",
"maxParticipants": 20,
"emptyTimeout": 300,
"metadata": "{\"topic\":\"weekly standup\"}"
}Rooms are created implicitly by POST /v1/token — use this endpoint only when you need to pre-configure a room before the first participant joins.
Delete Room
Terminates the room and disconnects all participants.
DELETE /v1/rooms/:roomIdResponse: 204 No Content

