Interactive sessions give you a multi-turn conversation with the Video Agent. Instead of going straight to rendering, the agent pauses at checkpoints (like storyboard review) so you can provide feedback, adjust direction, and approve before the final video is generated.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.
Session lifecycle
Create a session
POST /v3/video-agents with "mode": "chat" — Send your initial prompt. The agent begins processing.Poll for status
GET /v3/video-agents/{session_id} — Check progress and read agent messages. The session pauses at reviewing status.Review and iterate
POST /v3/video-agents/{session_id} — Send feedback or approve the storyboard. Repeat as needed.Session statuses
| Status | Description |
|---|---|
thinking | Agent is working (scripting, composing scenes, preparing storyboard). |
waiting_for_input | Agent is paused, waiting for your input. |
reviewing | Agent is paused at a review checkpoint. Review the storyboard and messages. |
generating | Storyboard approved — video is rendering. |
completed | Video is ready. Retrieve it via GET /v3/videos/{video_id}. |
failed | Something went wrong. Check messages for error details. |
Create a session
"mode": "chat" to enable interactive mode.
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
prompt | string | Yes | Initial message to the agent (1–10,000 characters). |
mode | string | No | Set to "chat" for interactive sessions. Defaults to "generate" (one-shot). |
avatar_id | string | No | Specific avatar look ID. |
voice_id | string | No | Specific voice ID for narration. |
orientation | string | No | "landscape" or "portrait". Auto-detected if omitted. |
files | array | No | Up to 20 file attachments (asset_id, url, or base64). See Upload Assets. |
auto_proceed | boolean | No | If true, skip interactive review and go straight to video generation. Default: false. |
callback_url | string | No | Webhook URL for completion/failure notifications. |
callback_id | string | No | Caller-defined ID echoed back in the webhook payload. |
Example
Response
Poll session status
video_id once generation starts.
Response
Response fields
| Field | Type | Description |
|---|---|---|
session_id | string | Session identifier. |
status | string | Current status: thinking, waiting_for_input, reviewing, generating, completed, failed. |
progress | integer | Progress percentage (0–100). |
title | string | null | Agent-generated session title. |
video_id | string | null | Video ID once generation starts. Use with GET /v3/videos/{video_id}. |
created_at | integer | Unix timestamp of session creation. |
messages | array | Most recent visible messages (max 40, newest-first). |
Message object
| Field | Type | Description |
|---|---|---|
role | string | "user" or "model". |
content | string | Message text. |
type | string | "text", "resource", or "error". |
created_at | integer | null | Unix timestamp. |
resource_ids | array | null | Resource IDs resolvable via GET /v3/video-agents/{session_id}/resources/{resource_id}. |
Send a follow-up message
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
message | string | Yes | Your message to the agent (1–10,000 characters). |
avatar_id | string | No | Override avatar for this message. |
voice_id | string | No | Override voice for this message. |
files | array | No | Additional file attachments (max 20). |
auto_proceed | boolean | No | If true, skip remaining review steps and generate the video immediately. Default: false. |
Example: Request changes
Example: Approve and generate
Response
GET /v3/video-agents/{session_id} to see the agent’s response and updated status.
Get a session resource
resource_ids arrays.
Example
Response
Resource object
| Field | Type | Description |
|---|---|---|
resource_id | string | Unique identifier. Referenced in message resource_ids. |
resource_type | string | Type: image, video, draft, avatar, voice, etc. |
source_type | string | null | "generated" or "user_uploaded". |
url | string | null | Primary media URL. |
thumbnail_url | string | null | Thumbnail URL. |
preview_url | string | null | Preview URL. |
created_at | integer | null | Unix timestamp. |
metadata | object | null | Type-specific metadata. |
Stop a session
Response

