Video generation

Every video model HopBase sells — Seedance, Grok Imagine, MiniMax Hailuo, Kling, Wan 3.0, HappyHorse, and Gemini Omni — and the APIs that drive them.

HopBase sells six video model families. Five run on one asynchronous task API — submit to POST /v1/video/generate, then poll the task ID it returns — while Wan 3.0 and HappyHorse keep Alibaba's own DashScope paths and Gemini Omni returns video synchronously.

All video models

FamilyModel IDsAPIReference
Seedance 2.5 / 2.0dreamina-seedance-2-5-260628, dreamina-seedance-2-0-* (overseas standard / fast / mini), doubao-seedance-2-*-a (China standard / fast / mini / 2.5)Asynchronous task, POST /v1/video/generateThis page
Grok Imaginegrok-imagine-video-1.5Asynchronous task, POST /v1/video/generateGrok Imagine video
MiniMax HailuoMiniMax-H3, MiniMax-H3-MaxAsynchronous task, POST /v1/video/generateMiniMax Hailuo H3
KlingThe kling-v3, kling-v2, and kling-v1-6 lines, plus motion control, avatar, and lip syncAsynchronous task, POST /v1/video/generateKling video and image
Wan 3.0 / HappyHorsewan3.0-video, happyhorse-1.1-t2v, happyhorse-1.1-i2v, happyhorse-1.1-r2vDashScope native pathsWan 3.0 and HappyHorse
Gemini Omnigemini-omni-flash-previewSynchronous, POST /v1beta/interactionsGemini Omni video

Each family sits in its own plan group, so a key that reaches one does not reach the others. Gemini Omni video is the exception in one respect: it shares the Gemini group with Gemini chat and image, so no separate video package is needed there. Call GET /v1/models with the key you intend to use and read the complete model ID from the response before sending paid work. Model IDs are exact: no aliases or bare names are registered, and an unknown name is rejected rather than routed to a near match.

This page documents the Seedance models. Every other family has its own page — follow the links above.

Seedance 2.5 and 2.0 asynchronous task API

China and overseas variants

GroupModel IDSupported resolutionsScope
Seedance 2.0 Standard (China)doubao-seedance-2-0-260128-a480p / 720p / 1080pChina
Seedance 2.0 Fast (China)doubao-seedance-2-0-fast-260128-a480p / 720pChina
Seedance 2.0 Mini (China)doubao-seedance-2-0-mini-260615-a480p / 720pChina
Seedance 2.5 (China)doubao-seedance-2-5-260628-a480p / 720p / 1080p; integer 4-30 seconds or -1China
Seedance 2.0 Standard (Overseas)dreamina-seedance-2-0-hc
dreamina-seedance-2-0-ep
dreamina-seedance-2-0-260128
480p / 720p / 1080p / 4KOverseas
Seedance 2.0 Fast (Overseas)dreamina-seedance-2-0-fast-hc
dreamina-seedance-2-0-fast-ep
dreamina-seedance-2-0-fast-260128
480p / 720pOverseas
Seedance 2.0 Mini (Overseas)dreamina-seedance-2-0-mini-hc
dreamina-seedance-2-0-mini-ep
dreamina-seedance-2-0-mini-260615
480p / 720pOverseas
Seedance 2.5 (Overseas)dreamina-seedance-2-5-260628480p / 720p; integer 4-30 seconds or -1Overseas

Existing clients moving from overseas to China only need to replace the group key. The base_url, API paths, request parameters, and polling logic remain unchanged. Use GET /v1/models with the new key to select an available complete model ID.

Seedance 2.5 uses model ID dreamina-seedance-2-5-260628 in the overseas group and doubao-seedance-2-5-260628-a in the China group (the China variant additionally supports 1080p). For ordinary text-to-video and reference-media generation, duration defaults to -1 and accepts integer values from 4-30 seconds or -1; resolution defaults to 720p and accepts 480p or 720p; and ratio accepts 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, or adaptive. Some task modes have stricter requirements: video editing uses duration: -1 and ratio: adaptive, while extension and first/last-frame modes require ratio: adaptive. Generated audio, no watermark, and return_last_frame: true are the defaults. A completed task with return_last_frame: true includes last_frame_url.

Switching boundaries

The China variant now covers Standard, Fast, Mini, and Seedance 2.5 (model IDs above); only 4K is unsupported, so keep 4K requests on the overseas key. The China group also accepts the overseas dreamina-* IDs as compatibility aliases, so existing clients only need to swap the key. Seedance 2.5 reference media must use public HTTP(S) URLs; asset25-* IDs are not supported. Existing tasks remain queryable with their original task IDs.

1. Submit a generation task

curl https://api.hop-base.com/v1/video/generate \
  -H "Authorization: Bearer sk-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-5-260628",
    "content": [
      { "type": "text", "text": "An orange cat runs across sunlit grass as the camera follows" }
    ],
    "duration": 5,
    "resolution": "720p",
    "ratio": "16:9",
    "generate_audio": false,
    "watermark": false
  }'

The response contains a task.id such as vt... for later status queries. For image-to-video, append this object to content:

{
  "type": "image_url",
  "image_url": { "url": "https://example.com/reference.jpg" },
  "role": "reference_image"
}

Reference images of real people must go through the asset library

Seedance 2.0 runs real-person privacy detection on images passed directly in content. A public URL or data: base64 image that contains a recognizable real person — including photorealistic AI portraits — is rejected at submission with HTTP 400 InputImageSensitiveContentDetected.PrivacyInformation, naming the offending content[N]. Upload the same image with POST /v1/sd/assets (step 3 below) and reference it as asset://asset-id; images already inside the asset library skip that check and generate normally. Seedance 2.5 has no asset-library route, so it cannot accept real-person reference images.

ParameterDescription
modelVideo model; see the model table below (required)
contentNon-empty input array containing text, image_url, video_url, or audio_url; a text prompt is optional, and Seedance 2.5 also accepts audio-only input. Use first_frame / last_frame / reference_image for images and reference_video / reference_audio for video or audio. A Seedance 2.0 audio reference must be accompanied by an image or video reference.
durationSeedance 2.5 ordinary generation accepts integer 4-30 seconds or -1 (automatic; default). Seedance 2.0 keeps its existing model-specific range. Video editing requires -1; extension and first/last-frame modes follow their task-specific rules.
resolutionOverseas Seedance 2.5 accepts 480p or 720p (default 720p). China Standard and China 2.5 support 480p, 720p, and 1080p; overseas Standard additionally supports 4k; Fast / Mini (overseas and China) support only 480p / 720p.
ratioSeedance 2.5 accepts 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, or adaptive; task-specific editing/extension modes may require adaptive.
generate_audioWhether to generate audio with the video
watermarkWhether to add a watermark
return_last_frameWhether to return a relay URL for the generated video's final frame (Seedance 2.5)

Other supported model parameters pass through unchanged.

Seedance 2.5 infers the task mode from your prompt

Seedance 2.5 has no explicit task-mode parameter. When a request carries a reference_video, the upstream classifies it as ordinary generation, video extension, or video editing based on the prompt text: a continuation-style prompt ("continue this clip", "extend the shot") is treated as video extension, and that mode requires ratio: "adaptive". Any other ratio fails with an upstream message such as identified your task as video extension based on your prompt. The failure happens upstream: the submit call still returns 200 and the task only turns failed during polling, with no charge. When a reference video is present and the prompt could read as continuing the source clip, send ratio: "adaptive". Seedance 2.0 has no extension or editing mode and is unaffected.

2. Poll task status

# Single task; polling every 5 seconds is recommended
curl https://api.hop-base.com/v1/video/tasks/vt-your-task-id \
  -H "Authorization: Bearer sk-your-key"

# Task list; optionally append ?page=1&limit=20
curl https://api.hop-base.com/v1/video/tasks \
  -H "Authorization: Bearer sk-your-key"

status is pending, processing, completed, or failed. When complete, read the video URL from outputs. usage.completion_tokens contains the billable token count. 480p and 720p generation usually takes 2-5 minutes; 1080p and overseas-only 4K take longer.

Video URL expiration

outputs contains a HopBase relay URL on api.hop-base.com with browser playback and Range requests. Current Seedance relay signatures are valid for 30 days. If the response includes source_outputs, those URLs are valid for 24 hours. Download required results promptly. URL expiry is separate from task and uploaded-asset retention.

3. Upload Seedance 2.0 reference media

curl https://api.hop-base.com/v1/sd/assets \
  -H "Authorization: Bearer sk-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "URL": "https://example.com/your-image.jpg",
    "Name": "character_front",
    "AssetType": "Image"
  }'

The returned data.Id is the asset ID. Reference it as asset://asset-id during Seedance 2.0 generation. URL must be publicly accessible. Use AssetType: Image, Video, or Audio to match the reference item, then query the asset with GET /v1/sd/assets/{asset-id} until it is ready. This upload flow applies to Seedance 2.0. Seedance 2.5 reference media must use public HTTP(S) URLs directly in content. The upload itself accepts a public URL only — no base64 or multipart — so host the file somewhere reachable first. Uploading is optional for ordinary reference images and required for any image containing a real person.

Seedance 2.5 reference media

asset25-* IDs are not supported. Pass a public HTTP(S) URL in the matching content item instead.

Reference media validation rules

All reference media is validated synchronously at submission. Invalid media returns an immediate 400 with a specific error code (such as invalid_image_aspect_ratio) and incurs no task cost. Pre-checking against the table below on your side eliminates most wasted calls:

ItemImageVideoAudio
Formatsjpg / jpeg / png / webp / bmp / tif / tiff / gif / heic / heifmp4 / mov (container must be MP4/ISO-BMFF)wav / mp3
Size< 30MB≤ 200MB≤ 15MB
Dimensions300-6000 px per side300-6000 px per side; total pixels 409,600-8,295,044-
Aspect ratio0.4-2.50.4-2.5-
Duration-2.0: 2-15s; 2.5: 2-30s (combined total under the same cap)2.0: 2-15s; 2.5: 2-30s (combined total under the same cap)
Frame rate-24-60 FPS-
Count limits2.0: up to 9; 2.5: up to 30; frame mode at most 22.0: up to 3; 2.5: up to 102.0: up to 3 (must pair with an image or video reference); 2.5: up to 10

Media URL must be a publicly reachable http(s) address: private / loopback / link-local addresses and URLs with credentials are rejected, with at most 3 redirects; images and audio may also be passed inline as data: base64. Role constraints: frame mode takes at most 2 images — a single image must be first_frame, two images must be exactly one first_frame and one last_frame; multimodal references must be declared explicitly as reference_image and cannot be mixed with frame mode.

Rates

Official list prices are on the pricing page. Your own rate is the one shown in the signed-in model catalog, and each request's actual charge is in your usage record.

On this page