Key capabilities
Output specifications
Workflow
Examples
[!WARNING] Read this before using the examples below. Through the Upmore gateway (/v1/video/generations), the example bodies on this page do not work as-is: top-levelcontent,duration,generate_audio,ratio, … are envelope fields, and onlymodel,prompt,images,secondsandmetadataare honored. See Passthrough viametadata— that is the format that actually reaches the model.
Passthrough via metadata
The gateway forwards everything inside metadata to the model verbatim — this is how you use the full native Seedance API (roles, duration, all options) through Upmore. Send a JSON body like this:
- Images go in
metadata.contentwith arole, not in top-levelimages. Top-levelimagesare forwarded as plain reference images withoutrole, so first-frame/last-frame locking and character references do not work through that path. Ifmetadata.contentis present, it replaces any top-levelimagesentirely — do not mix the two. - Duration goes in
metadata.duration. A top-leveldurationfield is dropped by the gateway envelope; onlymetadata.duration(or top-levelsecondsas a string) controls the video length. Sending"duration": 45at the top level silently falls back to the model default. - The prompt goes in the top-level
promptfield. It is injected into the content array as the single text item; text items insidemetadata.contentare dropped.metadata.modelis ignored (removed before passthrough). - Use a JSON body, not multipart form-data — the
contentarray only round-trips correctly as JSON. return_last_frameis currently not usable through this endpoint: the model generates the last frame, but task polling only returnsvideo_url.- Billing is unaffected: resolution tiers and video-input surcharges are read from
metadata, and settlement recalculates from the actual token usage reported by the model.
Text-to-video
Multimodal reference (image + video + audio)
cURL
Video editing
cURL
Web search enhanced (text-to-video only)
cURL
Parameters
[!NOTE] The table above documents the native Seedance parameters (as carried insidemetadata). Through the gateway envelope, pass each of them asmetadata.<name>— e.g.metadata.duration,metadata.content[].role— as described in Passthrough viametadata.
Input modes
Note: First frame, first+last frame, and multimodal reference are mutually exclusive — do not mix them in the same request.
Resolution pixel values
API Reference
View the interactive API playground.