---
title: "Clone a voice from an audio or video sample"
method: POST
path: "/v2/voices"
tags: ["Voices"]
---

# Clone a voice from an audio or video sample

`POST /v2/voices`

Creates a custom voice and returns its `id` for use in `POST /v2/tts` and generation text inputs. Provide either a Sync asset id (`assetId`) or a Sync-hosted `url` - upload local files via `POST /v2/assets/upload` first. Video sources have their audio track extracted automatically (first 2 minutes). Clone slots are limited per plan.

## Request body

- union
  - object
    - `name` string, required
    - `provider` 'elevenlabs', required
    - `url` string, uri, required
    - `assetId` string, uuid
  - object
    - `name` string, required
    - `provider` 'elevenlabs', required
    - `url` string, uri
    - `assetId` string, uuid, required

## Response `201`

Voice cloned successfully

- ClonedVoiceDto
  - `id` string, uuid, required
  - `voiceId` string, required
  - `name` string, required

## Other responses

- `400` — Invalid or too-short voice sample
- `403` — Voice clone limit reached for your plan
- `409` — A voice with this name already exists
- `422` — Asset not found, unsupported asset type, or no extractable audio track

---

[API](https://skmtc.dev/sync/apis/sync-api-v2.md) · [All operations](https://skmtc.dev/sync/apis/sync-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sync/sync-api-v2/revisions/595901a0ee97/schema)
