DNZ Digita
← Back to Voice docs

DNZ Voice Docs

Channels & RTC Token API

All production calls use your API key in the Authorization header. Base URL: voice-api.dnzteam.online. Channels are billed as participant-minutes.

Create a channel

POST /v1/channels (alias: POST /v1/rooms)

Headers: Authorization: Bearer dnz_vk_…

Body: channelName (optional, a-z A-Z 0-9 _), title, maxPeers (2–100), mode (open | moderated)

POST https://voice-api.dnzteam.online/v1/channels
Authorization: Bearer dnz_vk_xxxx

{
  "channelName": "class_101",
  "maxPeers": 50,
  "mode": "open"
}

→ 201 { "channelName": "class_101", "roomId": "class_101", "status": "active" }

Issue RTC Token

POST /v1/channels/{channelName}/token

uid: stable user id from your database

displayName: shown in the channel

role: host | speaker | listener

The response also includes iceServers (real STUN/TURN via coturn) — pass it straight into client.join() so browsers behind strict NATs/firewalls can still connect.

POST https://voice-api.dnzteam.online/v1/channels/class_101/token

{
  "uid": "user_8821",
  "displayName": "Ahmed",
  "role": "speaker"
}

→ { "token": "…", "peerId": "…", "iceServers": [...], "channelName": "class_101", "expiresIn": 86400 }

TURN credentials

GET /v1/turn-credentials — returns iceServers for NAT traversal.

Use the same API key. Call from client after you have network permission.

Close channel

DELETE /v1/channels/{channelName} — ends the live session and stops billing for new joins.

Related content

Support