Skip to content

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 modelResolutionsInteger target durationImage / video / audio limitsTotal media limit
seedance-2.0-sh480P / 720P / 1080P / 4K4 - 15 seconds9 / 3 / 315
seedance-2.0-sh-fast480P / 720P4 - 15 seconds9 / 3 / 315
seedance-2.0-sh-mini480P / 720P4 - 15 seconds9 / 3 / 315
seedance-2.5-sh480P / 720P / 1080P4 - 30 seconds30 / 10 / 1050

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 ​

bash
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 parameterOfficial-compatible parameter
promptcontent[].type: "text" and text
references[].media_type and urlimage_url, video_url, or audio_url in content[]
references[].roleThe media item's role
sizeresolution
aspect_ratioratio
duration, generate_audioThe same field names
bash
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 optionRequest contract and verification scope
generate_audioA boolean controlling generated audio; true has been verified in the text-only examples on this page.
draftA 2.5-only boolean; true requests a draft. Omit this field on 2.0 models, including false. Not live verified.
draft_task_idA 2.5-only public draft task ID; see the final-generation rules below. Not live verified.
off_peakA boolean selecting the off-peak option. Not live verified.
callback_urlAccepted 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.

MediaRoleRule
Imagereference_imageA content reference, not a required first frame.
Imagefirst_frameA strict first frame, at most one image.
Imagelast_frameA strict last frame, at most one image; requires a first frame.
Videoreference_videoA video reference; video preparation and reference-based generation remain unverified.
Audioreference_audioAn 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:

text
asset.status = ready
preparation.status ∈ { ready, not_required }
preparation.generation_ready = true

Asset 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 ​

bash
curl https://moonapix.com/v1/videos/{task_id} \
  -H "Authorization: Bearer <MOONAPIX_API_KEY>"

Official-compatible query endpoint:

bash
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.