apicheats.dev elevenlabs/llms.txt Raw .md
POST

POST /v1/convai/realtime/client_secrets — ElevenLabs API

ElevenLabs API

Create Realtime Client Secret

Base URL
https://api.elevenlabs.io
Auth
xi-api-key: <ELEVENLABS_API_KEY>
Last verified
2026-10-20 · upstream hash matched
Actions Try in browser→
Agents: curl -H "Accept: text/markdown" this URL
→ 186 tokens · Vary: Accept

Critical gotchas

Authentication uses the non-standard xi-api-key header, not Authorization: Bearer. Sending a Bearer token returns HTTP 401.

Text-to-speech responses are raw binary audio, not JSON. Write the body to a file (--output speech.mp3) rather than parsing it.

cURL

curl -X POST 'https://api.elevenlabs.io/v1/convai/realtime/client_secrets' \  -H "xi-api-key: $ELEVENLABS_API_KEY" \  -H 'Content-Type: application/json' \  -d '{  "session": {    "type": "realtime",    "model": "eleven_realtime_v1_mini",    "instructions": "",    "output_modalities": [      "example-output-modalities"    ],    "audio": {      "input": {        "format": {          "type": "audio/pcm",          "rate": 24000        },        "transcription": {          "language": "example-language"        },        "turn_detection": {          "type": "semantic_vad",          "eagerness": "medium",          "create_response": true,          "interrupt_response": true,          "threshold": 0,          "prefix_padding_ms": 0,          "silence_duration_ms": 0,          "turn_timeout": -1        },        "pacing": "realtime"      },      "output": {        "format": {          "type": "audio/pcm"        },        "voice": "brian"      }    },    "tools": [      {        "type": "function",        "name": "example-name",        "description": "",        "parameters": {}      }    ],    "tool_choice": "auto",    "temperature": 0.7,    "max_response_output_tokens": 4096,    "max_duration_seconds": 600,    "turn_detection": "__unset__",    "tracing": "example-tracing",    "include": [      "example-include"    ],    "parallel_tool_calls": true,    "reasoning": {},    "truncation": "example-truncation",    "prompt": {}  },  "expires_after": {    "anchor": "created_at",    "seconds": 0  }}'

Parameters

Name In Type Required Description
session body object No Request body field session.
expires_after body object No Request body field expires_after.

Response 200 OK

{
  "value": "string",
  "expires_at": 0,
  "session": {
    "type": "realtime",
    "model": "eleven_realtime_v1_mini",
    "instructions": "",
    "output_modalities": [
      "string"
    ],
    "audio": {
      "input": {
        "format": {
          "type": "audio/pcm",
          "rate": 24000
        },
        "transcription": {
          "language": "string"
        },
        "turn_detection": {
          "type": "semantic_vad",
          "eagerness": "medium",
          "create_response": true,
          "interrupt_response": true,
          "threshold": 0,
          "prefix_padding_ms": 0,
          "silence_duration_ms": 0,
          "turn_timeout": -1
        },
        "pacing": "realtime"
      },
      "output": {
        "format": {
          "type": "audio/pcm"
        },
        "voice": "brian"
      }
    },
    "tools": [
      {
        "type": "function",
        "name": "string",
        "description": "",
        "parameters": {}
      }
    ],
    "tool_choice": "auto",
    "temperature": 0.7,
    "max_response_output_tokens": 4096,
    "max_duration_seconds": 600,
    "tracing": "string"
  }
}
Get a free ElevenLabs API key → sponsored

Affiliate link - we may earn a commission, at no extra cost to you.