Create Custom Agent Video
Kicks off a custom-agent run from a topic prompt. Returns a video_id immediately; poll GET /v3/custom-agents//videos/ for status + rendered MP4 URL. Assets (screen recording, still, wallpaper) come from POST /v3/assets/direct-uploads — pass the resulting URL in the matching *_url field.
Authorizations
HeyGen API key. Obtain from your HeyGen dashboard.
Headers
Optional client-supplied key for safely retrying mutations. Subsequent calls within 24 hours that share this key replay the original response — even if the request body differs slightly (a warning is logged). A retry that arrives while the original is still in flight gets a 409 request_in_progress. Keys must be 1–255 characters from [A-Za-z0-9_:.-]; a UUID is a safe default. Scope is per-endpoint and per-resource: the same key on a different route or path parameter is independent.
1 - 255^[A-Za-z0-9_\-:.]{1,255}$Path Parameters
Custom-agent id (e.g. chiron).
Body
Body for POST /v3/custom-agents/{agent_id}/videos.
Assets (screen recording, still, wallpaper, presenter background) come from the caller —
upload via POST /v3/assets/direct-uploads, then pass the resulting URL in the matching
*_url field here. This endpoint does NOT accept multipart file uploads.
What the video should be about.
1 - 512Device lane. Agent infers from the topic when omitted.
mac, iphone, watch neo-green / neo-purple / neo-pink / wwdc26, or a user-supplied HTTP(S) URL.
256HeyGen avatar id for the on-camera presenter.
128URL of a still image (from /v3/assets/direct-uploads) for talking-photo inference.
1024Voice id for narration (HeyGen or ElevenLabs).
128Watch lane only: <size> <finish> + <band> selector.
128Verbatim voice-over script; agent generates one when omitted.
4096URL of a screen-recording MP4 (from /v3/assets/direct-uploads or your own S3).
2048URL of an image to composite behind the matted avatar.
2048URL of a looping video to composite behind the matted avatar.
2048Response
Accepted — submission acknowledged; poll for completion.
202 response body for POST /v3/custom-agents/{agent_id}/videos.

