Talking avatar video API: generate an avatar video from a script
POST /v1/avatar-1.0/talking-video turns a ready avatar and a 4-60 second script into a talking video. Options, captions, polling, and per-second rates.
Sume's talking avatar video API turns a ready avatar and a script into a talking video. Send POST /v1/avatar-1.0/talking-video with an avatar_handle and a script that Sume estimates at 4-60 seconds. The request runs as a job, and completed results can include public media.sume.com video artifacts.
Every detail below comes from the Generate avatar video docs page.
What do I need before I call it?
- A ready avatar, referenced by the top-level
avatar_handle. How to create a reusable AI avatar shows how to make one. - Exactly one of
scriptorvideo_inputs. This guide usesscript; ordered scenes are covered in Multi-scene avatar video API. - A script Sume estimates at 4-60 seconds inclusive. Shorten a longer script or split it into multiple jobs.
- Fetchable public HTTPS URLs for any media fields, such as
product_imageor a photo scene.
What does a request look like?
This request makes a productless 9:16 video with a prompted scene. Omit product_image for a productless avatar video, or pass it as an optional product reference.
Prefer /v1/avatar-1.0/talking-video for new integrations. The compatibility aliases are POST /v1/models/sume/avatar-1.0/talking-video/runs (canonical model-run alias) and POST /v1/models/sume/avatar-video/v1.0/runs (legacy launch alias, same body contract).
curl -X POST https://api.sume.com/v1/avatar-1.0/talking-video \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: avatar-video-001" \
-d '{
"avatar_handle": "product_host",
"script": "Meet the Acme travel mug. It fits every cup holder and every bag.",
"scene": { "type": "prompt", "prompt": "Bright kitchen counter, morning light" },
"quality": "plus",
"aspect_ratio": "9:16"
}'Which options can I set?
| Field | What it accepts |
|---|---|
quality | standard, plus, or max. plus is the default when omitted. |
aspect_ratio | 1:1, 3:4, 9:16, 4:3, or 16:9. Default 9:16. |
resolution | Currently 720p. |
scene | { "type": "prompt", "prompt": "..." } for scene direction, or { "type": "photo", "image_url": "https://..." } for a photo scene reference. |
product_image | Optional public HTTPS URL. Omit it for a productless avatar video. |
captions | Optional captions burned into the final MP4, described below. |
Which quality tier should I pick?
Per-second rates are $0.184/s standard, $0.245/s plus, $0.55/s max (no product image), and the default 5.5% agent fee applies on top. Rates with a product image are on API pricing. The docs describe the three tiers this way:
plus: the default when omitted. "Balanced quality path."standard: "Fastest Sume execution path."max: "Highest quality tier; slower turnaround."
Can Sume burn captions into the avatar video?
Yes. Optional captions burns styles into the clean final MP4 after generation, using the spoken script. It takes the same four knobs as standalone Video captions: style, optional font, a language hint, and script_text.
- Styles:
slam(default),punch,tiktok-green,korean-ad(Hangul karaoke for Korean speech), plus the Hangul identitiesweight-shift,black-outline,highlight,pill-karaoke,clip-wipe, andeditorial-emphasis. - A Korean script with
slam,punch, ortiktok-greenis rejected with400 caption_hangul_text_latin_style. Pick a Hangul style for Korean speech. - Estimated duration above 60 seconds is rejected for inline captions.
- Caption stage failures soft-fail: the avatar job can still succeed with a clean primary
video_urlandcaptions.status=failed. - Inline captions do not create a separate billed video-caption job. To caption an existing public video URL, use Video captions.
{
"captions": {
"enabled": true,
"style": "slam",
"language": "auto"
}
}How do I get the finished video?
Poll the job status, read its events, and fetch the result. Completed results can include public media.sume.com video artifacts plus public-safe preview fields such as preview_image_url and scene_previews. To list or read avatar-video resources later, call GET /v1/avatar-videos or GET /v1/avatar-videos/avatar_video_123.
curl https://api.sume.com/v1/jobs/job_123/status \
-H "Authorization: Bearer $SUME_API_KEY"
curl https://api.sume.com/v1/jobs/job_123/events \
-H "Authorization: Bearer $SUME_API_KEY"
curl https://api.sume.com/v1/jobs/job_123/result \
-H "Authorization: Bearer $SUME_API_KEY"Can I check the first frame before paying for a full render?
Yes. To review first-frame stills before paying for a full render, create an avatar video preview first, then call generate-video on the preview id. Avatar video previews: approve the first frame covers that flow.
Sources
Related posts
Written by Sume