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

# Create Custom Voice

> Clone a voice from an audio sample and add it to an organization

Clones a voice from a short audio sample via Cartesia and stores it as an
organization-scoped custom voice. The returned voice can then be assigned to any
agent in the organization like a built-in Cartesia voice.

The request is `multipart/form-data` (it carries an audio file).

## Form Fields

<ParamField body="clip" type="file" required>
  The audio sample to clone. Supported types: `mp3`, `wav`, `flac`, `ogg`, `webm`. Maximum size 4 MB. A 10–30 second clip works best.
</ParamField>

<ParamField body="name" type="string" required>
  A name for the voice (unique within the organization).
</ParamField>

<ParamField body="language" type="string" default="en">
  Clone language. One of Cartesia's supported codes: `en`, `fr`, `de`, `es`, `pt`, `zh`, `ja`, `hi`, `it`, `ko`, `nl`, `pl`, `ru`, `sv`, `tr`, `tl`, `bg`, `ro`, `ar`, `cs`, `el`, `fi`, `hr`, `ms`, `sk`, `da`, `ta`, `uk`, `hu`, `no`, `vi`, `bn`, `th`, `he`, `ka`, `id`, `te`, `gu`, `kn`, `ml`, `mr`, `pa`. Stored with the voice and applied as the agent's `voice_settings.language`.
</ParamField>

<ParamField body="consent" type="string" required>
  Must be the string `"true"` to attest you have the right and consent to clone this voice.
</ParamField>

<ParamField body="organizationId" type="string" required>
  The organization the voice belongs to.
</ParamField>

<ParamField body="description" type="string">
  Optional description.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.telzino.com/v1/custom-voices" \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
    -F "clip=@/path/to/sample.wav" \
    -F "name=Jane (front desk)" \
    -F "language=en" \
    -F "consent=true" \
    -F "organizationId=ORG_UUID"
  ```
</RequestExample>

## Response

Returns the created voice as a voice option (`provider: "cartesia"`, `custom: true`). Its `id` is the Cartesia voice id to store in an agent's `voiceSettings.voice_id`.

<ResponseExample>
  ```json 201 theme={null}
  {
    "data": {
      "id": "cloned-3f2a...",
      "name": "Jane (front desk)",
      "description": "Custom cloned voice",
      "provider": "cartesia",
      "custom": true,
      "language": "en"
    }
  }
  ```
</ResponseExample>

## Errors

| Status | Meaning                                                                                                |
| ------ | ------------------------------------------------------------------------------------------------------ |
| `400`  | Missing consent, missing/empty clip, unsupported audio type, clip over 4 MB, or unsupported `language` |
| `403`  | The custom voices feature is not enabled for this organization                                         |
| `404`  | Organization not found or not accessible                                                               |
| `409`  | A voice with this name already exists in the organization                                              |
| `502`  | Voice cloning failed upstream (Cartesia)                                                               |
