RTCEXPRESS DOCUMENTATION

Build real-time communication into your app

This quickstart takes you from a project credential to a test call while keeping authorization under your control.

Open API reference

Before you begin

Create a project in the customer portal. Each project has an App ID and App Secret. The App Secret belongs only in a secure backend environment, never in a browser, mobile app, or public Git repository.

Choose your pathFree supports chat. Starter adds voice. Pro adds video and advanced media capabilities.

1. Issue a user token from your backend

Authenticate your user in your own system, confirm that they can enter the requested room, and then call the token endpoint using project credentials.

POST /v1/token

{ "appId": "app_…", "appSecret": "sec_…", "userId": "user_123", "roomId": "room_42" }

Return the short-lived token to the client. Do not trust a room or user ID solely because the browser submitted it.

2. Initialize and join

Register listeners before initialization. When the connection is ready, join the authorized room. Enable chat and call controls after the room-joined event.

const rtc = new RTCExpress();
rtc.on("roomJoined", () => rtc.sendMessage("Hello"));
await rtc.init({ serverUrl, appId, userId, token });
rtc.joinRoom("room_42");

Use the customer portal’s Integration section for the project-specific endpoint and examples.

3. Test the actual user experience

  • Use two distinct users in the same project and room.
  • Test camera and microphone permission denial, reconnects, and network changes.
  • Test chat, voice, and video separately on real devices.
  • Record the call ID and UTC time when reporting a problem.

Incoming-call notifications

Android incoming-call delivery requires Firebase Messaging setup, a registered device token, and client-side notification handling. Provider acceptance is not proof that a phone displayed a notification. iOS uses configured APNs credentials and registered alert or VoIP tokens. Native permissions, entitlements, and notification handlers are required; uploading credentials alone does not complete integration.

Diagnostics and support

Signed-in customers can search diagnostics by call ID and inspect call events, quality, push attempts, and webhook delivery. Check service status before opening a support request.

Ready to create a project?

Create free accountDeveloper hub