Create or Retrain an Audio Voice
Creates an instant voice with mode: instant from one recording, or a professional voice with mode: professional. Instant voices do not support retraining. Use POST /v3/models/audio/tts/stream for streaming speech; model defaults to heygen-voice-1. Instant voices ignore seed, speed and pitch controls. Mode is required for both creation and retraining. Retrains a professional voice when voice_id is set. The voice is PENDING while training; poll GET /v3/models/audio/voices/ until it is ACTIVE or FAILED. A new voice in professional mode needs a free professional-voice slot; each purchased slot provides five pooled trainings per monthly billing period, including the first, and failed trainings do not count. Send an Idempotency-Key to make retries safe.
Authorizations
HeyGen API key. Obtain from your HeyGen dashboard.
Headers
Optional client-supplied key for safely retrying mutations. Subsequent calls within 24 hours that share this key replay the original response — even if the request body differs slightly (a warning is logged). A retry that arrives while the original is still in flight gets a 409 request_in_progress. Keys must be 1–255 characters from [A-Za-z0-9_:.-]; a UUID is a safe default. Scope is per-endpoint and per-resource: the same key on a different route or path parameter is independent.
1 - 255^[A-Za-z0-9_\-:.]{1,255}$Body
- CreateModelAudioVoiceRequest
- CreateInstantAudioVoiceRequest
Create or retrain one model-backed audio voice.
Required voice operation mode. Use professional to create or retrain a professional voice.
professional Source recordings of the same speaker. Each item may be a public HTTPS URL, a HeyGen asset ID, or base64-encoded audio. The recordings must contain at least 20 minutes of audio and no more than 1.5 GB (1,500,000,000 bytes) in total.
1 - 10 elementsAsset input via publicly accessible HTTPS URL.
- AssetUrl
- AssetId
- AssetBase64
Existing professional voice to retrain. Omit to create a new voice.
1 - 64^\S+$Display name for a new voice. Ignored when voice_id is supplied; the existing name is retained.
1 - 256Primary language code, such as en, for a new voice. Optional. When omitted, the language of each recording is detected during training. language is null until the voice is ACTIVE. Ignored when voice_id is supplied; the existing language is retained.
1 - 32Response
Accepted — submission acknowledged; poll for completion.
Identifier returned after voice creation or retraining is accepted.

