API reference: Get Video Scenes · Send Message or Request Revision · Get Video · List Session Videos
"mode": "generate" or "mode": "chat" (see Interactive Sessions).
Before · the first cut, four scenes from one prompt.
After · one edit_plan call. Scene 2 became a night-time room, scene 4 dropped the pre-order line. Scenes 1 and 3 are unchanged.
Three calls
1
Read the scenes
GET /v3/videos/{video_id}/scenes on a completed video from the session. The response lists every scene in order with its id, script, background, and elements, plus one edit_version for the whole document. Wait for the video to reach completed first: while it is still rendering this call returns 409 resource_not_ready.2
Send the edit plan
POST /v3/video-agents/{session_id} with an edit_plan array. Each item names one scene_id, the change in plain language, the scene_snapshot_video_id you read the scene from, and that snapshot’s edit_version. No message is needed. The response carries the video_id of the new working draft.3
Poll the draft
GET /v3/videos/{video_id} with the returned video_id until status is completed. The session’s own video_id stays null while the edit runs, so poll the draft directly. GET /v3/video-agents/{session_id}/videos lists every cut the session has produced.Example
The plan below produced the “after” video above. Two items, two scenes, one request.Response
heygen video scenes get <video_id> followed by heygen video-agent send <session_id> -d edit_plan.json.
What to expect
Edit with an agent
Ask a coding agent to make the change for you: it reads the scenes, picks the ones that match your description, and sends the plan.Prompt for your agent

