Generate Speech
Generate speech from the voice identified by voice_id.
The request stays open until speech generation finishes. The response contains a URL to a 44.1 kHz mono WAV file.
Voice and settings
Use an ACTIVE HeyGen Voice clone in your workspace. heygen-voice-1-turbo speaks instant clones at lower latency and refuses professional clones. API-key billing accumulates fractional usage. OAuth requests, including MCP calls, are rounded up per request to whole billing units, so their effective cost can be higher.
seed, speed, pitch_shift, and pitch_variance apply only to professional clones. Instant clones, including Turbo, accept and ignore these controls.
Language
Set language to the language of text. If you omit it, the language is detected from text. Successful responses include Content-Language, the language the speech was generated in.
Limits and request ID
The rate limit is 30 requests per minute per workspace member.
Successful responses include X-Request-Id. Use this ID when you contact support about the request.
Authorizations
HeyGen API key. Obtain from your HeyGen dashboard.
Body
Identifier of the voice used for speech synthesis.
1Plain text to synthesize. A professional voice clone takes pauses (seconds, up to 5 per pause, e.g. ); other SSML, and break tags for an instant voice clone, are not supported.
1 - 5000heygen-voice-1: instant and professional voices. heygen-voice-1-turbo: heygen-voice-1 instant voices only, at lower latency.
heygen-voice-1, heygen-voice-1-turbo Language code of text. Regional tags normalize to their supported base language, such as en-US to en. Omit it to detect the language from text. A confident reading that matches the letters of text is used, and the request fails with invalid_parameter if HeyGen Voice does not speak that language. Otherwise the first of these that HeyGen Voice speaks is used: the language the voice was created in, if text is written in that language's script; a less certain reading that a second reading of text without its numbers and brand names agrees with; the usual language of the script text is mostly written in, such as English for Latin letters; and, only when that script has no usual language, the reading itself. If none of them applies, the request fails with invalid_parameter. The Content-Language response header names the language used.
1Expressiveness boost for instant voices on HeyGen Voice 1.0, from 0.0 to 1.0. Omit for professional voices.
0 <= x <= 1Optional best-effort deterministic generation seed for professional clones. Ignored for instant clones.
0 <= x <= 4294967295Speech speed multiplier for professional clones. Ignored for instant clones, including Turbo.
0.75 <= x <= 1.25Pitch shift in semitones for professional clones. Ignored for instant clones.
-4 <= x <= 4Pitch variation multiplier for professional clones; 1.0 preserves the voice default. Ignored for instant clones.
0.5 <= x <= 2Whether to include original_characters in the response: the start and end time of each character of text.
Response
Successful response

