Calls inside
your product.
Audio and video for up to ten people. Invites, call records, saved chat and billing, behind one API.
- In use
- 0:00
- Billed
- 0 min
- Charge
- 0 BDT
Everything a call needs, nothing you have to host.
Invites and scheduling
Share a code, set a window. Calls open ten minutes early and close thirty minutes after they end.
invite.code, expires_at, max_uses
Small rooms
10
Call records
Duration, participants, IP and platform for every session.
user_id: nusrat
platform: android
peak_participants: 3
Saved chat
Messages are stored with the call, so latecomers can catch up.
GET /v1/calls/{id}/messages
Usage reports
Room-minutes by team, user or call. Download as CSV.
GET /v1/usage?group_by=team
Three requests to a live call.
Sign
Your backend signs a user token
HS256 with your API secret. Your own user_id goes in sub. Tokens live for up to an hour.
signer := teletoken.Signer{
APIKey: os.Getenv("TELE_API_KEY"),
APISecret: os.Getenv("TELE_API_SECRET"),
}
token, err := signer.UserToken(teletoken.User{
ID: "nusrat",
Name: "Nusrat",
Team: "design",
}, 15*time.Minute)Join
Your app redeems the invite
One request checks the invite, the schedule and the guest list, then returns everything needed to connect.
curl -X POST $TELE_API/v1/invites/$CODE/join \
-H "Authorization: Bearer $TOKEN" \
-H "X-Client-Platform: web"
{
"ws_url": "wss://tele-lk.cloudguys.io",
"token": "eyJhbGciOiJIUzI1NiIs...",
"ice_servers": [ ... ],
"role": "participant"
}Connect
The media connects directly
Pass the response to the client SDK on web, Flutter or mobile. Tele records the session as it happens.
const room = new Room({ adaptiveStream: true });
await room.connect(join.ws_url, join.token, {
rtcConfig: { iceServers: join.ice_servers },
});
await room.localParticipant
.enableCameraAndMicrophone();signer := teletoken.Signer{
APIKey: os.Getenv("TELE_API_KEY"),
APISecret: os.Getenv("TELE_API_SECRET"),
}
token, err := signer.UserToken(teletoken.User{
ID: "nusrat",
Name: "Nusrat",
Team: "design",
}, 15*time.Minute)Billed by the room, not the head.
Billed once
A call is one room. Ten people cost the same as two.
Rounded up
A call of 10:05 bills as 11 minutes, at 1 BDT each by default.
Waiting counts
A host alone in the room is in use. Rates can differ by team.