Skip to content

MaaS_Seedance

On the Use of the Live Asset Library

Process Description

Step 1: Create a real person portrait asset group (asset group)

  • Use the API to generate an H5 authentication page link, and the CallbackURL parameter is supported to customize the callback page link.

  • Access the H5 authentication page link to complete facial authentication. After clicking the finish button, the CallbackURL link will be opened.

  • Note: The user may provide an inaccessible callback URL, and clicking "Complete Authentication" after finishing face verification may lead to an error page!! This does not affect the result. As long as the face authentication is completed, the asset group has been created, and you can query whether the asset group is successfully created based on the bytedToken parameter from the previous step.

  • Parse the parameters attached to the CallbackURL to obtain the face authentication result. If the face authentication succeeds (resultCode is 10000), call the interface to query the asset group ID corresponding to the end user.

Step 2: Upload/Manage Assets (Create Assets)

  • When a real human asset is uploaded, the system will compare the facial features of the uploaded image with the reference images collected during the real-person verification process to check for consistency. Only after passing this comparison can the asset be added to the library.

  • You can use the Assets API to retrieve asset IDs, update asset information, or delete assets.

Step 3: Generate videos using real human portraits

  • Use the asset URI to initiate a video generation task based on the verified and active real-person portrait assets.

  • Each asset group corresponds to a real individual, and each asset file belonging to that individual constitutes an asset.

On the Use of the Virtual Asset Library

Process Description

Step 1: Create a virtual asset group

  • No real human facial recognition is required, and you can directly create an AIGC-type asset group via the virtual asset group creation interface

The remaining steps are the same as the usage of the above-mentioned live asset library.

Interfaces and Request Parameters

Create Video Generation Task API

POST

https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks

Request Parameters

Attribute Name Type Required/Optional Description
model string Required The ID of the model you need to call (Model ID)
content object Required Input the information for video generation to the model, which supports both text and image inputs.
content.type
string
Required
Type of input content
text content
image_url Image Information
video_url
audio_url
draft_task
content.text
string
Required
The text content input to the model, which describes the video to be generated, includes:
Text Prompt (Required):
  • Prompt Language Support: All models support both Chinese and English prompts;

    • Seedance 2.5: Additional support for Spanish, Indonesian, Portuguese, Japanese, Malay, Thai, Arabic, Vietnamese, and Korean;
    • Seedance 2.0 Series: Additional support for Spanish, Indonesian, Portuguese and Japanese.
  • Suggested Word Count for Prompts: Chinese prompts should not exceed 500 characters, and English prompts should not exceed 1000 words. Excessively long prompts tend to lead to scattered information, and the model may overlook details while only focusing on key points, which will result in missing elements in the generated video.

Parameters (optional): Append --[parameters] after the text prompt to control the specifications of video output. For details, please refer to seedance Official Website - Model Text Commands (Optional).
content.draft_task
object
(Mandatory when content. Type is draft_task) Sample Task ID
For instructions on using the sample mode, please refer to: Draft Sample Mode Example
content.image_url object Required The image object input to the model.
content.image_url.url
string
Mandatory
Image information, which can be an image URL or an image Base64 encoding.
  • Image URL: Please ensure that the image URL is accessible.
  • Base64 Encoding: Please follow the format data: image/<image format>;base64,<Base64 encoding>. Note that <image format> must be in lowercase, e. g. data: image/png;base64,{base64_image}.
  • Asset ID: The URI of the digital character used to generate the video. It is formatted as asset://<ASSET_ID> and can be obtained from the Live Asset Library.
Requirements for Single Image Input
  • Format: jpeg, png, webp, bmp, tiff, gif. Among them, Seedance 1.5 pro and higher model versions additionally support heic and heif.

  • Aspect ratio (width/height): [0.4,2.5]

  • Width and height length (px): [300,6000]

  • Size: A single image must be smaller than 30 MB. The request body size shall not exceed 64 MB. Do not use Base64 encoding for large files.

  • Number of images:

    • Image-to-Video - First Frame: 1 piece
    • Image-to-Video - First and Last Frames: 2 pieces
    • Seedance 2.5 Multimodal Reference Video Generation: 1-30 images
    • Seedance 2.0 Series Multimodal Reference-Generated Video: 1-9 images
content.video_url object Required The video object input to the model.
content.video_url.url
string
Required
Video URL, creatives ID.
  • Video URL: Enter the public URL of the video.
  • Creative ID: The ID of preset creatives for video generation and virtual avatar videos, following the format: asset://<ASSET_ID>. It can be obtained from the Live Asset Library.
Requirements for single video input
  • Video formats: mp4, mov; supported encoding formats are listed in the table below.

  • Resolution: 480p, 720p

  • Duration: The duration of a single video ranges from 2 to 15 seconds. You can input up to 3 reference videos, and the total duration of all videos shall not exceed 15 seconds.

  • Dimensions:

    • Aspect Ratio (Width/Height): [0.4,2.5]
    • Width and height length (px): [300,6000]
    • Total number of pixels: [640×640= 409600,834×1112= 927408], meaning the product of width and height meets the interval requirement of [409600,927408].
  • Size: A single video shall not exceed 50 MB.

  • Frame Rate (FPS): [24,60]

content.audio_url object Mandatory The audio object input to the model.
content.audio_url.url string
Audio URL, audio Base64 encoding, and creatives ID.
  • Audio URL: Enter the public URL of the audio.
  • Base64 Encoding: Convert the local file into a Base64 encoded string and then submit it to the large language model. Follow the format: data: audio/<audio_format>;base64,<Base64_encoded_string>, note that <audio_format> should be in lowercase, for example data: audio/wav;base64,{base64_audio}.
  • Creative ID: The audio creative ID of the virtual human for video generation, following the format: asset://<ASSET_ID>. It can be obtained from the real human asset library.
Requirements for Single Incoming Audio
  • Format: wav, mp3
  • Duration: The duration of a single audio is [2,15] seconds, you can input up to 3 reference audio clips, and the total duration of all audio files shall not exceed 15 seconds.
  • Size: A single audio file shall not exceed 15 MB, and the size of the request body shall not exceed 64 MB. Do not use Base64 encoding for large files.
content.role
string
Conditionally Required
  1. Image-to-Video - First Frame
Field ** role ** Value: 1 image_url object needs to be passed in, and the value of role is first_frame or left blank.
  • Image-to-Video - First and Last Frames
Field ** role ** Value: 2 image_url objects need to be passed in, and role is required.
  • The role corresponding to the first frame image role is first_frame
  • The role corresponding to the end frame image role is last_frame
The input start and end frame images can be identical. If the aspect ratios of the start and end frame images are inconsistent, the start frame image shall prevail, and the end frame image will be automatically cropped to adapt.
Model Support:
  • Seedance 2.5
  • Seedance 2.0 Series
  • Seedance 1.5 pro
  • Seedance 1.0 pro
  • Image-to-Video - Reference Image
Field ** role ** Value: Required. The role for each reference image is reference_image.
Model Support:
  • Seedance 2.5
  • Seedance 2.0 Series
  • Reference Video
Fixed as reference_video
  • Reference Audio
Fixed as reference_audio
  • Sample Task
Fixed as draft_task
callback_url
string Optional Fill in the callback notification address for the result of this generation task. When the status of the video generation task changes, Ark will push a POST request to this address.
camera_fixed boolean Optional Default value: false
Whether it is a fixed camera.
  • true: Fixed camera. The platform will append "fixed camera" to the user's prompt, but the actual effect is not guaranteed.
  • false: Unfixed camera.
Reference image scenes are not supported.
Model Support:
  • Seedance 1.5 Pro
  • Seedance 1.0 Pro
  • Seedance 1.0 Pro Fast
draft
boolean
Optional
Default value: false
true: Enable the sample mode to generate a preview video for quickly verifying whether the scene structure, camera scheduling, subject actions and prompt intent meet expectations. It consumes fewer tokens than a normal video, resulting in lower usage costs.
Only 480p resolution is supported (an error will occur if other resolutions are used), the function of returning the tail frame is not supported, and the offline inference function is not supported.
false: Generate video normally
Only compatible with seedance 1.5 pro
duration integer
Optional

You can choose either duration or frames, and frames takes precedence over duration. If you want to generate a video with integer seconds, it is recommended to specify duration.

Video duration generation only supports integers, in seconds.
  • Seedance 1.0 pro、Seedance 1.0 pro fast、Seedance 1.0 lite: [2, 12] s。
  • Seedance 1.5 pro: [4,12] or set to -1
  • Seedance 2.0 & 2.0 fast: [4,15] or set to -1
  • Seedance 2.5: Default value -1; Value range [4,30]; or can be set to -1 (smart selection)
Note
The Seedance 2.0 series and Seedance 1.5 pro support two configuration methods
  • Specify a specific duration: any integer within the valid range is supported.
  • Smart Specification: Set to -1, which means the model will independently select an appropriate video length (in integer seconds) within the valid range. The actual duration of the generated video can be obtained via the Query Video Generation Task API returned duration field. Note that video duration is related to billing, so please set it with caution.
The constraints for the Seedance 2.5 model in video editing tasks (see Task Types and Criteria for details) are as follows:
  • Only the configuration with duration set to -1 is supported, and specifying a specific output duration is not allowed.
  • The duration of the incoming video to be edited must be within the range of [4,30] seconds; otherwise, an error will be triggered.
execution_expires_after integer Optional Task timeout threshold. Specifies the expiration time (in seconds) after a task is submitted, calculated starting from the created_at timestamp, with a default value of 48 hours.
After this time elapses, the task will be automatically terminated and marked as expired.
The default value is 172800 (seconds), which equals 48 hours
Value range: [3600,259200]
frames
integer
Optional Either frames or duration (dur) shall be selected
Remove this parameter from seedance-1.5-pro
Seedance 2.0 series is not supported
generate_audio
boolean
Optional
Default value: true
true: The video output by the model contains synchronized audio. Seedance 1.5 pro can automatically generate matching human voices, sound effects and background music based on text prompts and visual content. It is recommended to place the dialogue part in double quotation marks to optimize the audio generation effect. For example: The man stopped the woman and said, "Remember, you must never point at the moon with your finger from now on. "
false: The video output by the model is a silent video.
Only supported in seedance-1.5-pro, seedance-2.0 series, seedance-2.5
output_format
string Optional Default value: mp4
The format of the output video.
  • MP4: A universal format with the best compatibility, which adopts standard color accuracy and can be played directly on web pages, mobile devices, various players and distribution platforms.
  • MOV: A high-color-precision format for professional scenarios, which better maintains the consistency of picture color and brightness, and is suitable for professional post-processing with high requirements for color reproduction such as color grading, keying and compositing. It is recommended to use the MOV format as input and output in video editing and video extension scenarios.
Model Support
  • Seedance 2.5
priority
integer
Optional Only Seedance 2.0 and Seedance 2.5 are supported

Sets the execution priority of the current request and determines its position in the queue. Valid value range: 0–9, where a larger value indicates a higher priority. The default value is 0.
By default, requests are processed in a first-in, first-out (FIFO) order. When you assign a higher priority to a request, it will be inserted ahead of all lower-priority requests under the same endpoint.
Example:
Suppose that an endpoint currently has three queued tasks (status = queued), and the default priority of all tasks is 0.
Queue: [Task A: Priority = 0] → [Task B: Priority = 0] → [Task C: Priority = 0]
If a new request with priority 5 is submitted, it will be moved directly to the front of the queue:
Queue: [New Request: Priority= 5] → [Task A: Priority= 0] → [Task B: Priority= 0] → [Task C: Priority= 0]
Note
Requests with the same priority are still arranged in First-In, First-Out (FIFO) order.
Priority only affects the sorting of the queue and will not interrupt running tasks (status = running).
Priority only takes effect within the same endpoint and does not affect other endpoints.
Offline inference mode (service_tier= flex) does not support priority configuration.
ratio
string
Optional Generate the aspect ratio of the video.
  • 16:9
  • 4:3
  • 1:1
  • 3:4
  • 9:16
  • 21:9
  • adaptive: automatically select the most appropriate aspect ratio based on the input (see the description below for details)
adaptive adaptation rule
When the ratio is configured as adaptive, the model will automatically adapt the aspect ratio according to the generation scenario; the actual aspect ratio of the generated video can be obtained via the query video generation task API returned ratio field.
Supported models:
  • Supported on Seedance 2.0 series and Seedance 1.5 Pro
  • Other models are only supported in the image-to-video scenario; please note that Seedance 1.0 lite does not support the reference image scenario.
Value Rule:
  • Text-to-video: The system will intelligently select the most appropriate aspect ratio based on the input prompt.
  • First-frame / First-and-last-frame Generated Video: Automatically select the closest aspect ratio based on the proportion of the uploaded first frame image.
  • Multimodal reference for video generation: Determine based on the intent of the user's prompt. If the task is first-frame video generation, video editing, or video extension, select the closest aspect ratio based on the given image or video; otherwise, select the closest aspect ratio based on the first incoming media file (priority: video > image).
resolution
string
Optional
Video resolution. Optional values: 480p, 720p, 1080p, 4k.
Model Support:
  • Seedance 2.5: Default value: 720p; Optional values: 480p, 720p
  • Seedance 2.0: Default value: 720p; Optional values: 480p, 720p, 1080p, 4K
  • Seedance 2.0 Fast: Default value: 720p; Optional values: 480p, 720p
  • Seedance 2.0 Mini: Default value 720p; optional values 480p, 720p
  • Seedance 1.5 Pro: Default value: 720p; Optional values: 480p, 720p, 1080p
  • Seedance 1.0 Pro: Default value: 1080p; Optional values: 480p, 720p, 1080p
  • Seedance 1.0 Pro Fast: Default value: 1080p; Optional values: 480p, 720p, 1080p
return_last_frame
Boolean
Optional
The default value is false.
true: Returns the end frame image of the generated video. The end frame image is in PNG format, with the same width and height in pixels as the generated video, and no watermark. You can obtain the end frame image of the video by querying the video generation task interface.
false: Do not return the end frame image of the generated video.
safety_identifier
string
Optional
A unique identifier for end users, which is used to assist the platform in detecting users in your application who may violate the usage policies of Volcano Engine Ark. This identifier is an English character string, which must be fixed and unique for a single user, and the length shall not exceed 64 characters. It is recommended to pass in a string generated by hashing the username, user ID or email to avoid disclosing users' private information.
seed
integer
Optional
Default: -1
A seed integer, which is used to control the randomness of the generated content.
Value range: an integer within [-1,2^32-1].
Note
  • Under the same request, if the model receives different seed values, for example, not specifying a seed value, setting the seed to -1 (which will be replaced by a random number), or manually changing the seed value, different results will be generated.
  • Under the same request, if the model receives the same seed value, it will generate similar results, but complete consistency is not guaranteed.
service_tier
string
Optional
Specify the Grade Of Service type for processing this request, the enumeration values are as follows:
default: In online inference mode, the RPM and concurrency quotas are relatively low, making it suitable for scenarios that have high requirements for inference timeliness.
flex: An offline inference mode with a higher TPD quota, priced at 50% of online inference, which is suitable for scenarios with low requirements on inference latency.
The Seedance 2.0 series is not supported
watermark boolean Optional Default value: false
Whether the generated video contains a watermark.
  • true: A watermark will be displayed in the bottom-right corner of the generated video.
  • false: Generated videos will not contain watermarks.

Request Body Example

Text-to-Video

curl -X POST https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${your_AK}" \
  -d '{
    "model": "doubao-seedance-1-5-pro-251215",
    "content": [
        {
            "type": "text",
            "text": "Multiple shots. A detective enters a dimly lit room. He examines clues on the table and picks up an object from it. The camera turns to him deep in thought. --ratio 16:9"
        }
    ]
}'

Image-to-Video - First Frame

curl -X https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${your_AK}" \
  -d '{
    "model": "doubao-seedance-1-0-pro-250528",
    "content": [
        {
            "type": "text",
            "text": "A girl holds a fox, the girl opens her eyes and gently looks at the camera, the fox is held affectionately, the camera slowly pulls out, the girl's hair is blown by the wind  --ratio adaptive  --dur 5"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png"
            }
        }
    ]
}'

First and Last Frames

curl -X POST https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${your_AK}" \
  -d '{
    "model": "doubao-seedance-1-0-lite-i2v-250428",
    "content": [
         {
            "type": "text",
            "text": "A blue-green Jingwei bird transforms into a human form --rs 720p  --dur 5 --cf false"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_first_frame.png"
            },
            "role": "first_frame"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_last_frame.png"
            },
            "role": "last_frame"
        }
    ]
}'

Reference Diagram

curl -X POST https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${your_AK}" \
  -d '{
    "model": "doubao-seedance-1-0-lite-i2v-250428",
    "content": [
         {
            "type": "text",
            "text": "An elderly man in a cafe, picking up a coffee cup, the visual style is cartoon and fresh  --rs 720p  --dur 5  --rt 16:9 --seed 12345 --wm true"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_1.png"
            },
            "role": "reference_image"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_2.png"
            },
            "role": "reference_image"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_3.png"
            },
            "role": "reference_image"
        }
    ]
}'

Response Example

{
  "id": "cgt-2025******-****"
}

Example of Preview Mode

Step 1: Generate the sample

curl -X POST https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${your_AK}" \
  -d '{
    "model": "doubao-seedance-1-5-pro-251215",
    "content": [
        {
            "type": "text",
            "text": "A girl holds a fox, the girl opens her eyes and gently looks at the camera, the fox is held affectionately, the camera slowly pulls out, the girl's hair is blown by the wind"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png"
            }
        }
    ],
    "seed": 20, 
    "duration": 6, 
    "draft": true
}'

Obtain the sample taskId from the interface response

{
  "id": "cgt-2026******-AAAAA"
}

Step 2: Query the status of the sample film

// $ID is the taskID just obtained, cgt-2026******-AAAAA
curl -X GET "https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks/$ID" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${your_AK}"

Step 3: After the sample is successfully generated, generate the official video based on the sample video

curl -X POST https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${your_AK}" \
  -d '{
    "model": "doubao-seedance-1-5-pro-251215",
    "content": [
        {
            "type": "draft_task",
            "draft_task": {"id": "cgt-2026******-AAAAA"}
        }
    ],
      "watermark": false,
      "resolution": "720p",
      "return_last_frame": true,
      "service_tier": "default"
  }'  

Obtain the formal video taskId from the interface response

{
  "id": "cgt-2026******-BBBBB"
}

Step 4: Obtain the official video generation result

// $ID is the taskID just obtained, cgt-2026******-BBBBB
curl -X GET "https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks/$ID" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${your_AK}"

Query Video Generation Task API

GET

https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks/{id}

Request Body Example

curl -X GET "https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks/$ID" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${your_AK}"

Response Example

{
  "id": "cgt-2025******-****",
  "model": "doubao-seedance-1-0-pro-250528",
  "status": "succeeded",
  "content": {
    "video_url": "https://ark-content-generation-cn-beijing.tos-cn-beijing.volces.com/doubao-seedance-1-0-pro/****.mp4?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=AKLTY****%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20250331T095113Z&X-Tos-Expires=86400&X-Tos-Signature=***&X-Tos-SignedHeaders=host"
  },
  "seed": 10,
  "resolution": "720p",
  "duration": 5,
  "ratio": "16:9",
  "framespersecond": 24,
  "usage": {
    "completion_tokens": 108900,
    "total_tokens": 108900,
    "tool_usage": {
        "web_search": 0
    },
  },
  "safety_identifier": "muxiaojue",
  "tools": [
    {
        "type": "web_search"
    }
  ],
  "created_at": 1743414619,
  "updated_at": 1743414673,
  "service_tier":"default",
  "execution_expires_after":172800,
  "generate_audio":true,
  "draft":false,
  "priority": 0
}

Cancel or delete the video generation task

DELETE

https://genaiapi-m2.cloudsway.net/v1/ai/ {endpointPath}/seedance/contents/generations/tasks/{id}

Request Body Example

curl -X DELETE "https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/contents/generations/tasks/$ID" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $${your_AK}"

This interface has no return parameters.

Create a live asset group (create live verification)

POST

https://genaiapi-m2.cloudsway.net/v1/ai /{endpointPath}/seedance/visual/validate

Request body parameters

field Type Required default value Description
callbackURL string Yes The URL to which you will be automatically redirected after verification is complete will carry parameters indicating the verification result.

Response Parameters

field Type Required Description
bytedToken string Yes The unique credential identifier for this verification
h5Link string Yes Human Verification H5 Link (Valid for 120 Seconds)
callbackURL string Yes The URL to which you will be automatically redirected after verification is complete will carry parameters indicating the verification result.

Request Body Example

curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/visual/validate' \
--header 'Authorization: Bearer $${your_AK}' \
--header 'Content-Type: application/json' \
--data '{
    "callbackURL":"https://www.example.com/callback"
}'

Response Example

{
    "bytedToken": "your bytedToken",
    "h5Link": "your h5 link",
    "callbackUrl": "your callback url"
}

Obtain verification result (obtain asset group ID)

POST

https:// genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance /visual/result

Request Body Parameters

Field Type Required default value Description
bytedToken string Yes Verify Credential Identifier

Response Parameters

Field Type Required Description
groupId string Yes ID of the portrait asset group created by this real-person verification
status string Yes Status

Request Body Example

curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/visual/result' \
--header 'Authorization: Bearer $${your_AK}' \
--header 'Content-Type: application/json' \
--data '{
    "bytedToken":"your bytedToken"
}'

Response Example

{
    "groupId": "your groupId",
    "status": "Processing"
}

Create a virtual asset group

POST https:// genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/asset /group/create

Request Body Parameters

Field Type Required default value Description
name string Yes Name of the asset group, maximum 64 characters.
description string No Description of the asset group, with a maximum of 300 characters.
groupType string No AIGC Asset group type. Optional values: AIGC: Digital human character (the only currently supported value).

Response Parameters

field Type Required Description
id string Yes Asset group ID.
h5Link string Yes Human Verification H5 Link (Valid for 120 Seconds)
callbackURL string Yes The URL to which you will be automatically redirected after verification is complete will carry parameters indicating the verification result.

Request Body Example

curl --location 'https://genaiapi.cloudsway.net/v1/ai/{endpoint}/seedance/asset/group/create' \
--header 'Authorization: Bearer ${your_AK}' \
--header 'Content-Type: application/json' \
--data '{
  "Name": "test",
  "Description": "test",
  "GroupType": "AIGC"
}'

Response Example

{
  "id": "group-2026**********-*****"
}

Get asset group details

GET

https:// genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance /asset/group

Request query parameters

field Type Required default value Description
id string Yes Asset Group ID

Response Parameters

field Type Required Description
id string Yes Asset Group ID
bytedToken string Yes Asset Group bytedToken
name string Yes Name of Asset Group
description string Yes Description of Asset Group
groupType string Yes Asset Group Type (AIGC/LivenessFace)
createTime string Yes Creation Time
updateTime string Yes Update Time
status string Yes Status: Active / Processing / Failed

Request Body Example

curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/asset/group?id={your group id}' \
--header 'Authorization: Bearer ${your_AK}' \
--header 'Content-Type: application/json'

Response Example

{
    "id": "your group id",
    "bytedToken": "your bytedToken",
    "name": "your group name",
    "description": "your group description",
    "groupType": "LivenessFace",
    "createTime": "2026-04-22T08:59:29Z",
    "updateTime": "2026-04-22T09:02:57Z",
    "status": "Active"
}

Query the asset group list

GET https:// genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance /asset/group/list

Request Query Parameters

field Type Required default value Description
filter object Yes Filter Condition Object
filter.groupIds array[string] No Asset Group ID List
filter.groupType string Yes Asset Group Type (LivenessFace: Real Human Portrait / AIGC: Digital Human)
filter.name string No Asset Group Description Asset Group Name (fuzzy search supported)
pageNumber integer No 1 Page number, starting from 1
pageSize integer No 10 Number per page, maximum 100
sortBy string No CreateTime Sorting Field (CreateTime/UpdateTime)
sortOrder string No Desc Sort Order (Desc/Asc)

Response Parameters

field Type Required Description
totalCount integer Yes Total Assets
items array[object] Yes List of Asset Groups
items[].id string Yes Asset Group ID
items[].bytedToken string Yes Asset Group bytedToken
items[].name string Yes Name of Asset Group
items[].description string Yes Description of Asset Group
items[].groupType string Yes Asset Group Type
items[].createTime string Yes Creation Time
items[].updateTime string Yes Update Time
items[].status string Yes Status: Active / Processing / Failed
pageNumber integer Yes Current Page Number
pageSize integer Yes Items per page

Request Body Example

curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/asset/group/list?filter.groupType=LivenessFace&pageNumber=1&pageSize=10' \
--header 'Authorization: Bearer ${your_AK}' \
--header 'Content-Type: application/json'

Response Example

{
    "totalCount": 1,
    "items": [
        {
            "id": "your group id",
            "bytedToken": "your bytedToken",
            "name": "your group name",
            "description": "your group description",
            "groupType": "LivenessFace",
            "createTime": "2026-04-22T08:59:29Z",
            "updateTime": "2026-04-22T09:02:57Z",
            "status": "Active"
        }
    ]
}

Update Asset Group

POST

https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance /asset/group

Request body parameters

field Type Required default value Description
id string Yes Asset Group ID
name string No New asset group name, up to 64 characters
description string No New asset group description, up to 300 characters

Response Parameters

field Type Required Description
id string Yes Asset Group ID
name string No New asset group name, up to 64 characters
description string No New asset group description, up to 300 characters

Request Body Example

curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/asset/group' \
--header 'Authorization: Bearer ${your_AK}' \
--header 'Content-Type: application/json' \
--data '{
    "id":"your group id",
    "name":"your group name",
    "description":"your group description"
}'

Response Example

{
    "id": "your group id",
    "name": "your group name",
    "description": "your group description"
}

Delete Asset Group

DELETE

https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance /asset/group

Request Body Parameters

Field Type Required default value Description
id string No Asset Group ID to be deleted
bytedToken string No Asset Group bytedToken

Deleting an asset group requires passing either the asset group ID or bytedToken, with the asset group ID taking precedence.

When an asset group is deleted, all assets under the asset group will be deleted synchronously.

Response Parameters

Field Type Required Description
id string Yes Deleted asset group ID

Request Body Example

curl --location --request DELETE 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/asset/group' \
--header 'Authorization: Bearer ${your_AK}' \
--header 'Content-Type: application/json' \
--data '{
    "id":"your group id"
}'

Response Example

{
    "id": "your group id"
}

Create an asset

POST

https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance /asset

Request Body Parameters

Field Type Required default value Description
gourpId string Yes The ID of the asset group to which the asset belongs (must be the Group ID obtained after real-person verification)
url string Yes Publicly accessible asset URL
assetType string Yes Asset Type: Image/Video/Audio
name string No Asset name, up to 64 characters (only used for fuzzy search in ListAssets)
moderation object No Specify whether to disable Content Pre-filter for the current asset.
moderation.strategy string Yes Content pre-review policy for the current asset. Optional values: Default: Enable content pre-review for this asset;Skip: Skip most non-baseline content security review policies.

Response Parameters

Field Type Required Description
id string Yes Asset ID

Request Body Example

curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/asset' \
--header 'Authorization: Bearer ${your_AK}' \
--header 'Content-Type: application/json' \
--data '{
    "groupId":"your group id",
    "url":"your image url",
    "name":"your image name",
    "assetType":"Image"
}'

Response Example

{
    "id": "your asset id"
}

Query Asset Details

GET

https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance /asset

Request Query Parameters

Field Type Required default value Description
id string Yes Asset ID

Response Parameters

Field Type Required default value Description
id integer Yes Asset ID
name string Yes Asset Name
url string Yes Asset Access URL (Valid for 12 Hours)
assetType string Yes ID of the Associated Asset Group
groupId string Yes ID of the Associated Asset Group
status string Yes Asset Status: Active (Available)/Processing (In Progress)/Failed (Failed)
error object No Error message (returned when Status is Failed)
error.code string No Error Code
error.message string No Error Message
createTime string Yes Creation Time
updateTime string Yes Update Time
moderation object Yes Specifies whether to disable content pre-filtering for the current asset.
moderation.strategy string Yes Content pre-review policy for the current asset. Optional values: Default: Enable content pre-review for this asset;Skip: Skip most non-baseline content security review policies.

Request Body Example

curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/asset?{your asset id}' \
--header 'Authorization: Bearer ${your_AK}' \
--header 'Content-Type: application/json' 

Response Example

{
    "id": "your asset id",
    "name": "your asset name",
    "url": "seedance url for your asset",
    "assetType": "Image",
    "groupId": "your groupId",
    "status": "Active",
    "error": {
        "Code": null,
        "Message": null,
        "Data": null
    },
    "createTime": "2026-04-22T10:35:15Z",
    "updateTime": "2026-04-22T11:53:10Z"
}

Query Asset List

GET

https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance /asset/list

Request query parameters

field Type Required default value Description
filter object Yes Filter Condition Object
filter.groupIds array[string] No Asset Group ID List
filter.groupType string Yes Asset Group Type (LivenessFace: Real Human Portrait / AIGC: Digital Human)
filter.statuses string No Asset Status List (Active/Processing/Failed)
filter.name string No Asset Name (fuzzy search supported)
pageNumber integer No 1 Page number, starting from 1
pageSize integer No 10 Number per page, maximum 100
sortBy string No CreateTime Sorting Field (CreateTime/UpdateTime)
sortOrder string No Desc Sort Order (Desc/Asc)

Response Parameters

field Type Required Description
totalCount integer Yes Total Assets
items array[object] No List of Asset Groups
items[].id string Yes Asset List
items[].name string Yes Asset ID
items[].url string Yes Asset Name
items[].groupId string Yes Asset URL (valid for 12 hours)
items[].groupType string Yes ID of the Associated Asset Group
items[].assetType string Yes Asset Type
items[].status string Yes Asset Status
items[].moderation object Yes Specifies whether to disable Content Pre-filter for the current asset.
items[].moderation.strategy string Yes Content pre-review policy for the current asset. Available values: Default: Enable content pre-review for this asset;Skip: Skip most non-baseline content security review policies.
items[].error.code string No Error Code
items[].error.message string No Error Message
items[].createTime string Yes Creation Time
items[].updateTime string Yes Update Time
pageNumber integer Yes Current Page Number
pageSize integer Yes Items per page

Request Body Example

curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/asset/list?filter.groupIds={your group id}&pageSize=10&sortBy=CreateTime&sortOrder=Desc&filter.groupType=LivenessFace' \
--header 'Authorization: Bearer ${your_AK}' \
--header 'Content-Type: application/json' 

Response Example

{
    "totalCount": 1,
    "items": [
        {
            "your asset id",
            "name": "your asset name",
            "url": seedance url for your asset,
            "assetType": "Image",
            "groupId": "your groupId",
            "status": "Active",
            "error": {
                "Code": null,
                "Message": null,
                "Data": null
            },
            "createTime": "2026-04-22T12:15:47Z",
            "updateTime": "2026-04-22T12:15:54Z"
        }
    ],
    "pageNumber": 1,
    "pageSize": 10
}

Update Asset

POST

https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath} /seedance/asset/update

Request Body Parameters

field Type Required default value Description
id string Yes Asset ID to be updated
name string No New asset name, maximum 64 characters

Response Parameters

field Type Required Description
id string Yes Asset ID

Request Body Example

curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/asset/update' \
--header 'Authorization: Bearer ${your_AK}' \
--header 'Content-Type: application/json' \
--data '{
    "id":"your asset id",
    "name":"your asset name"

Response Example

{
    "id": "your asset id"
}

Delete Asset

DELETE

https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance /asset

Request query parameters

field Type Required default value Description
id string Yes Asset ID to be deleted

Response Parameters

field Type Required Description
id string Yes Deleted asset ID

Request Body Example

curl --location -request DELETE 'https://genaiapi-m2.cloudsway.net/v1/ai/{endpointPath}/seedance/asset?id={your group id}' \
--header 'Authorization: Bearer ${your_AK}' \
--header 'Content-Type: application/json'

Response Example

{
    "id": "your asset id"
}