HeyGen create template via API: Sume has video_inputs, not templates

HeyGen now creates templates over the API and binds variables by element_id. Sume has no stored template object; send ordered video_inputs on each request.

4 min readSume
All posts

HeyGen's October 2026 changelog adds endpoints to create a Studio template over the API: POST /v3/templates promotes a video to a private template, and PUT /v3/templates/{template_id}/variables binds avatars, voices, images, video and audio by element_id. Sume's docs describe no stored template object; the equivalent is sending ordered video_inputs on each Avatar Video request.

HeyGen details are from its API changelog. Sume details are from Generate avatar video, read 2026-10-01.

How does HeyGen's template flow work?

Make one video, promote it to a template, declare its variables, then generate a video per viewer with POST /v3/templates/{template_id}. GET on a template returns a composition where each part has an id and bindable_as, plus an edit_version. Exact phrases can become {{name}} placeholders through match.

What replaces a template on Sume?

The request body itself. POST /v1/avatar-1.0/talking-video takes either a script or ordered video_inputs, never both. Your code is the template: keep the scene list in your repo and substitute text before each call.

Template concepts mapped to Avatar Video fields, Sume docs read 2026-10-01.
NeedHeyGen templateSume Avatar Video
Reusable layoutStored templateYour own video_inputs array
Per-viewer text{{name}} placeholderString substitution in script or input_text
Scene lookBound image or videoscene prompt or photo, or per-scene background
Pause beatNot covered herevoice.type: "silence" with duration

What are the limits of that approach?

Current execution supports one resolved avatar per final video, and the total planned duration must land in the 4 to 60 second window. Multi-scene input is meant for hooks, demos or silence beats in one composed video. A stored, editable template with version control is not something the docs describe.

How do I keep per-viewer renders safe to retry?

Send an Idempotency-Key on every submit; see the idempotency comparison.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume