Retrieve available TTS voices
July 4, 2025
Table of contents
This endpoint retrieves a list of available text-to-speech voices from HeyGen.
https://api.useapi.net/v1/heygen/tts/voices?β¦
Request Headers
Authorization: Bearer {API token}
API token
is required, see Setup useapi.net for details.
Query Parameters
email
is optional when only one account configured.
However, if you have multiple accounts configured, this parameter becomes required.page
is optional, defaults to1
for paginationlimit
is optional, defaults to29
, maximum10000
language
is optional, filter voices by language namevoice_id
is optional, when specified returns details for a specific voice
Responses
-
Voice List Response (when
voice_id
is not specified):{ "list": [ { "voice_id": "en-US-AriaNeural", "default_voice_engine": "azure", "voice_engines": ["azure", "elevenlabs"], "labels": ["premium", "neural"], "language": "English", "flag": "πΊπΈ", "locale": "en-US", "sort": 1, "gender": "female", "display_name": "Aria (Neural)", "preview": { "movio": "https://preview.heygen.com/voice/aria.mp3" }, "settings": { "openai_settings": { "model": "tts-1" } }, "ssml": { "style": ["chat", "customerservice", "newscast"], "lang": ["en-US"], "break_": true, "prosody": ["rate", "pitch", "volume"], "emphasis": "moderate", "say_as": ["characters", "spell-out"] }, "is_favorite": false, "support_realtime": true, "emotion_support": true, "provider": "azure", "voice_name": "en-US-AriaNeural", "support_locale": true, "status": "ACTIVE", "creator_username": null, "created_at": "2024-01-01T00:00:00Z", "source_type": null, "is_customer": false, "acl": null, "default_ac": null, "user_voice_clone_id": "" } ], "page": 1, "total": 150, "recommendations": { "category": "popular", "language": "English" } }
Specific Voice Response (when
voice_id
is specified):{ "voice": { "voice_id": "en-US-AriaNeural", "default_voice_engine": "azure", "voice_engines": ["azure", "elevenlabs"], "labels": ["premium", "neural"], "language": "English", "flag": "πΊπΈ", "locale": "en-US", "sort": 1, "gender": "female", "display_name": "Aria (Neural)", "preview": { "movio": "https://preview.heygen.com/voice/aria.mp3" }, "settings": { "clone_emotions": [ { "id": "happy", "icon": "π", "name": "Happy", "voice_source_url": "https://example.com/happy.wav", "preview_audio_url": "https://example.com/happy_preview.mp3" } ], "elevenlabs_settings": { "style": 50, "model_id": "eleven_multilingual_v2", "stability": 75, "similarity_boost": 85, "use_speaker_boost": true } }, "ssml": { "style": ["chat", "customerservice", "newscast"], "lang": ["en-US"], "break_": true, "prosody": ["rate", "pitch", "volume"], "emphasis": "moderate", "say_as": [] }, "is_favorite": false, "support_realtime": true, "emotion_support": true, "provider": "azure", "voice_name": "en-US-AriaNeural", "support_locale": true, "status": "ACTIVE", "creator_username": null, "created_at": "2024-01-01T00:00:00Z", "source_type": null, "is_customer": false, "acl": null, "default_ac": null, "user_voice_clone_id": "" }, "default_voice_engine_settings": { "elevenLabs": { "engine_type": "elevenlabs", "model_id": "eleven_multilingual_v2", "stability": 75, "similarity": 85, "style": 50, "use_speaker_boost": true }, "azure": { "engine_type": "azure" } } }
-
{ "error": "Unauthorized", "code": 401 }
Model
Voice List Response (when voice_id
is not specified):
{ // TypeScript, all fields are optional
list: {
voice_id: string
default_voice_engine: string | null
voice_engines: string[]
labels: string[]
language: string
flag: string
locale: string
sort: number
gender: string
display_name: string
preview: {
movio: string
}
settings: {
openai_settings?: {
model: string
}
}
ssml: {
style: string[]
lang: string[]
break_: boolean
prosody: string[]
emphasis: string
say_as: string[]
}
is_favorite: boolean
support_realtime: boolean
emotion_support: boolean
provider: string
voice_name: string
support_locale: boolean
status: string
creator_username: string | null
created_at: string
source_type: string | null
is_customer: boolean
acl: any | null
default_ac: any | null
user_voice_clone_id: string
}[]
page: number
total: number
recommendations: {
category: string | null
language: string
}
}
Specific Voice Response (when voice_id
is specified):
{ // TypeScript, all fields are optional
voice: {
voice_id: string
default_voice_engine: string | null
voice_engines: string[]
labels: string[]
language: string
flag: string
locale: string
sort: number
gender: string
display_name: string
preview: {
movio: string
}
settings: {
clone_emotions: {
id: string
icon: string
name: string
voice_source_url: string
preview_audio_url: string
}[]
elevenlabs_settings: {
style: number
model_id: string
stability: number
similarity_boost: number
use_speaker_boost: boolean
}
}
ssml: {
style: string[]
lang: string[]
break_: boolean
prosody: string[]
emphasis: string
say_as: any[]
}
is_favorite: boolean
support_realtime: boolean
emotion_support: boolean
provider: string
voice_name: string
support_locale: boolean
status: string
creator_username: string | null
created_at: string
source_type: any | null
is_customer: boolean
acl: any | null
default_ac: any | null
user_voice_clone_id: string
}
default_voice_engine_settings: {
elevenLabs: {
engine_type: string
model_id: string
stability: number
similarity: number
style: number
use_speaker_boost: boolean
}
azure: {
engine_type: string
}
}
}
Examples
-
curl "https://api.useapi.net/v1/heygen/tts/[email protected]" \ -H "Accept: application/json" \ -H "Authorization: Bearer β¦"
-
const token = "API token"; const email = "Previously configured account email"; const apiUrl = `https://api.useapi.net/v1/heygen/tts/voices?email=${email}`; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result});
-
import requests token = "API token" email = "Previously configured account email" apiUrl = f"https://api.useapi.net/v1/heygen/tts/voices?email={email}" headers = { "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers) print(response, response.json())