curl examples.
Variants
All variants are async. Submit via
POST /api/v1/video/queue, then poll POST /api/v1/video/retrieve until the response body is video/mp4. See Video Generation for the general queue flow.
The “one model, four workflows” model
The reference-to-video variant (seedance-2-0-reference-to-video and its Fast sibling) is the same underlying model serving four different tasks. The model infers the task from the prompt prefix and the shape of your inputs. There is no task or workflow field — the prompt syntax is the routing.
The prompt syntax is canonical and case-sensitive: angle brackets, capital first letter, single space before the number —
<Video 1>, <Image 1>, <Audio 1>.
Workflow patterns
Reference workflow
Use the uploaded reference files as donors — subject, scene, motion, style, vocal timbre — to generate a brand-new video. Canonical prompt patterns:Refer to <Subject 1> in <Image 1> to generate a 5-second clip of the same character riding a horse through snow.Refer to the camera scene in <Video 1> to generate a similar establishing shot of a futuristic city at dawn.Refer to <Subject 1> in <Image 1> and use the timbre in <Audio 1> for the narrator describing the scene.(audio donors must be paired with at least one image or video reference — audio alone is rejected)
Edit workflow
Modify a single input video. Anything not explicitly named in the prompt is preserved. Use this when you want a localized change (subject swap, weather/color change, element add/remove) rather than a wholly new video. Canonical prompt pattern:Strictly edit <Video 1>, changing its weather from sunny to a heavy rainstorm.Add snacks such as fried chicken and pizza to the countertop in <Video 1>.Remove the red car from <Video 1>, keeping the rest of the video content unchanged.Replace the perfume featured in <Video 1> with the face cream from <Image 1>, with all original motions and camera work preserved.
<Image 1> as a visual donor for the replacement.
Extend workflow
Continue a single clip forward or backward in time. By default Seedance returns only the new content — not the original input concatenated with the extension. This is by design, for transition continuity; if you want the input clip preserved alongside the extension, say so explicitly:Extend <Video 1>, generate a dramatic chase scene through narrow alleys at dusk.Extend <Video 1> backward, the same character walking toward the camera before the original shot begins.Extend <Video 1>, start with <Video 1>, then the camera pulls back to reveal a vast landscape.
Stitch workflow (Track Completion)
Connect 2-3 input clips with AI-generated transitions. Total combined input duration must be ≤ 15 s. Canonical prompt pattern:<Video 1> + a smooth seamless cut + followed by <Video 2><Video 1>. The moment a leaf falls to the ground, it sets off a special effect of golden particles. A gust of wind blows by, leading into <Video 2>.<Video 1> + a wisp of smoke transforms into a flock of birds + followed by <Video 2> + a slow dolly-in + followed by <Video 3>
Universal prompt formula
Across all four workflows, the recommended authoring formula is:- Subject + Motion: the logical foundation — define “Who” is performing “What action”
- Environment + Aesthetics: spatial background, lighting, visual style
- Camera: explicit shot type or movement
- Audio: ambient sound effects or vocal direction for immersive output
Strictly edit <Video 1>, changing its <subject + motion + environment + ...>) produces the highest-quality outputs.
Multimodal input limits
Values below are what the Venice API accepts. Requests outside these ranges are rejected at the schema layer with a 400 before reaching inference.Images
Videos
Audio
Reference audio is supported on the R2V variants only. Each entry is forwarded to the model as a
role: "reference_audio" content item that the prompt addresses as <Audio 1>, <Audio 2>, <Audio 3> — the model uses each clip for vocal timbre, sound effects, or background music depending on how the prompt frames it. The legacy singular audio_url field maps to the same content shape and is now equivalent to passing a one-element reference_audio_urls.
Request size
The queue endpoint accepts JSON bodies up to 35 MB. Inline data URLs for large videos can push past this — for multi-clip Stitch in particular, prefer URLs over inline base64.Pricing
CallPOST /api/v1/video/quote to get a quote for a given request shape before submitting it to /video/queue. The quote endpoint is the only authoritative source; pricing details may change and shouldn’t be cached or duplicated client-side.
When reference video(s) are part of the request, also pass reference_video_total_duration (the sum of all reference clip durations in seconds) so the quote matches what /video/queue will charge:
Complete examples
All examples assumeVENICE_API_KEY is set in the environment.
Text-to-video
Image-to-video (first frame)
seedance-2-0-image-to-video (and its Fast variant) do not accept aspect_ratio — the output aspect ratio is auto-derived from the input image’s dimensions. Passing the field returns a 400 with “This model does not support aspect_ratio”. Use the T2V or R2V variants if you need explicit aspect-ratio control.Reference workflow — subject donor
Reference workflow — subject + audio donor
Edit workflow
Edit workflow with image grounding
Extend forward
Stitch (3 clips)
Polling for completion
After every queue submission, save the returnedqueue_id and poll /video/retrieve until the response body is video/mp4:
{ "status": "queued" | "running" | "failed", ... }) until the job completes, at which point the response body switches to video/mp4 bytes. See Video Generation for the full polling pattern.
Troubleshooting
At least one reference is required for this model
Reference-to-video submissions must include at least one of reference_image_urls, reference_video_urls, image_references, or video_references. Pure text-only generation isn’t a valid R2V workflow — use seedance-2-0-text-to-video instead. reference_audio_urls alone is not sufficient (see the Audio section above).
reference_video_urls must have at most 3 videos
The model caps reference videos at 3. If you need more clips, run a Stitch first (3 → 1), then use the output as a reference for a follow-up.
Per clip must be 2–15s / aggregate > 15s
Per-clip duration is [2, 15] seconds inclusive; the sum across all reference videos is also capped at 15 seconds. Trim clips client-side before submission.
Prompt routes to the wrong workflow
Workflow is inferred from prompt syntax. Common misroutings:- Wanting to Extend but writing
Refer to ...→ model treats your video as a donor, not a canvas to continue - Wanting to Stitch but writing
Refer to ...→ model picks one as the donor, ignores the others - Wanting to Edit but writing
Generate a video based on <Video 1>→ ambiguous; model may default to Reference
Strictly edit <Video 1>, ..., Extend <Video 1>, ..., <Video 1> + ... + followed by <Video 2>.
Quote doesn’t match the queued amount
If you included a reference video but didn’t passreference_video_total_duration to /video/quote, the quote and the queued amount may differ. Always pass reference_video_total_duration (sum of all reference clip durations, in seconds) when reference videos are present.
References
- Venice video queue endpoint:
POST /api/v1/video/queue - Venice quote endpoint:
POST /api/v1/video/quote - Companion guide: Reference to Video (covers Kling O3 + Grok Imagine R2V)
- Companion guide: Video Generation (queue / polling overview)