Skip to content

Seedance

All requests use the standard HiPix video endpoints: submit to POST /v1/videos, poll GET /v1/videos/{id}, and download the finished file from GET /v1/videos/{id}/content.

Request fields checked against the API validator on November 7, 2026. Check the model directory for current availability and prices.

Model IDResolutionsMax durationReference imagesReference videos
seedance-2.0480p, 720p, 1080p, 4k15sup to 9up to 3, 4–15s total
seedance-2.0-fast480p, 720p15sup to 9up to 3, 4–15s total
seedance-2.0-mini480p, 720p15sup to 9up to 3, 4–15s total
seedance-2.5480p, 720p, 1080p30sup to 30up to 10, 4–30s total
seedance-2.0-global480p, 720p, 1080p, 4k15sup to 9up to 3, 4–15s total
seedance-2.0-fast-global480p, 720p15sup to 9up to 3, 4–15s total
seedance-2.0-mini-global480p, 720p15sup to 9up to 3, 4–15s total
seedance-2.5-global480p, 720p, 1080p30sup to 30up to 10, 4–30s total

-global variants are served through the overseas route. Reference-media limits apply per request, not per clip; reference video duration limits are totals across all clips.

All eight IDs use the same JSON structure. The model-specific limits above still apply. The public model value uses a dot (seedance-2.5), even though page URLs and Postman filenames use hyphens.

{
"model": "seedance-2.5",
"prompt": "Animate the scene in @Image1 using the camera movement from @Video1",
"seconds": 5,
"metadata": {
"resolution": "720p",
"ratio": "16:9",
"generate_audio": true,
"media": [
{"type": "reference_image", "url": "https://example.com/scene.jpg"},
{"type": "reference_video", "url": "https://example.com/clip.mp4"}
]
}
}

Replace the example URLs with public HTTPS files. Image formats are JPEG, PNG, or WebP (up to 30 MB each); video formats are MP4 or MOV. Prepare reference clips within the model’s duration limits; the API does not accept a client-reported reference duration field. Use @Image1, @Image2, and @Video1, @Video2 in the prompt to refer to entries in their order within each media type. For text-to-video, omit metadata.media; for image-to-video, keep only the image entries.

Use a separate frame-guided payload instead of mixing frame roles with reference-image/video roles:

{
"model": "seedance-2.5",
"prompt": "Move smoothly from the opening scene to the closing scene",
"seconds": 5,
"metadata": {
"resolution": "720p",
"generate_audio": false,
"media": [
{"type": "first_frame", "url": "https://example.com/opening.jpg"},
{"type": "last_frame", "url": "https://example.com/closing.jpg"}
]
}
}

Only one image of each frame role is accepted. A first frame can be used alone; a last frame requires a first frame. Output framing follows the input image, so the requested ratio may not control this mode. Returning a separate last-frame image (return_last_frame: true) is not supported.

metadata.generate_audio is a boolean for generated sound: set it to true for audio or false for silent output. It is not an audio input. These eight endpoints currently reject reference-audio inputs (reference_audio, audio_url); do not label an audio file as an image or video. Audio assets cannot be registered through the asset API.

Prices are quoted per billing-equivalent second, not per literal second of output. Final billing converts measured completion-token usage using the task’s frozen conversion basis and price. Resolution, aspect ratio, reference-video input, and applicable minimum usage can change the number of billable equivalent seconds.

The reservation is an estimate and is adjusted on settlement. Reference-video reservations include an input-duration allowance; that allowance is not an additional fixed charge. See Pricing & Billing and the model directory for current rates, and account usage logs for the settled amount.

Reference media containing real human faces must first be registered through the asset library and then referenced by handle (asset://…) instead of a plain URL. Ordinary reference media uses public HTTPS URLs directly.

Terminal window
curl https://api.apimart.cc/v1/media/assets \
-H "Authorization: Bearer $HIPIX_API_KEY" \
-H "Content-Type: application/json" \
--data-raw '{"model": "seedance-2.5", "url": "https://example.com/real-person-clip.mp4", "asset_type": "Video"}'

The same request body as it appears in the Postman collections:

{
"model": "seedance-2.5",
"url": "https://example.com/real-person-clip.mp4",
"asset_type": "Video"
}

For a real-person photo, use "asset_type": "Image" with the image URL.

The response returns { "success": true, "data": { "ref": "asset://mva-…", "provider_id": "mva-…", "status": "…" } } immediately with the provider’s current state — commonly Processing. Registration does not wait; poll GET /v1/media/assets/{provider_id}/status?model=seedance-2.5 from your own code (for example every few seconds) while the status is Processing. Use the reference only when status is Active; stop on Failed — that query still returns HTTP 200 with the Failed status in the body.

Keep the registration and generation model consistent. For an image use asset_type: "Image" and type: "reference_image" (or an image frame role); for a video use asset_type: "Video" and type: "reference_video". Put the returned handle in the media entry:

{ "type": "reference_image", "url": "asset://mva-…" }

HiPix accepts a URL rather than uploading or staging your source media bytes. The serving system fetches that URL during registration or processing. Registration is free; generation charges apply when a handle is used in a task. Registration does not guarantee content approval or cross-channel portability of a handle.

Each of these eight model pages links its own Postman collection. Set api_key, replace the example media URLs, and replace each task/asset path ID with the value returned by the corresponding request. The collections ship without credentials and include generated-audio, image, and video examples.