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.Generate the video
Send a message with
auto_proceed: true or approve the storyboard. The session moves to generating, then completed. Fetch the final video with GET /v3/videos/{video_id}.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
Full schema:POST /v3/video-agents. Pass "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 and POST /v3/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
Full schema:GET /v3/video-agents/{session_id}. Returns the current session status, progress percentage, chat messages, and the 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
Full schema:POST /v3/video-agents/{session_id}. Send feedback, request changes, or approve the storyboard. The agent processes your message and updates the session.
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
Full schema:GET /v3/video-agents/{session_id}/resources/{resource_id}. Retrieve a specific resource by ID — storyboard images, draft videos, selected avatars, and voices are all exposed as resources. Resource IDs are referenced in message resource_ids arrays. To list all videos generated by a session, use GET /v3/video-agents/{session_id}/videos.
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
Full schema:POST /v3/video-agents/{session_id}/stop. Stop an in-progress agent run — the agent halts at the next checkpoint, and partial results are preserved.
Response

