Skip to main content
POST
/
v1
/
audio
/
voice-clone
Voice Clone (MiniMax)
curl --request POST \
  --url https://kymaapi.com/v1/audio/voice-clone \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "model": "<string>"
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.kymaapi.com/llms.txt

Use this file to discover all available pages before exploring further.

Synchronous endpoint. Upload a reference audio clip via multipart form, get back a voice_id you can pass to /v1/audio/speech on any MiniMax voice model.
curl -X POST https://kymaapi.com/v1/audio/voice-clone \
  -H "Authorization: Bearer $KYMA_API_KEY" \
  -F file=@reference.mp3 \
  -F name="brand-narrator"

Request

multipart/form-data body.
file
file
required
Reference audio. MP3, WAV, or M4A. Max 10 MB. MiniMax recommends 10 seconds to 5 minutes; longer clips don’t improve clone quality and waste upload bandwidth.
name
string
Optional human-readable label, max 64 chars. Surfaced in the response and stored alongside the ownership row for your reference.
model
string
default:"minimax-voice-clone"
Voice clone SKU. Currently only minimax-voice-clone is supported.

Response

200 OK JSON.
{
  "voice_id": "kyma_3f8e2a1b4c9d7e60",
  "name": "brand-narrator",
  "model": "minimax-voice-clone",
  "cost_usd": 2.10,
  "balance_usd": 47.90
}
FieldWhat
voice_idUse this in /v1/audio/speech voice_id field. Namespaced as kyma_<rand>.
nameEcho of the label you sent (or null).
cost_usdFlat charge applied ($2.10).
balance_usdRemaining balance after settle.
X-Kyma-Model, X-Kyma-Cost-USD, and X-Kyma-Balance-USD headers are also set.

Pricing

Flat $2.10 per cloned voice. One-time charge — once cloned, the voice_id is reusable in unlimited TTS calls.

Ownership

Cloned voice IDs are gated per Kyma user. If user A passes user B’s voice_id to /v1/audio/speech, the request returns 403 voice_not_owned. Voice IDs that aren’t on file are assumed to be MiniMax system voices (browseable by everyone).

Errors

Statuserror.codeWhen
400not_a_voice_clone_modelmodel is not a clone SKU
400invalid_requestmissing file, invalid form data
402insufficient_creditsbalance below $2.10
413invalid_requestaudio file > 10 MB
415invalid_requestaudio format not MP3/WAV/M4A
500ownership_write_failedclone succeeded but ownership row insert failed (no charge applied; safe to retry)
502provider_errorupstream MiniMax failure

See also