generate_video
Start HeyGen video generation and receive a video_id instantly for self-polling via check_video. Intended for long videos; for standard requests, use create_video.
Instructions
Submit a video to HeyGen and return the video_id immediately without waiting for rendering. Use this only when you want to poll yourself with check_video (e.g. very long videos); for most cases use create_video instead. Consumes account credits.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Script the avatar speaks. Max 1500 characters per scene — split longer scripts across scenes. | |
| speed | No | Speech rate (0.5–1.5). Default: 1.0 | |
| title | No | Title shown in the HeyGen dashboard. | |
| locale | No | Locale for multilingual voices, e.g. 'es-MX'. Only for voices with support_locale: true. | |
| scenes | No | Multi-scene video: one entry per scene. Overrides the flat single-scene arguments. | |
| caption | No | Burn subtitles into the video. Default: false | |
| emotion | No | Delivery style. Only works on voices with emotion_support: true. | |
| voice_id | No | HeyGen voice ID. Use list_voices to find one. Required when text is used. | |
| audio_url | No | Public URL of a pre-recorded audio file to lip-sync instead of text+voice_id. | |
| avatar_id | No | HeyGen avatar ID. Use list_avatars to find one. Required unless talking_photo_id or scenes is given. | |
| dimension | No | Output size preset: 1080p_landscape (1920x1080), 720p_landscape (1280x720), 1080p_portrait (1080x1920), 720p_portrait (720x1280), square (1080x1080). | 720p_landscape |
| background | No | Scene background. Omit to keep the avatar's original background. | |
| avatar_style | No | Framing of the avatar. Default: normal | |
| talking_photo_id | No | Talking photo ID, as an alternative to avatar_id. Use list_avatars with include_talking_photos. |