Seedance SH Series
The SH series provides four independent public models for asynchronous video generation with a MoonApiX API key. Use either the MoonApiX common parameters or the official-compatible parameters in a single request.
Use the public model IDs containing -sh to explicitly select this series. The official model IDs doubao-seedance-2-0-260128, doubao-seedance-2-0-fast-260128, doubao-seedance-2-0-mini-260615, and doubao-seedance-2-5-260628 may participate in MoonApiX shared model scheduling, so those IDs do not establish that a request used the SH series. Live verification on this page used the SH public model IDs; this series has not been specifically verified through official model IDs.
Models and Limits
| Public model | Resolutions | Integer target duration | Image / video / audio limits | Total media limit |
|---|---|---|---|---|
seedance-2.0-sh | 480P / 720P / 1080P / 4K | 4 - 15 seconds | 9 / 3 / 3 | 15 |
seedance-2.0-sh-fast | 480P / 720P | 4 - 15 seconds | 9 / 3 / 3 | 15 |
seedance-2.0-sh-mini | 480P / 720P | 4 - 15 seconds | 9 / 3 / 3 | 15 |
seedance-2.5-sh | 480P / 720P / 1080P | 4 - 30 seconds | 30 / 10 / 10 | 50 |
These are the current request validation limits, not proof that every combination has passed generation testing. Text-only generation with seedance-2.5-sh, 1080P, 16:9, a 4-second target and generated audio has been verified through both creation protocols. The resulting files were 1920 × 1080, included audio, and lasted approximately 4.064 seconds. Other models, resolutions, reference combinations and advanced features have not completed this generation verification.
All four models accept duration: -1 for automatic duration; duration: 0 is invalid. When omitted, the target duration defaults to 5 seconds, the resolution to 720P, and the aspect ratio to adaptive. Set these fields explicitly when you need a particular format. Actual media duration may differ slightly because of encoded trailing frames.
MoonApiX Common Parameters
curl https://moonapix.com/v1/videos \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5-sh",
"prompt": "A small ceramic sculpture rotates slowly on a clean studio table. A steady camera captures the details, with gentle ambient sound.",
"size": "1080p",
"aspect_ratio": "16:9",
"duration": 4,
"generate_audio": true
}'You can also use /v1/video/generations. Save the public id or task_id from the creation response. A creation request timing out is not a reason to immediately submit the same job again.
Official-Compatible Parameters
Both protocols use the same MoonApiX public model ID and API key. Do not combine content[] with references[] or provide the prompt twice.
| Common parameter | Official-compatible parameter |
|---|---|
prompt | content[].type: "text" and text |
references[].media_type and url | image_url, video_url, or audio_url in content[] |
references[].role | The media item's role |
size | resolution |
aspect_ratio | ratio |
duration, generate_audio | The same field names |
curl https://moonapix.com/api/v3/contents/generations/tasks \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5-sh",
"content": [
{
"type": "text",
"text": "A small ceramic sculpture rotates slowly on a clean studio table. A steady camera captures the details, with gentle ambient sound."
}
],
"resolution": "1080p",
"ratio": "16:9",
"duration": 4,
"generate_audio": true
}'You can also send content[] to /v1/videos. Request-shape compatibility does not mean every official advanced feature is available. The verified examples on this page use polling.
Common parameters may also be placed in input or metadata. For the same parameter, precedence is top level, then input, then metadata. Conflicting fields or aliases within the same layer are rejected. Explicit false values are preserved. Prefer top-level generation parameters and avoid duplicate fields.
kwargs accepts only generate_audio, draft, draft_task_id, and off_peak. It may also appear as input.kwargs or metadata.kwargs. The options generate_audio, draft, and off_peak are booleans; draft_task_id is a public draft task ID string. Options follow the same precedence: top level, then input, then metadata. A direct field and its matching kwargs field in the same layer must agree; conflicts and unknown kwargs keys are rejected. Prefer direct top-level fields.
| Generation option | Request contract and verification scope |
|---|---|
generate_audio | A boolean controlling generated audio; true has been verified in the text-only examples on this page. |
draft | A 2.5-only boolean; true requests a draft. Omit this field on 2.0 models, including false. Not live verified. |
draft_task_id | A 2.5-only public draft task ID; see the final-generation rules below. Not live verified. |
off_peak | A boolean selecting the off-peak option. Not live verified. |
callback_url | Accepted only on /api/v3/contents/generations/tasks, where MoonApiX handles callbacks. /v1/videos rejects this field. Delivery is unverified; the examples use polling. |
Aspect Ratios and References
Allowed aspect ratios are adaptive, 21:9, 16:9, 9:16, 4:3, 3:4, and 1:1. The adaptive option determines the frame ratio from the input and generation mode. Specify a fixed ratio explicitly when required.
| Media | Role | Rule |
|---|---|---|
| Image | reference_image | A content reference, not a required first frame. |
| Image | first_frame | A strict first frame, at most one image. |
| Image | last_frame | A strict last frame, at most one image; requires a first frame. |
| Video | reference_video | A video reference; video preparation and reference-based generation remain unverified. |
| Audio | reference_audio | An audio reference, separate from enabling generate_audio. |
First and last frames cannot be mixed with ordinary image, video, or audio references. For strict first/last-frame generation with seedance-2.5-sh, use aspect_ratio: "adaptive" or ratio: "adaptive", or omit the ratio. Fixed ratios are rejected in this mode.
The 2.0 standard, Fast and Mini models require an image or video alongside audio references. The 2.5 request validation allows audio-only input, but that combination has not completed generation testing.
For references, prefer stable media URLs that you have permission to use and that are directly accessible without authentication. Set each media type and role explicitly in references[]. URLs must remain available until the task completes. Do not use login pages, expired links, or preview pages. Staying within the count limits does not by itself satisfy format, content safety, or combination requirements.
Asset IDs and Preparation
SH models have an independent asset preparation scope. Save MoonApiX asset_id / asset_ref values and query Preparation for the actual generation model. Preparation for another series does not prove an asset is ready for SH.
- Image AIGC preparation has passed, but generation using the prepared image reference has not been verified.
- Video AIGC preparation has not completed successful acceptance testing. This page does not promise video asset references are ready for generation; do not treat them as
generation_ready=true. - Audio has no separate AIGC asset authentication workflow. Input availability still depends on the selected model and media requirements.
- SH does not offer face scanning, visual liveness verification, or the corresponding liveness asset-group workflow.
asset.status=ready only indicates a usable asset identity. Available storage or successful image preparation cannot replace a successful generation test. Before using Asset://asset_xxx, query the target model and confirm all of the following:
asset.status = ready
preparation.status ∈ { ready, not_required }
preparation.generation_ready = trueAsset queries are read-only. Preparation failure does not delete the established asset identity and should not trigger automatic recreation. See Upload assets and Query assets for the explicit operations.
Query and Download
curl https://moonapix.com/v1/videos/{task_id} \
-H "Authorization: Bearer <MOONAPIX_API_KEY>"Official-compatible query endpoint:
curl https://moonapix.com/api/v3/contents/generations/tasks/{task_id} \
-H "Authorization: Bearer <MOONAPIX_API_KEY>"Check status and error first. Read video_url, url, or content.video_url only after a successful terminal state with no error. A URL alone does not prove success. Use the complete returned URL and download promptly; do not replace its host, construct a path, or remove query parameters.
If a successful query does not provide a usable result URL, use the /v1/videos/{task_id}/content compatibility download endpoint with redirect handling enabled. See Query video tasks for status and download details.
Billing and Advanced Features
SH models settle against actual output tokens, measured by usage.completion_tokens. Pricing tiers distinguish the resolution and whether video input is present; charges are not fixed per second or per call. A creation request may reserve quota, and successful tasks settle against actual output usage. Refunds and final amounts are recorded in MoonApiX consumption records. Read current prices from the console or pricing API; do not infer a fixed charge from the example duration.
The 2.5 draft-to-final workflow, off-peak parameters, callbacks, longer durations, first/last frames and mixed references have not completed this verification. They should not be treated as verified default integration paths. The examples here use text-only generation and polling. Cancellation, Remix and video extension are outside the SH support scope.
The 2.5 draft request validation requires draft: true and an explicit resolution: "480P". A final-generation request must refer to a successful public draft task owned by the current user, less than seven days old and still eligible for final generation. Send only model, draft_task_id, and an explicit resolution: "1080P". The prompt, media, duration, aspect ratio and audio settings are inherited from the draft; do not repeat them, including empty values. This describes the current request contract only; the workflow has not completed live generation verification.
SH requests reject all of the following fields, including explicit false, 0, or empty values: seed, frames, camera_fixed, watermark, return_last_frame, priority, execution_expires_after, safety_identifier, service_tier, tools, output_format, response_format, negative_prompt, system_prompt, omni_reference_task_type, file, files, file_url, file_urls, fps, n, width, and height. Remove these fields when adapting requests from other series.