Concepts
A few words come up across these docs. Here is what each means.
Accounts and projects
Your account is your login in the console. Its prepaid credit and free tier are shared by all of its projects.
A project is one app or environment, such as "School app" or "School app (staging)". Each project has its own API keys, rooms, webhook, limits and usage. Two projects can use the same room names without ever meeting each other.
API keys
An API key lets your backend act for one project. A project can have up to 20 keys, for example one for testing and one for production. Each key works the same way, and you can delete one without affecting the others. We only store a hash of each key, so the console shows a key only once, when you create it.
Rooms
A room is one call, class or stream, named by any ID you choose (letters, numbers and . _ : @ -, up to 128 characters). There's no "create room" step. A room starts when the first person joins and ends two minutes after the last person leaves. Your backend can also end it early with DELETE /rooms/:roomId.
Participants and tracks
A participant is one person (or bot) in a room. They're identified by the userId in their token. Permission and role changes for a userId apply to every device they've joined from.
A participant publishes tracks: audio (mic), video (camera), screenVideo and screenAudio. Everyone else in the room receives them, unless permissions or subscription settings say otherwise.
Some participants aren't people:
participant.kind |
|
|---|---|
"user" or not set |
a person who joined with a token |
"ingress" |
a live stream brought in from OBS or another encoder |
"agent" |
an AI voice agent |
Join tokens
A join token is a short-lived signed ticket for one participant in one room. It says who they are, their display name, their role and what they may do. Your backend mints it with the API key, and your app passes it to joinRoom. See Join tokens.
Usage
We count participant minutes: the minutes each person spends in a room. A 30-minute call with 4 people uses 120 participant minutes. Captions, shared files, recording, streaming and AI agents have their own meters. See Pricing.