allmodels.ioDocs
API ReferenceElevenLabs SDK

Speech Engine conversation WebSocket

Connect using the signed_url returned by the signed URL endpoint. The client sends microphone audio directly to AllModels and receives transcripts, response text, and synthesized audio.

GET/el/v1/convai/conversation

Connect using the signed_url returned by the signed URL endpoint. The client sends microphone audio directly to AllModels and receives transcripts, response text, and synthesized audio.

Query Parameters

conversation_signature*string

Opaque credential included in the signed URL.

agent_id?string

Speech Engine id included by ElevenLabs-compatible clients.

Header Parameters

Upgrade*string

Response Body

application/json

application/json

application/json

Client
Language
import { readFile } from "node:fs/promises";import WebSocket from "ws";const audioChunk = await readFile("chunk.pcm");const ws = new WebSocket("wss://api.allmodels.io/el/v1/convai/conversation?conversation_signature=$CONVERSATION_SIGNATURE&agent_id=$SPEECH_ENGINE_ID");ws.on("open", () => {  ws.send(JSON.stringify({ user_audio_chunk: audioChunk.toString("base64") }));});ws.on("message", (data, isBinary) => {  if (isBinary) process.stdout.write(data);  else console.log(JSON.parse(data.toString()));});ws.on("error", console.error);
Empty
{  "detail": {    "message": "string",    "status": "string",    "property1": null,    "property2": null  }}
{  "detail": {    "message": "websocket upgrade required",    "status": "websocket_upgrade_required"  }}
{  "detail": {    "message": "string",    "status": "string",    "property1": null,    "property2": null  }}