Quickstart
Connect the SDK and send your first message in a few minutes.
Authentication & tokens
How your backend mints SDK tokens — and how anonymous embeds work.
What you can build
Chat
Direct, group, and in-app conversations with presence, typing, and read receipts.
Customer support
A support inbox, routing to agents, and an AI bot that answers from your FAQs and docs.
Voice & video
WebRTC audio and video calls with call signaling handled for you.
Ways to integrate
JavaScript SDK
Headless client for the browser, React, React Native, or Node. Handles the WebSocket,
reconnection, conversations, presence, typing, receipts, calls, and support.
Support widget
A drop-in chat bubble for your website — provisioned by your backend, or fully
anonymous with just a public key.
REST API
Mint tokens, start support sessions, list conversations and history, update visitors.
WebSocket protocol
The low-level real-time protocol, if you’re not using the SDK.
How it fits together
1
Create an app
In the dashboard, create an App to get an App ID, a public key (
pk_…),
and a secret key (sk_…). Keep the secret on your backend.2
Mint a token on your backend
Your backend calls the API to issue a short-lived SDK token for the current user.
The frontend receives only the token — never your keys.
3
Connect from the frontend
The SDK (or widget) connects to the real-time service with that token and streams
messages, presence, typing, receipts, and call signaling.
Prefer a no-backend embed? A static site can open an anonymous support session with just
your public key and an allow-listed origin — see Authentication & tokens.
Next steps
Quickstart
The fastest path to a working chat.
SDK reference
Every method and event, feature by feature.
Embed the widget
Add a support bubble to any site.
Add voice & video
Start audio and video calls from a conversation.