API Reference

Complete list of REST endpoints and WebSocket messages.

User & Room Endpoints

Used by your mobile or web clients to authenticate users and interact with rooms.

MethodPathAuthDescription
POST/api/auth/autoAPI keyAuto-create/find user and return session token
POST/api/auth/tokenclient_idAuth with client_id + username + password
POST/api/token/refreshNoneExchange refresh token for new access token
POST/api/loginNoneJSON login with username + password
POST/api/registerNoneJSON registration with username + password
POST/api/logoutBearerInvalidate current session token
GET/api/meBearerGet current authenticated user info
GET/api/channelsBearerList voice channels for current tenant
POST/api/channelsBearerCreate a new voice channel
GET/wsBearer/token paramWebSocket signaling connection
GET/healthNoneServer health check

Dashboard Endpoints

Used by the VoxaStream web dashboard. Authenticated via session cookie.

MethodPathAuthDescription
POST/api/auth/clerk-tenantClerk JWTExchange Clerk JWT for backend tenant session
GET/api/tenant/meSession cookieCurrent tenant info
GET/api/tenant/usageSession cookieCurrent month usage stats
GET/api/tenant/roomsSession cookieList tenant rooms
GET/api/tenant/usersSession cookieList tenant users
GET/api/tenant/api-keysSession cookieList API keys (masked)
POST/api/tenant/api-keysSession cookieCreate new API key
DELETE/api/tenant/api-keys/revoke/{id}Session cookieRevoke API key
POST/api/tenant/generate-tokenSession cookieGenerate test user token
POST/api/tenant/rooms/delete/{id}Session cookieDelete a room
POST/api/tenant/logoutSession cookieInvalidate tenant session

WebSocket Messages

All messages are JSON objects with type and payload fields.

DirTypeDescription
join_channelJoin a voice channel. Payload: channel_id, role
leave_channelLeave the current channel.
muteToggle mute state. Payload: muted (bool)
speakingVoice activity. Payload: speaking (bool)
webrtc_offerSDP offer for WebRTC negotiation. Payload: sdp
webrtc_answerSDP answer. Payload: sdp
ice_candidateICE candidate. Payload: candidate (raw)
screen_previewScreen share JPEG thumbnail. Payload: image (base64)
channel_usersUser list update. Payload: channel_id, users[]
presenceAll-channel presence update.
webrtc_offerIncoming SDP offer from SFU.
webrtc_answerIncoming SDP answer.
ice_candidateIncoming ICE candidate.
screen_previewRemote screen preview.
screen_preview_clearScreen share ended.