Adding Video Calls, Live Streaming and Chat to Your App Without Running Servers
Video features look small on a roadmap and turn out to be a mountain. Here's a simpler way: ask for a token, connect your app, and let someone else carry the video.

It usually starts with a message in the team chat. "Can we add video calls?"
Maybe you run a telehealth app and patients want to see a doctor. Maybe you're building a tutoring platform, a marketplace where buyers want to see the product, or a live-shopping feature. On the roadmap it looks like one small task. In reality, real-time video is one of the hardest things to run yourself.
You'd need media servers, ways to get past home routers and firewalls, a plan for when thousands of people join at once, servers close enough to your users that the call doesn't lag, and a bandwidth bill that can get large quickly.
The good news is that you almost never have to do any of that. Here's the simpler way.
The idea in one minute
Think of it like a concert venue and a ticket.
The venue is a room that carries the audio and video. The token is the ticket that lets one person walk in. Your own server decides who gets a ticket, and the people with tickets join the room using a small piece of code in your app.
So the steps look like this:
- Your server asks us for a token. You say what kind of session it is (video, voice, stream or chat) using your API key.
- Your app joins with that token, using a standard real-time client for the web, iOS, Android or Flutter.
- The audio and video flow through our servers, and you're billed for what's used, from your naira wallet.
POST /v1/streaming/{session_type}/token
Because the token is created on your server, your API key never reaches the user's browser, and you decide who can enter which room. See the token endpoint and the session listing for the details.
What you can build with it
- One-to-one video or voice calls. Doctor and patient, tutor and student, support agent and customer.
- One-to-many live streams. Classes, events, creators, live selling.
- Chat inside your app. It runs on the same system, as a room with no video.
- Host controls. Mute someone, turn off their camera, remove them, or end the session.
- Gifting. A virtual-gift system for creator platforms. We cover this in How live gifting works.
Why it matters that servers are close by
Anyone who has been on a laggy call knows the problem: you both talk at once, then both stop, then both apologise. That delay comes largely from distance. If your video has to travel to a data centre on another continent and back, it feels slow.
Our servers are located in the region, which keeps the delay low for African users and helps calls stay usable on weaker mobile connections.
Build for real conditions
- Expect slow networks. Let people switch off video and keep the voice. Show them how strong their connection is.
- Handle camera and microphone permissions gracefully. Those little browser pop-ups are the number one reason calls fail to start. Explain why you need them before asking.
- Plan for scale early. A stream with many viewers costs more than a call between two people. Decide your limits and your own pricing early.
- Moderate. For public streams, use the host controls to remove abusive people quickly, and give viewers a way to report problems.
Pricing you can predict
You pay for the time people actually spend in a session, not a flat licence. Voice costs less than video, and streams are measured per session. Because it comes out of a naira wallet, there are no surprise currency conversions. The products page always shows the current rates.
Try it first
Open the real-time demo in your dashboard. You can start a call, a stream or a chat and see how tokens turn into rooms. Then read the API reference and the SDKs when you're ready to add it to your own app. Create a free account to begin.





Comments
Questions and corrections welcome. Be kind; links are limited to keep spam out.