Retrieve the list of system and cloned audio voices
December 23, 2024 (August 24, 2026)
Table of contents
Lists the voices the account can generate with — MiniMax’s built-in catalogue, or the ones you have cloned yourself.
600+ pre-built voices, tagged for filtering with tag_list:
- Languages: 40, from English, Chinese (Mandarin and Cantonese), Japanese and Korean through to Thai, Hindi, Tamil and Afrikaans
- Emotions: happy, sad, angry, fearful, disgusted, surprised, neutral, fluent
- Accents:
EN-US (General),EN-Australian,EN-British,EN-Indian,CN-Northern,CN-Southern - Ages:
Child,Young,Middle-aged,Elderly - Genders:
Male,Female
tag_list matches these strings exactly, including case. A tag it does not recognise is ignored rather than rejected, so a typo silently widens the result instead of narrowing it — Female,Middle-Aged returns the same 310 voices as Female alone, spanning every age. Check the count when you add a filter. GET speech/config returns the tags the picker UI offers, updated as MiniMax adds to them. Voices carry others besides — Documentary, Calm and Adult all match voices without appearing there.
https://api.useapi.net/v1/minimax/speech/voices/?…
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
API tokenis required, see Setup useapi.net for details.
Query Parameters
-
accountis optional when only one account configured. However, if you have multiple accounts configured, this parameter becomes required. -
tag_listis optional. Specify a comma-separated list of tags using those returned by GET speech/config to narrow down the returned results.
Example:Italian,Female -
pageandpage_sizeare optional. Use them to retrieve the next page of data when the returnedhas_morefield istrue.
Defaultpage_sizeis 500. -
is_systemis optional. Set tofalseif you want to retrieve a list of custom voices cloned via POST speech/clone-voice. The entire list of custom voices will be returned at once, thepageandpage_sizeparameters will not be used.
Default istrue(return system voices).
Responses
-
GEThttps://api.useapi.net/v1/minimax/speech/voices/?tag_list=Italian,Female{ "voice_list": [ { "voice_id": "209544421245048", "parent_voice_id": "0", "voice_name": "Diligent Leader", "tag_list": [ "Italian", "Female", "Adult", "Calm", "Standard" ], "file_id": "", "cover_url": "https://cdn.hailuoai.video/moss/staging/2024-11-21-14/moss-audio/voice_cover//1732171514479796864-207331589841022.png?x-oss-process=image/resize,p_50/format,webp", "create_time": 1732711650948, "update_time": 1732711650948, "collected": false, "voice_status": 2, "sample_audio": "https://cdn.hailuoai.video/moss/staging/2024-11-25-20/moss-audio/voice_sample_audio/1732537441602153587-official_sample_audio/4_it05.mp3", "uniq_id": "Italian_DiligentLeader", "group_id": "0" } ], "total": 1, "has_more": false } -
{ "error": "<Error message>", "code": 400 } -
{ "error": "Unauthorized", "code": 401 } -
596 Account Error
{ "error": "Your minimax account has pending error. Please address this issue at https://useapi.net/docs/api-minimax-v1/post-minimax-accounts-account before making any new API calls.", "code": 596 }
Model
{ // TypeScript, all fields are optional
voice_list: {
voice_id: string
parent_voice_id: string
voice_name: string
tag_list: string[]
file_id: string
cover_url: string
create_time: number
update_time: number
collected: boolean
voice_status: number
sample_audio: string
uniq_id: string
group_id: string
}[]
total: number
has_more: boolean
}
Examples
-
curl "https://api.useapi.net/v1/minimax/speech/voices/?account=account" \ -H "Accept: application/json" \ -H "Authorization: Bearer …" -
const token = "API token"; const account = "Previously configured account"; const apiUrl = `https://api.useapi.net/v1/minimax/speech/voices/?account=${account}`; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); -
import requests token = "API token" account = "Previously configured account" apiUrl = f"https://api.useapi.net/v1/minimax/speech/voices/?account={account}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers) print(response, response.json())