HeyGen provides 300+ pre-built voices across dozens of languages, plus the ability to generate custom AI voices from a text description. This guide walks through the full workflow: browse → design → use.Documentation Index
Fetch the complete documentation index at: https://developers.heygen.com/llms.txt
Use this file to discover all available pages before exploring further.
Step 1: Browse Available Voices
UseGET /v3/voices to list available voices with cursor-based pagination. Filter by language, gender, type, or engine.
Response
Query Parameters
| Parameter | Type | Description |
|---|---|---|
type | string | "public" for the shared library or "private" for your cloned voices. Defaults to "public". |
engine | string | Filter by voice engine (e.g. "starfish"). Only voices compatible with that engine are returned. |
language | string | Filter by language name (e.g. "English", "Spanish", "Japanese"). |
gender | string | Filter by "male" or "female". |
limit | integer | Results per page (1–100). Defaults to 20. |
token | string | Opaque cursor token for the next page. |
Response Fields
| Field | Type | Description |
|---|---|---|
voice_id | string | Pass this as voice_id to video creation endpoints. |
name | string | Display name of the voice. |
language | string | Primary language. |
gender | string | Gender of the voice. |
preview_audio_url | string or null | URL to a short audio preview — play to audition the voice. |
support_pause | boolean | Whether the voice supports SSML pause/break tags. |
support_locale | boolean | Whether the voice supports locale variants. |
type | string | "public" or "private". |
Step 2: Design a Custom Voice (Optional)
If none of the pre-built voices fit, usePOST /v3/voices to generate up to 3 AI voice options from a text description. The endpoint returns a ranked list — pick the one that fits best.
Response
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
prompt | string | Yes | Text description of the desired voice — accent, tone, pace, gender, personality. Max 1000 characters. |
gender | string | No | Filter results by "male" or "female". |
locale | string | No | BCP-47 locale tag to filter by (e.g. "en-US", "pt-BR"). |
seed | integer | No | Controls which batch of results to return. 0 returns the top matches, 1 the next batch, etc. Same prompt + seed always returns the same voices. |
Prompting tips for voice design:
- Specify gender and approximate age (
"young woman in her 20s","mature male voice") - Describe the accent (
"American Midwest","slight French accent") - Set the tone (
"warm and friendly","authoritative","playful") - Mention pacing (
"measured and calm","energetic and fast") - Reference a use case (
"suitable for corporate training","good for storytelling")
Step 3: Use a Voice in Video Creation
Once you have avoice_id, pass it when creating a video.
With Video Agent
With Direct Video Creation
Set the voice alongside your avatar and script:Voice Settings
When usingPOST /v3/videos, you can fine-tune playback via voice_settings:
| Field | Type | Range | Description |
|---|---|---|---|
speed | number | 0.5 – 1.5 | Playback speed multiplier. 1.0 is normal speed. |
pitch | number | -50 – +50 | Pitch adjustment in semitones. |
locale | string | BCP-47 | Locale/accent hint for multi-lingual voices. |

