API Reference

Voice Cloning

Beta

Create a personalised voice from a short audio sample. Returns a voice_id you can pass to the TTS endpoint to synthesize speech in the cloned voice.

Endpoint

POST /v1/voice-clone/

Upload 6–30 seconds of clean reference audio as multipart/form-data. On success the response includes a voice_id that can be passed straight to TTS. Returns HTTP 201.

Authentication

Pass your API key in the xi-api-key header. See Authentication.

Form fields

FieldTypeRequiredDescription
audiofileYesReference audio (WAV, MP3, WebM). 6–30 seconds recommended. Maximum 50 MB.
namestringNoDisplay name for the cloned voice. Defaults to "Cloned Voice". Truncated to 100 characters.

Response

json
{
  "voice_id": "clone-9f3a1c4b",
  "name": "My Brand Voice",
  "status": "ready"
}

Examples

bash
curl -X POST https://sauti.finiflowlabs.com/v1/voice-clone/ \
  -H "xi-api-key: YOUR_KEY" \
  -F "audio=@reference.wav;type=audio/wav" \
  -F "name=My Brand Voice"
python
import requests

with open("reference.wav", "rb") as f:
    response = requests.post(
        "https://sauti.finiflowlabs.com/v1/voice-clone/",
        headers={"xi-api-key": "YOUR_KEY"},
        files={"audio": ("reference.wav", f, "audio/wav")},
        data={"name": "My Brand Voice"},
    )

response.raise_for_status()
print(response.json())

Limits & errors

  • 413 — audio file exceeds 50 MB.
  • 422 — invalid or too-short audio.
  • 429 — rate limit exceeded. See Rate Limits.

Try it interactively in the Voice Clone playground.