Skip to main content
Your backend is the only place that should hold your Equos API key. It’s responsible for:
  • Creating characters, knowledge bases, and other resources
  • Starting conversations and forwarding the credentials to the client
  • Stopping conversations when you’re done
Equos offers two backend SDKs—pick whichever fits your stack.

@equos/node-sdk

NPM package for Node.js (and any JS runtime).

equos

Pip package with sync and async clients.

Start a conversation

The most common backend operation: create a conversation for a given character, and return the credentials the client needs to join.
import { EquosClient } from "@equos/node-sdk";

const client = EquosClient.create(process.env.EQUOS_API_KEY!);

const { conversation, consumerAccessToken } =
  await client.conversations.startConversation({
    createEquosConversationRequest: {
      name: "Demo conversation",
      characterId: process.env.EQUOS_CHARACTER_ID!,
      consumer: { name: "Demo User", identity: "demo-user" },
    },
  });

// Send these three fields to your client:
// - conversation.serverUrl        (LiveKit WebSocket URL)
// - consumerAccessToken            (short-lived JWT)
// - conversation.character.livekitIdentity
Never expose EQUOS_API_KEY to the client. Only the conversation object and consumerAccessToken should cross the wire.

Stop a conversation

await client.conversations.stopConversation({ id: conversation.id });

Manage other resources

The same client can create and manage every resource in your organization: characters, knowledge bases, voices, and more. See the SDK pages for the full API surface:

Node.js SDK reference

Install, client init, full API.

Python SDK reference

Install, client init, sync + async.

Full examples

Node.js example

Complete Node.js project creating characters, knowledge bases, and conversations.

Python example

Sync and async Python scripts for the same flows.

Next step

Once your backend is returning a conversation payload, wire it up to a client:

Web client

Connect from a browser using the Browser SDK or React SDK.

Native client

Connect from iOS or Android using LiveKit.