AI product demo video generator API: show one real action
Make a product demo video with Sume: run the sume-product-usage-demo Format with a packshot and one action, or animate stills and join on Timeline.

To generate a product demo video with the Sume API, call the catalog Format sume-product-usage-demo at POST /v1/formats/sume/sume-product-usage-demo/runs with the product photo in attachments and the one action to show in instruction. To build it yourself, animate a still of the product in use with POST /v1/videos, one clip per action, and join the clips with a Timeline 1.0 render.
The facts below come from Sume's Format catalog, Create a run, Video generation, and Timeline 1.0 docs and the Sume API reference, read on 2026-09-27. AI UGC ad generator API lists this Format next to the UGC ones; this post is about demos.
What does the product usage demo Format make?
sume-product-usage-demo (catalog title: Sume Product Usage Demo) is a catalog video Format. Its description reads: "Create a finished product-usage video that demonstrates one real action, texture, or result in a casual social setting. Use when the user asks for skincare application, household product demos, unbox-and-use clips, and hands-on product ads. Not for: static campaign deliverables."
That is the Format's stated aim, not a guarantee about any one clip. The recipe stays private; what you send is the brief (instruction), caller data (input), and images (attachments). The run's model field picks only the LLM that orchestrates the run; image, video, and audio models are chosen by the Format's tools.
How do I brief a demo run?
Any key with formats:write can call it. Keep each run to what the description names:
- Name one action, texture, or result in
instruction. It accepts 8000 characters, and about the first 4000 reach the run. - Attach the packshot as an
input_imagewith a public HTTPSimage_url. A run takes up to 30 images. - Put product facts in
input. It is written whole to a file the agent is told to treat as data, not instructions. - Bind an
output_schemawith aSumeMediaFile#field and name it inprimary_output_key, soprimary_output_urlis the clip.
curl -sS -X POST "https://api.sume.com/v1/formats/sume/sume-product-usage-demo/runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: acme-serum-demo-pump-v1" \
-d '{
"instruction": "Demo: one pump of the attached serum worked into the back of a hand.",
"input": { "product_name": "Acme Serum" },
"attachments": [
{ "type": "input_image", "image_url": "https://example.com/serum.png", "filename": "serum.png" }
],
"output_schema": {
"name": "acme/demo-clip/v1",
"schema": {
"type": "object",
"additionalProperties": false,
"required": ["demo_video"],
"properties": { "demo_video": { "$ref": "SumeMediaFile#" } }
}
},
"primary_output_key": "demo_video",
"generation_spend_cap_usd": 20,
"communication": { "webhook_url": "https://example.com/hooks/sume" }
}'How do I build a demo clip myself?
Animate a still of the product in use, one action per clip. Animating a photo as the first frame is covered in Product photo to video API; for a demo, what changes is the still you start from and where the clip goes next:
- Make the in-use still by sending the packshot in
input_referencestoPOST /v1/images. Itsdata[].urlis Sume-hosted and signed, and the video docs do not document passing that URL straight intoframe_images, so put the still you pick at your own public HTTPS URL. - Pass that still in
frame_imageswithframe_type: "first_frame"onPOST /v1/videos. Do not count on the packshot as an extrainput_referencesentry: when both are sent,frame_imagestakes precedence and the request is treated as image-to-video. - Length, resolution, and sound are per model: read
supported_durations,supported_resolutions, andgenerate_audioonGET /v1/videos/models. - Read the clip's
media.sume.comURL fromGET /v1/jobs/{id}/result; the Timeline step below needs it. Sume mirrors generated outputs to Sume-owned media URLs before exposing them.
How do I join several steps into one demo?
Render each step as its own clip, then place the clips as video[] slots in one Timeline 1.0 render (POST /v1/timeline-1.0/render), which returns one MP4. Every URL in the render must already be your workspace's media.sume.com artifact or asset. Transitions are covered in Video transitions API.
- A render takes 1–200 slots.
video[0].startmust be 0, and later starts must increase. - The render's audio is a voice-over spine (
audio.urloraudio.parts[]) plus an optionalsoundtrackbed.audio.mode: "silence"renders a silent audio track instead. POST /v1/timeline-1.0/planchecks the document without creating a job or reserving credits.
What does a demo cost?
On the Format path, generation is metered at API pricing rates and bounded by generation_spend_cap_usd: up to $500, null runs at $500, and 0 is rejected. The receipt's usage.debited_usd_micros is what the wallet deducted, the agent's own LLM turn included. On the direct path, each video job reserves provider list × 1.25 at submit, and each image and render bills on its own.
| Step | Call | What the docs say |
|---|---|---|
| Demo from the Format | POST /v1/formats/sume/sume-product-usage-demo/runs | 202 run receipt; spend capped per run |
| Still of the product in use | POST /v1/images | Completed images billed in full, failed ones not billed |
| One action as a clip | POST /v1/videos | Reserved at provider list × 1.25 on submit |
| Join the steps | POST /v1/timeline-1.0/render | One MP4 from 1–200 slots, $0.10 per output minute |
| Check the edit first | POST /v1/timeline-1.0/plan | Unbilled: no job, no reserve, no media download |
Sources
Related posts
More in Use cases
- AI product photography API: splash, drip and pour shots
Six Sume catalog Formats make splash, drip, pour, squeeze, and texture stills of beauty products; for anything else, edit a packshot via /v1/images.
- Before-and-after video generator API: build the reveal
Build a before-and-after video with the Sume API: the sume-before-after Format, a first-and-last-frame clip, or a Timeline wipe between two stills.
- Faceless video API: voiceover, B-roll, music, and captions
Build a faceless video with the Sume API: TTS narration as the spine, generated B-roll, a Sume-hosted music bed, and captions timed from TTS words.
- Product logo warping in image-to-video: frames vs references
In Sume's image-to-video API, a packshot in frame_images sets the first frame; input_references only guide. Check the label in extracted stills.
Written by Sume