arzbridge calls โ€” Developer Integration Guide

Add real-time video, voice, and data to your app in minutes. arzbridge calls is a managed WebRTC platform: your backend asks our API for a join token, and your app (web, mobile, Flutter, etc.) connects directly to our media servers with that token.

You only integrate two things: (1) a couple of REST calls from your backend, and (2) a LiveKit client SDK in your app. That's it.


The integration model (read this first)

            โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        1. request token (API key+secret)
            โ”‚ YOUR BACKEND โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ  arzbridge API
            โ”‚ Node/Laravel โ”‚ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  { token, ws_url }
            โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜        2. token returned
                   โ”‚ 3. your app asks your backend for a token
                   โ–ผ
            โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        4. connect with token
            โ”‚  YOUR APP    โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ   arzbridge media
            โ”‚ Flutter/Web  โ”‚ โ—„โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• live audio/video/data โ•โ•โ•โ•โ•โ–บ  (LiveKit)
            โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Golden rule: your API key + secret live only on your backend. Your app (Flutter, web, mobile) never sees them โ€” it only receives short-lived tokens from your backend.


What you'll need

Thing Where it comes from
API key + secret Provided to you by arzbridge (one pair per project)
API base URL https://calls.arzbridge.com/api/v1
WebSocket URL (for clients) wss://calls.arzbridge.com (also returned in token responses)

Contents

# Guide For
01 Getting started Concepts, auth, the token flow, roles
02 API reference Every endpoint, with examples
03 Node.js backend Mint tokens & manage rooms from Node
04 Laravel backend Mint tokens & manage rooms from Laravel
05 Receiving webhooks Get signed event notifications on your backend
06 Web โ€” JavaScript / React Join calls from a website / web app
07 Flutter app Join calls from a Flutter mobile app
08 Security & best practices Do it right in production

60-second quickstart

# 1) Your backend gets a token (server-to-server)
curl -s https://calls.arzbridge.com/api/v1/tokens \
  -H "Authorization: Bearer YOUR_API_KEY:YOUR_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"room":"my-first-room","identity":"user-123","name":"Alice"}'
# -> { "data": { "token": "...", "ws_url": "wss://calls.arzbridge.com", ... } }
// 2) Your Flutter app joins with that token
final room = Room();
await room.connect('wss://calls.arzbridge.com', token);
await room.localParticipant?.setMicrophoneEnabled(true);
await room.localParticipant?.setCameraEnabled(true);

That's a working call. The rest of this guide makes it production-grade.