> ## Documentation Index
> Fetch the complete documentation index at: https://docs.liveavatar.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom TTS Integration

> Use your own ElevenLabs voice with LiveAvatar FULL Mode

Integrate your own ElevenLabs API keys and voice configurations with LiveAvatar FULL Mode sessions.

<Warning>
  Custom ElevenLabs TTS is not available on ElevenLabs free-tier API keys. ElevenLabs blocks third-party usage on free plans. You must have a paid ElevenLabs subscription to use this feature.
</Warning>

## When to use this

* You have existing ElevenLabs voice configurations you want to use
* You need enhanced control over voice selection and settings

## Setup

### Step 1: Register your ElevenLabs API key

```bash theme={null}
curl -X POST https://api.liveavatar.com/v1/secrets \
  -H "X-API-KEY: <YOUR_API_KEY>" \
  -H "content-type: application/json" \
  -d '{
    "secret_type": "ELEVENLABS_API_KEY",
    "secret_value": "<your_elevenlabs_api_key>",
    "secret_name": "My ElevenLabs Key"
  }'
```

Returns a `secret_id`.

### Step 2: Import your voice

Create a voice configuration using your ElevenLabs voice ID and stored secret:

```bash theme={null}
curl -X POST https://api.liveavatar.com/v1/voices/third_party \
  -H "X-API-KEY: <YOUR_API_KEY>" \
  -H "content-type: application/json" \
  -d '{
    "secret_id": "<secret_id>",
    "voice_id": "<elevenlabs_voice_id>"
  }'
```

You can find your ElevenLabs voice IDs through the [ElevenLabs dashboard](https://elevenlabs.io) or their API.

The imported voice will appear in your LiveAvatar voice listing.

### Step 3: Start a session with your voice

Use the `voice_id` from the import when creating your session token:

```json theme={null}
{
  "mode": "FULL",
  "avatar_id": "<avatar_id>",
  "avatar_persona": {
    "voice_id": "<your_imported_voice_id>",
    "context_id": "<context_id>"
  }
}
```

LiveAvatar uses your ElevenLabs credentials for audio generation during the session.

<Warning>
  The voice becomes invalid if the underlying ElevenLabs voice is deleted or the associated secret is removed.
</Warning>
