Submit video task
Unified submission endpoint for async video generation: shared by Seedance, MiniMax Hailuo, Kling and Grok Imagine, dispatched by model and key group.
/v1/video/generateSeedance, MiniMax, Kling and Grok video share this single submission endpoint. HopBase routes each request to the matching family based on the request's model and the key's group. Request bodies and status values differ by family; select a family below to see its parameters. After submitting, poll with Get video task.
At submission, the check is "available balance − estimated cost of in-progress tasks − estimated cost of this task"; if that is insufficient, it returns 402 insufficient_balance. Failed tasks are never billed; tasks cannot be cancelled; a Seedance task unfinished after 24 hours is automatically marked failed (The task did not finish within 24 hours and was terminated automatically). Do not resubmit after a successful submission: every resubmission is another billed task.
Wan 3.0 / HappyHorse use the native video path POST /api/v1/services/aigc/video-generation/video-synthesis (no /v1 prefix); see Wan and HappyHorse. Gemini Omni returns synchronously; see Gemini Omni video.
Headers
Bearer sk-…: an API key created in the console under API keys; its group must include the requested model
Body parametersJSON
frames, seed, camera_fixed, draft, draft_task and service_tier return 400; size, seconds, n and aspect_ratio are not Seedance parameters and are ignored without an error. Request body cap 64 MB.Seedance model ID; China groups also accept overseas dreamina-* IDs as compatibility aliases (4K is still rejected)
Valuesdoubao-seedance-2-0-260128-adoubao-seedance-2-0-fast-260128-adoubao-seedance-2-0-mini-260615-adoubao-seedance-2-5-260628-adreamina-seedance-2-0-260128dreamina-seedance-2-0-epdreamina-seedance-2-0-fast-260128dreamina-seedance-2-0-fast-epdreamina-seedance-2-0-fast-hcdreamina-seedance-2-0-hcdreamina-seedance-2-0-mini-260615dreamina-seedance-2-0-mini-epdreamina-seedance-2-0-mini-hcdreamina-seedance-2-5-260628
Prompt and reference media. Put the prompt in a text element; sending only a top-level prompt is rejected (missing content)
Items≥ 1MaxReference images: 2.0 ≤ 9, 2.5 ≤ 30; videos: 2.0 ≤ 3, 2.5 ≤ 10; audio: 2.0 ≤ 3 (must be paired with an image or video), 2.5 ≤ 10; at most 2 first/last frames
Writing it as image / input_image returns 400
Valuestextimage_urlvideo_urlaudio_url
Prompt when type: text; must not be empty
Must be an object {"url": …}; images may be base64 Data URLs, and Seedance 2.0 also accepts a ready asset://<asset ID>
HTTP(S) URL or Data URL
Video does not accept Data URLs
HTTP(S) URL or Data URL
Audio may be a Data URL
HTTP(S) URL or Data URL
Images: first_frame / last_frame / reference_image; if omitted, video defaults to reference_video and audio to reference_audio. A single image without a role is treated as the first frame; multiple images must set it; first/last frames cannot be mixed with reference media
2.0: 4–15 or -1 (auto); 2.5: 4–30 or -1. Defaults: 5 on 2.0, -1 on 2.5; with -1 the balance is reserved for the longest duration
Range-1–30
Available tiers vary by model (overseas 2.0 standard includes 4K; Fast / Mini only 480p / 720p; 2.5 does not support 4K)
Values480p720p1080p4k
Default"720p"
Aspect ratio
Values16:94:31:13:49:1621:9adaptive
Default"adaptive"
Defaults to true on 2.5; not filled in on 2.0, so pass it explicitly
Defaults to false on 2.5; not filled in on 2.0, so pass it explicitly
Returns task.last_frame_url when the last frame is available; defaults to true on 2.5, not guaranteed on 2.0
Task priority
Range0–9
Seconds; does not change the 24-hour fallback
Range3600–259200
HTTP(S) URL; not a substitute for polling
1–64 ASCII characters
Length1–64 chars
Exact ID, no aliases
ValuesMiniMax-H3MiniMax-H3-Max
Exactly 1 text element plus optional media elements; first/last frames and reference_* are mutually exclusive within one request; at most 12 media items in total
Items≥ 1
Valuestextimage_urlvideo_urlaudio_url
Prompt, 1–7000 characters
JPG / JPEG / PNG / WEBP / HEIC / HEIF, ≤ 30 MB each, sides 256–5760 px, aspect ratio between 5:2 and 2:5
HTTP(S) URL or Data URL
H3 only; H.264 / H.265, ≤ 50 MB and 2–15 seconds per clip, ≤ 15 seconds in total
HTTP(S) URL or Data URL
H3 only; requires an image or video reference as well; WAV / MP3, ≤ 15 MB and 2–15 seconds per clip
HTTP(S) URL or Data URL
Images: first_frame / last_frame (≤ 1 each) or reference_image (H3 only, ≤ 9); video must use reference_video (≤ 3), audio must use reference_audio (≤ 3). An image without a role is treated as the first frame
H3: 768P / 2K; H3-Max: 480P / 768P. Also determines the billing tier
Values480P768P2K
Whole seconds; H3: 4–15; H3-Max: 5–15. Auto duration is not supported
Range4–15
Required for text-to-video only, and cannot be adaptive; multimodal references default to adaptive; first/last-frame mode always outputs adaptive
Values21:916:94:31:13:49:16adaptive
Adds an AI-generated content watermark to the output
A video ID from the model matrix; image model IDs return 400
Valueskling-avatarkling-lip-synckling-o1kling-v1-6kling-v2-0kling-v2-1kling-v2-5-turbokling-v2-6kling-v2-6-motion-controlkling-v3kling-v3-motion-controlkling-v3-omnikling-v3-turbo
Required when there is no media; may be empty only with images / videos; not needed for lip sync
Length≤ 2500 chars
Ranges per model are in the Kling model matrix; kling-v2-6 accepts only 5 / 10. Do not send it for motion control, avatar or lip sync; the duration comes from the media
Default5
Case-insensitive; available tiers per model are on the Kling page
Values720p1080p2k4k
Default"720p"
The gateway does not fill it in when omitted
Values16:99:161:1
Whether to generate sound; see the Kling page per model
Defaultfalse
First/last frames or reference images; required for motion control / avatar; counts per the model matrix
Public HTTP(S) URL
Kling asset ID; use either this or url
Required for ordinary generation: first_frame / last_frame / reference
Reference / edit video, ≤ 1 item; required for motion control
Items≤ 1
Public HTTP(S) URL
Kling asset ID; use either this or url
Required: feature / base
Keep the original audio
Custom subjects, only on kling-v3-turbo, kling-v3, kling-v3-omni
Subject ID (required)
Name
Shots, ≤ 6 segments; only on kling-v3, kling-v3-omni
Shot mode
Shot segments
Required for avatar / lip sync; motion control may pass character_orientation; ordinary video models return 400 for any key
Exact match
Use either this or content
Use either this or prompt; contains only text elements, and the text must not be empty
Prompt
With reference_images, only 480p / 720p; billed per second at that tier
Values480p720p1080p
Billed by the output duration_seconds; server default 5
Range1–15
Server default 16:9; passing ratio is rejected
Values1:116:99:164:33:43:22:3
Publicly reachable HTTP(S) only; Data URLs / asset:// are not accepted; each reference image is billed separately
Public HTTP(S) URL
Task priority
Range0–9
Seconds; does not change the 24-hour stale-task fallback
Range3600–259200
Valid HTTP(S) URL; not a substitute for polling
1–64 ASCII characters, passed through as-is
Length1–64 chars
Returns
200Seedance / Grok submitted
202MiniMax / Kling submitted
HopBase task ID, vt…
Model ID
pending or processing
Always empty; query for results
RFC 3339
Task ID: MiniMax mmt…, Kling kt…
video.generation.task
Model ID
queued
Billing tier (MiniMax)
Errors
error.message, no codeinsufficient_balance: the balance does not cover in-flight reservations plus this estimate; when a member quota is short, message starts with Insufficient quota:The current group does not support the requested model: <model ID>upstream_timeout, media validation timed out, please retry later); retry the same request later