Livqeno lets you add video calls, chat, and live streaming to your app without running any real-time servers yourself. We host the media servers, relays, and chat servers. You write your app and a small piece of backend code.
This page gives you the whole picture in five minutes. Read it first, and the rest of the docs will make sense.
What you can build
| Product | What it does | Example apps |
|---|---|---|
| RTC (video calls) | Live audio and video between people. | A telehealth visit, a support call, a team meeting, a gaming party. |
| Chat | Saved conversations with typing, read receipts, reactions, and threads. | Customer support chat, team channels, a chat panel next to a call. |
| Live streaming | One host broadcasts to many viewers, who chat and react. | A webinar, a live class, a product launch. |
| Webhooks | Your backend is told when something happens. | Send a push notification for a new message, mark a webinar as finished. |
You can use one product or combine them. A live stream, for example, is a call and a chat working together.
The big picture: who runs what
Three parts work together. Two of them are yours.
How a user joins, step by step
Say alice opens your app and clicks Join call:
- Your app asks your backend: "Can Alice join
demo-room?" - Your backend checks that Alice is logged in. Then it uses its secret API key to ask Livqeno for a token for Alice and that room.
- Livqeno sends back the token (plus connection details, called a grant). Your backend passes it to your app.
- Your app uses the token to join the room. Livqeno connects Alice's camera and mic to everyone else in the room.
- Later, when something happens in chat or a live stream, Livqeno sends a webhook to your backend. For example, "a new message arrived" or "the webinar ended", so you can save it or react to it. (Joining and leaving a video call doesn't send a webhook. Your app sees that through room events.)
The important rule: the API key stays on your backend. Your app only ever sees a short-lived token that works for one user in one room or conversation. That way, even if someone inspects your app, they can't use your project.
Explain it with a hotel
If you're explaining Livqeno to a teammate, this picture works well:
| Livqeno | Hotel |
|---|---|
| Livqeno | The hotel. It runs the building: the rooms, the power, the lifts. |
| API key | The master key. It stays at the front desk and never goes to a guest. |
| Your backend | The front desk. It checks who you are, then hands you a keycard. |
| Token | A guest keycard. It opens one room, for one guest, and stops working after a while. |
| Your app | The guest. It only ever holds the keycard. |
Or in one sentence: your backend keeps the Livqeno API key and makes a short-lived token for each user. The app joins the call with that token, and Livqeno carries the video.
The words you'll see everywhere
| Word | In one line |
|---|---|
| Project | A container for your app. Holds all your rooms, chats, and keys. |
| Environment | development, staging, or production. Each is fully separate. |
| API key | Your backend's secret. Never put it in your app. |
| Token | A short-lived pass your backend makes for one user. |
| Room | Where a call happens. |
| Conversation | Where chat messages live. |
More words: Glossary and Core concepts.
What you build, and what we run
| You build | Livqeno runs |
|---|---|
| Your screens: call view, chat panel, buttons | Media servers that route audio and video |
| A backend endpoint that makes tokens | Relays (TURN) so calls work on any network |
| Login: deciding who your users are | Chat servers that store and deliver messages |
| What to do with webhooks | Token checks, permissions, and limits |
Livqeno is not a ready-made app or a drop-in widget. Our SDKs give you simple
building blocks, like room.enableCamera() and chat.sendMessage(), and
you design the experience around them.
What Livqeno does not do
Check this before you plan your app:
-
No recording of calls. An RTC room can't be recorded. The one recording is the replay a broadcast-mode live stream produces when it ends (
live_stream.recording_ready). -
Free allowances are one-off. On the Free plan every account gets a fixed amount that never resets:
- 10,000 RTC participant-minutes
- 100,000 chat messages
- 100 live-streaming host-hours
To go past them, move to a paid plan under Billing: the same amounts are then included every month and the rest is billed. See Usage.
-
Limited RTMP. A stream can be restreamed to up to 5 RTMP/RTMPS destinations (YouTube, Twitch …), and can be broadcast from OBS over WHIP or RTMP/RTMPS. Ingest takes H.264 without B-frames, up to 1080p30 and 8 Mbps, and one encoder per stream. Restream uses a fixed grid layout.
The full list is in Known limitations.
Next steps
Most developers go in this order:
Build a working video call in about 10 minutes. The fastest way to see every piece above in action.
2. ArchitectureHow calls and chat are kept separate, and why.
3. Install an SDKSystem requirements, TypeScript, Next.js, and checking your setup.
4. Build for productionKeys, origins, webhooks and monitoring before launch.
Or go straight to a product: