Retrieve available TTS voices

July 4, 2025 (August 21, 2025)

HeyGen API has been decommissioned. Currently we do not have plans to re-release it and recommend switching to Mureka API for speech and music generation.

Table of contents

  1. Request Headers
  2. Query Parameters
  3. Responses
  4. Model
  5. Examples
  6. Try It

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}
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 to 1 for pagination
  • limit is optional, defaults to 29, maximum 10000
  • language is optional, filter voices by language name
  • voice_id is optional, when specified returns details for a specific voice
Responses
  • 200 OK

    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"
        }
      }
    }
    
  • 401 Unauthorized

    {
      "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())
    
Try It