---
title: "Create a cloned voice"
method: POST
path: "/voices"
---

# Create a cloned voice

`POST /voices`

## Request

- Base URL: `https://api.lazybird.app/v1`
- URL: `https://api.lazybird.app/v1/voices`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in query parameter `api_key`

Creates a private cloned voice from a clean 10–30 second sample of one speaker. Requires available voice cloning slots on your plan. Send either a `sample` file (multipart) or a public `sampleUrl` (JSON).

## Request body

- object
  - `name` string, required: Display name for the voice
  - `sampleUrl` string, uri, required: Publicly reachable URL of the voice sample
  - `rightsConfirmed` boolean: Confirms you own this voice or the speaker consented to cloning it (see the Acceptable Use Policy). Recorded on the voice.

## Response `201`

Voice created

- object
  - `voice` Voice
    - `id` string, required: Pass as `voiceId`. Treat as opaque.
    - `displayName` string, required
    - `description` string
    - `labels` string[]
    - `language` string: Primary locale, e.g. `en-US`
    - `secondaryLocaleList` string[]: Other locales the voice can speak via `settings.locale`
    - `gender` string
    - `styleList` string[]: Values accepted by `settings.style`
    - `previewText` string
    - `previewUrl` string, uri
    - `avatar` string
    - `scope` string: `global`, `community` or `user`
    - `published` boolean
    - `mine` boolean

## Other responses

- `400`: Invalid input
- `401`: Missing or invalid API key
- `422`: Plan limit reached (credits, voice slots or plan feature)
- `429`: Too many requests; retry after `Retry-After` seconds
- `500`: Server error

---

[API](https://skmtc.dev/lazybird/apis/lazybird-speech-api.md) · [All operations](https://skmtc.dev/lazybird/apis/lazybird-speech-api/llms.txt) · [OpenAPI document](https://skmtc.dev/lazybird/apis/lazybird-speech-api/revisions/aaa34f32852f?raw)
