Rooms API

Create, list, and manage realtime rooms via REST or the Server SDK. List endpoints support server-side status filters and pagination.

Authentication

Base URL: https://api.baxcloud.tech. Send your project API key (starts with bax_) and project ID. The key must have the Realtime scope enabled.

Authorization: Bearer YOUR_API_KEY
X-Project-Id: YOUR_PROJECT_ID
💡

Endpoint

https://api.baxcloud.tech/v1/media/rooms

The Server SDK calls the same API using your apiKey and projectId.

List rooms

GET returns a paginated payload. Filter on the server with query params — you do not need to download every room and filter client-side.

Query parameters

status
'ACTIVE' | 'ENDED'
optional

Only return rooms in this status. Omit to include both.

page
number
optional

Page number (default 1).

limit
number
optional

Page size, max 100 (default 20).

startDate
ISO date string
optional

Only rooms created on or after this timestamp.

endDate
ISO date string
optional

Only rooms created on or before this timestamp.

Response shape

{
  "success": true,
  "data": {
    "items": [ /* room objects */ ],
    "meta": {
      "page": 1,
      "limit": 50,
      "total": 4,
      "hasMore": false
    }
  }
}
list-active-rooms.sh
1# Active rooms (paginated)
2curl -X GET "https://api.baxcloud.tech/v1/media/rooms?status=ACTIVE&page=1&limit=50" \
3  -H "Authorization: Bearer YOUR_API_KEY" \
4  -H "X-Project-Id: YOUR_PROJECT_ID" \
5  -H "Content-Type: application/json"
6
7# Ended rooms only
8curl -X GET "https://api.baxcloud.tech/v1/media/rooms?status=ENDED&page=1&limit=20" \
9  -H "Authorization: Bearer YOUR_API_KEY" \
10  -H "X-Project-Id: YOUR_PROJECT_ID"

Get a single room

Pass the room name (e.g. team-standup) or database ID from listRooms(). Returns full details including participants and recordings.

1# By room name
2curl -X GET "https://api.baxcloud.tech/v1/media/rooms/team-standup" \
3  -H "Authorization: Bearer YOUR_API_KEY" \
4  -H "X-Project-Id: YOUR_PROJECT_ID"
5
6# By room ID (from listRooms)
7curl -X GET "https://api.baxcloud.tech/v1/media/rooms/cmt61on9a3o69tdtjrghjioq6" \
8  -H "Authorization: Bearer YOUR_API_KEY" \
9  -H "X-Project-Id: YOUR_PROJECT_ID"

Other room endpoints

1# Create
2curl -X POST "https://api.baxcloud.tech/v1/media/rooms" \
3  -H "Authorization: Bearer YOUR_API_KEY" \
4  -H "X-Project-Id: YOUR_PROJECT_ID" \
5  -H "Content-Type: application/json" \
6  -d '{"name":"team-standup","maxParticipants":50}'
7
8# Get by name or ID
9curl -X GET "https://api.baxcloud.tech/v1/media/rooms/team-standup" \
10  -H "Authorization: Bearer YOUR_API_KEY" \
11  -H "X-Project-Id: YOUR_PROJECT_ID"
12
13# Delete (name or ID)
14curl -X DELETE "https://api.baxcloud.tech/v1/media/rooms/team-standup" \
15  -H "Authorization: Bearer YOUR_API_KEY" \
16  -H "X-Project-Id: YOUR_PROJECT_ID"
💡

Prefer the Server SDK on Node backends

Use @baxcloud/baxcloud-server-sdk for typed listRooms, createRoom, and tokens — see Server SDK docs.