Voice Cloning API: Clone a Voice in One HTTP Call
Create an instant voice clone via a single POST call. Uploads the audio, runs preprocessing, and returns pre-generated sample clips of the cloned voice - all in one request.
This is the recommended way to clone voices programmatically. It replaces the older two-step flow and the model-specific /lightning-large/add_voice endpoint, which are both now deprecated.
Voice clones made on lightning-v3.1 will stop working on Nov 30, 2026 (18:30 UTC). Create them again with model=lightning-v3.1-pro. See Deprecation notices.
Requirements
- A Smallest AI API key - grab one from the API Keys page.
- A clean audio sample, 5–15 seconds, under 5 MB. Supported types:
.mp3,.wav,.mp4,.webm.
Create the clone
Request fields
Response shape
Use data.voiceId directly in any TTS call:
List your clones
Returns every clone on your organization along with modelIds (compatible models), status, language, and creation time.
Check model compatibility before using a clone
The modelIds array in the list response tells you which TTS models a clone works with. Check it before passing voice_id to a TTS call:
Clones created via the current POST /waves/v1/voice-cloning endpoint produce voices for the pool you pass in model. Pair the resulting voice_id with the matching TTS model; check modelIds on the clone if unsure. The older POST /waves/v1/lightning-large/add_voice endpoint (deprecated) only produces lightning-large-compatible voices, which will not work with the current pools.
If you see a short (~100–200 byte) WAV response from a TTS request with a cloned voice, the most common cause is using a lightning-large-only clone on a current model. Check modelIds on the clone.
Delete a clone
The current public delete endpoint lives at /waves/v1/lightning-large despite the path suggesting otherwise - it deletes any voice clone on your organization regardless of the underlying model.
Errors
Migrating from the legacy endpoint
If you’re currently using POST /waves/v1/lightning-large/add_voice, switch to POST /waves/v1/voice-cloning:
- Same auth -
Authorization: Bearer $SMALLEST_API_KEY. - Same multipart shape for
displayName+file. - New optional fields -
language,description,accent,tags. - Response includes
samples- pre-generated audio clips of the cloned voice, which the legacy endpoint did not provide. - Pass
model=lightning-v3.1-pro. Voices cloned via the legacy endpoint only worked onlightning-largeand returned empty audio on the current pools.
The legacy endpoint still works but is marked deprecated in the API reference.
Need help? Email support@smallest.ai or ask on Discord.
FAQ: voice cloning API
How much audio do I need to clone a voice?
A clean 5 to 15 second sample under 5 MB, as .mp3, .wav, .mp4, or .webm. Recording quality matters more than length; see recording guidelines.
How do I use the cloned voice in text to speech?
Pass the returned voiceId as voice_id in any TTS call, with the TTS model that matches the pool you cloned onto. The example above shows the full round trip.
Can I clone onto the premium voice pool?
Yes. Pass model=lightning-v3.1-pro when creating the clone, then use the voice with the lightning_v3.1_pro TTS model.
Why does my cloned voice return a tiny or empty audio file?
Almost always a lightning-large-only clone used on the current pool. Check the clone’s modelIds in the list response and recreate it on lightning-v3.1-pro if needed.