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

# Clone Voice

> Create a custom voice clone from audio samples.

## Overview

Creates a Bland TTS voice clone from one or more audio samples. Sent as `multipart/form-data`. The new voice is private to your org and immediately usable with [Speak](/api-v1/post/speak).

Two cloning engines are available, selectable per request:

* **BTTS V3** (default), single 10-second sample, 17+ languages, highest fidelity. Returned `service: "BTTS_V3"`.
* **BTTS V2**, exactly 1 WAV file, 17+ languages. Returned `service: "BTTS_V2"`.

***

## Headers

<ParamField header="authorization" type="string" required>
  Your API key for authentication.
</ParamField>

***

## Form Fields

<ParamField body="name" type="string" required>
  Display name for the voice clone. 1-30 characters. Must be unique in your library.
</ParamField>

<ParamField body="audio_samples" type="file[]" required>
  Audio file or files. Constraints depend on the engine flag (see below). WAV format recommended.
</ParamField>

<ParamField body="gender" type="string">
  `male` or `female`. Optional but recommended; helps the underlying model.
</ParamField>

<ParamField body="description" type="string">
  Free-text description. Surfaced as additional context to the model for tone and style.
</ParamField>

<ParamField body="isBTTS_V3" type="boolean">
  Use the V3 engine. Default if no engine flag is set. Pass `"true"` as a multipart string.
</ParamField>

<ParamField body="isBTTS_V2" type="boolean">
  Use the V2 engine instead of V3. Pass `"true"` as a multipart string.
</ParamField>

***

## Engine constraints

Each engine validates `audio_samples` differently. Mismatched files will return a `Validation Error` before the clone is created.

<Accordion title="V3 (default)">
  * Exactly 1 audio file.
  * Roughly 10 seconds is ideal.
  * Max 10 MB.
  * 17+ languages supported.
</Accordion>

<Accordion title="V2 (isBTTS_V2=true)">
  * Exactly 1 audio file.
  * Roughly 10 seconds is ideal.
  * Max 10 MB.
  * 17+ languages supported.
</Accordion>

***

## Response

Returns `200 OK` with the new voice on success.

<ResponseField name="data.voice_id" type="string">
  UUID of the new voice clone. Use it as `voice_id` in [Speak](/api-v1/post/speak).
</ResponseField>

<ResponseField name="data.name" type="string">
  The display name you provided.
</ResponseField>

<ResponseField name="errors" type="null | array">
  `null` on success.
</ResponseField>

<ResponseExample>
  ```json Response theme={null}
  {
    "status": 200,
    "data": {
      "voice_id": "4cc89edf-c4b7-4df8-98c5-f8548fcd7c62",
      "name": "DocTestClone"
    },
    "errors": null
  }
  ```

  ```json Validation Error theme={null}
  {
    "status": 400,
    "data": null,
    "errors": [
      { "error": "Validation Error", "message": "No files provided for voice cloning." }
    ]
  }
  ```

  ```json Voice Limit Exceeded theme={null}
  {
    "status": 400,
    "data": null,
    "errors": [
      { "error": "Limit Exceeded", "message": "You have reached the maximum number of voices for your plan." }
    ]
  }
  ```
</ResponseExample>

***

V2 and V3 voices are single-sample by design. Use [List Voice Samples](/api-v1/get/voices-id-samples) to inspect the source sample attached to a voice.

***

Docs for agents: [llms.txt](/llms.txt)
