Skip to main content

SignalWire has a vision of Software-Defined Telecom which combines the flexibility of the World Wide Web with the power of Bi-Directional Telecommunications. RELAY provides the ability to fully control powerful resources in real-time from the comfort of a simple script.

Until now, we've had two server-side SDKs: the RELAY SDK for Calling, Messaging, and Tasks, and the RELAY Realtime SDK for Video and Chat. Our new release of the RELAY Realtime SDK merges all of these features allowing you to meet all of your communication needs with only one SDK!


While the older versions will still work, if you are just starting out with Messaging or Voice services, you should begin building with the RELAY Realtime SDK. If you are already using the old version, you should consider upgrading if possible, so that you can take advantage of our most seamless development process yet. For some pointers on migrating, please read our post "Upgrade Your RELAY Game".

RELAY Realtime SDK

Install the RELAY Realtime SDK package with npm or yarn:

npm install @signalwire/realtime-api@~3

You can then import the package as follows:

import * as SignalWire from "@signalwire/realtime-api";

The RELAY Realtime SDK has everything you know and love from the original RELAY plus more! With only one SDK you can offer unified communications using:

Beyond the expanded communication options, our developers have worked tirelessly to make it possible to do more with more intuitive syntax and fewer lines of code.

Below is an example of creating a voice call in the RELAY Realtime vs the old RELAY:

import { Voice } from "@signalwire/realtime-api";

const client = new Voice.Client({
project: "<project-id>",
token: "<api-token>",
contexts: ["office"],

try {
const call = await client.dialPhone({
from: "+YYYYYYYYYY",
timeout: 30,
} catch (e) {
console.log("Call not answered.");