Voice cloning
Clone a voice from a few recordings, then use it on text-to-speech requests. Only your organization can use its clones.
Clone a voice
POST /v1/voices
Send HTTPS links to clean recordings of one speaker. One to two minutes in total works best. For local files, upload them first and pass the hosted URLs. consent_attested confirms you have the speaker’s permission. The call can take over a minute.
clone a voice
POST https://api.dev.pika.art/v1/voicesauthorization: Bearer $PIKA_API_KEYcontent-type: application/json{"name": "Narrator","sample_urls": ["https://example.com/narrator.mp3"],"consent_attested": true}HTTP/1.1 201 Created{"voice_id": "voice_3f9c2a1e8b7d4c6f9a0e5b2d7c1f8a4e","name": "Narrator","kind": "cloned","provider": "elevenlabs","created_at": 1789286400}
Speak with it
pass voice_id as voice
Put the voice_id in voice on a text-to-speech request. A clone only works on models from the provider it was cloned on.
speak with a clone
POST https://api.dev.pika.art/v1/media/elevenlabs/eleven-v4/text-to-speechauthorization: Bearer $PIKA_API_KEYcontent-type: application/json{"text": "Welcome back.","voice": "voice_3f9c2a1e8b7d4c6f9a0e5b2d7c1f8a4e"}
Models that take a clone
- Eleven v4 Text To SpeechElevenLabs
- Eleven v4 Turbo Text To SpeechElevenLabs
List and delete
/v1/voices
| Endpoint | Does |
|---|---|
| GET /v1/voices | Stock voices, then your clones, newest first. |
| GET /v1/voices/{voice_id} | One clone. |
| DELETE /v1/voices/{voice_id} | Deletes a clone and answers 204. Queued requests that use it fail. |
Limits and errors
5 free clones, then $1 each
- Up to 100 clones per organization. At the cap, cloning answers 409, so delete one first.
- The first 5 clones are free, deleted ones included. Each one after costs $1.
- 400 means the samples couldn’t be fetched or the provider refused them.
- A request with an unknown, deleted, or another organization’s voice fails as invalid_input.