DataEyesAI
Official SiteConsoleDocs Home
Getting StartedDeveloper ToolsAI Models API
Official SiteConsoleDocs Home
Getting StartedDeveloper ToolsAI Models API
  1. Seedance Video Generation
  • Getting Started
    • Overview
    • Console (Getting Started)
    • API Key
    • Base URL
  • Developer Tool Integration
    • OpenClaw
    • Claude Code
    • Codex
    • Gemini CLI
    • Grok CLI
    • Other Tools
  • AI Models API
    • OpenAI format (supports major original models)
      • Chat (Response)
        • Create Network Search
        • Create Model Response GPT-5 Enable Thinking
        • Create Function Call
        • Create Model Response
        • Create Model Response (Streaming Return)
        • Create Model Response (Control Thinking Length)
      • ChatGPT Interface
        • Audio
          • Audio to text gpt-4o-transcribe
          • GPT-4o-audio
          • Audio to text whisper-1
          • Audio to text gpt-4o-transcribe
          • Create voice gpt-4o-mini-tts
        • Chat
          • Create chat-based image recognition (non-streaming)
          • Create chat-based image recognition (streaming)
          • Create chat-based image recognition (streaming) best64
          • Official N test
          • Create structured output
          • Control the effort level of the inference model
          • Create chat function call
          • deepseek-ocr recognition
          • Create chat completion (non-stream)
        • Completions
          • ChatGPT automatic completion
          • Create completion
      • Image
        • Edit image
        • Create chat completion (streaming)
        • Create chat completion (qwen-mt-turbo)
        • Create chat completion with deepseek v3.1 level of reasoning (streaming)
      • Audio
        • Speech recognition
        • Speech synthesis
        • Official Function Calling invocation
        • Create chat-generated images (non-streaming)
      • Embedding
        • Text embeddings
    • Anthropic format
      • Chat
      • Chat(prompt cache)
      • Streaming response
      • Chat (deep reasoning)
      • Tool invocation (function call)
      • Analyze image
    • Google Gemini interface
      • Native format
        • Text-to-image + control over aspect ratio + clarity
        • Generate image
        • Text generation
        • Text generation - stream
        • Text generation + reasoning - stream
        • Image generation
        • Formatted output
        • Function call
        • Document understanding
        • URL context [native format]
        • Code execution
        • Video understanding
        • URL context
        • Video understanding - url [native format]
        • Imagen 4
        • Audio understanding
        • Embeddings
        • Chat
        • Edit image
      • Image-to-image Base64 request method
        • Multi-image fusion slice generation with gemini-3-pro-image-preview, controlling aspect ratio and clarity
        • Image editing
        • Single image gemini-3-pro-image-preview, controlling aspect ratio and clarity.
        • Image generation( gemini-2.5-flash-image)
        • Image generation gemini-2.5-flash-image, controlling aspect ratio.
        • Image understanding
      • Image-to-image URL request returns URL request format OpenAI
        • Single image generation with gemini-3-pro-image-preview, controlling aspect ratio and clarity.
        • Multi-image fusion slice generation with gemini-3-pro-image-preview, controlling aspect ratio and clarity.
        • Image understanding
    • NanoBanana
      • OpenAI request
        • Edit image
        • OpenAI image format
      • Gemini request
        • Generate image
        • Edit image
    • Midjourney format
      • Midjourney API Reference
      • Task query interface
      • Upload image
      • Get seed (Seed)
      • Submit Imagine task
      • Query tasks based on ID list
      • FaceSwap
      • Execute Action operation
      • /mj/submit/blend
      • Submit Describe task
      • Submit Modal
      • Refresh link
      • Edit image
      • Query task status by task ID
      • Get the seed of the task image
    • Doubao - Painting
      • doubao-seededit-3-0-i2i-250628
      • doubao-seedream-4-0-250828 - text-to-image
      • doubao-seedream-4-0-250828 - image-to-image
      • doubao-seedream-4-0-250828 - multi-image generation
    • Rerank Reordering Model
      • Rerank
    • Video Model
      • Grok Video Generation
        • 00-Overview
        • 01-Text-to-Video
        • 02-Image-to-Video
        • 03-Reference-to-Video
        • 04-Video-Editing
        • 05-Video-Extension
      • Seedance Video Generation
        • 00-Overview
        • 01-Create-Video-Generation-Task
        • 02-Query-Video-Generation-Task
        • 03-Query-Video-Generation-Task-List
        • 04-Cancel-or-Delete-Task
        • Seedance Private Asset Library API Documentation
      • MiniMax-H3 Video Generation
        • 00-Overview
        • 01-Create-Video-Generation
        • 02-Create-Video-Regeneration
        • 03-Create-H3-Context-IR
        • 04-Query-Task
        • 05-List-Tasks
        • 06-Cancel-or-Delete-Task
      • Hailuo Video Generation
        • 00-Overview
        • 01-Text-to-Video-T2V
        • 02-Image-to-Video-I2V
        • 03-First-Last-Frame-FL2V
        • 04-Subject-Reference-S2V
        • 05-Query-Task-Status
        • 06-Video-Download
        • 99-Appendix-Camera-Movement-and-Webhooks
      • Jimeng Video Generation
        • 00-Overview
        • 01-3.0-Pro-Video-Generation
        • 02-720P-Text-to-Video
        • 03-720P-Image-to-Video-First-Frame
        • 04-720P-Image-to-Video-Start-End-Frame
        • 05-720P-Image-to-Video-Camera
        • 06-1080P-Text-to-Video
        • 07-1080P-Image-to-Video-First-Frame
        • 08-1080P-Image-to-Video-Start-End-Frame
        • 09-Error-Codes
      • Kling AI Video Generation
        • 00-Overview
        • 01-Text-to-Video
        • 02-Image-to-Video
        • 03-Omni-Video
        • 04-Multi-Image-to-Video
        • 05-Motion-Control
        • 06-Multi-Elements
        • 07-Video-Extension
        • 08-Lip-Sync
        • 09-Avatar
        • 10-Text-to-Audio
        • 11-Video-to-Audio
        • 12-TTS
        • 13-Custom-Voices
        • 14-Image-Recognition
        • 15-Element-Management
        • 16-Video-Effects
      • Vidu Video Generation
        • 00-Overview
        • 01-Text-to-Video
        • 02-Image-to-Video
        • 03-Reference-to-Video
        • 04-Start-End-Frame
        • 05-Multi-Frame
        • 06-Scene-Template
        • 07-Template-Story
        • 08-Query-Tasks
      • HappyHorse
        • HappyHorse Text-to-Video
        • HappyHorse Image-to-Video (First Frame)
        • HappyHorse Reference-to-Video
        • HappyHorse Video Editing
      • Wan Video Generation
        • 00-Overview.md
        • 01-Text-to-Video
        • 02-Image-to-Video
        • 03-Reference-to-Video
        • 04-Video-Editing
        • 05-First-Last-Frame-to-Video
        • 06-Motion-Transfer-and-Character-Swap
        • 07-Digital-Human-Video
        • 08-VACE-Video-Editing
        • 09-Query-Task
    • Audio API
      • Audio API
      • Gemini TTS API
      • Google DeepMind Lyria API
      • Elevenlabs Speech to Text API Reference
      • Text-to-Music Suno
        • Task Submission
          • Generate Song (Inspiration Mode)
          • Generate Song (Custom Mode)
          • Generate Song (Continuation Mode)
          • Generate Song (Singer Style)
          • Generate Song (Secondary Creation from Uploaded Song)
          • Generate Song (Song Stitching)
          • Generate Lyrics
          • Song Stitching
        • Query Interface
          • Batch Retrieve Tasks
          • Query Single Task
  • Search / Reader Product
    • Web Reader API​​
      • Web Reader API
      • Web Reader API(HK)
    • Web Search API​​
      • Modal Card API
        • Weather
          • All City ID
          • Weather Query API
      • Web Search API
      • Video Search api
      • Trending Search API
    • Document OCR Parsing API
      • fiel upload
      • URL Parsing
  • Advanced & System API
    • Data Updates
    • System interface
      • API Key & Quota Query API
      • API Key Management API
    • API Reference​​
      • Error Codes
      • HTTP Notes
    • List models
      • Models
  1. Seedance Video Generation

Seedance Private Asset Library API Documentation

Version: v1.0  |  Release Date: 2026-06-24  |  Environment: DataeyesAI Public Cloud

Table of Contents#

1. Overview
2. Getting Started
3. Common Protocol
4. Asset Group APIs
4.1 Create Asset Group — CreateAssetGroup
4.2 List Asset Groups — ListAssetGroups
4.3 Get Asset Group — GetAssetGroup
4.4 Update Asset Group — UpdateAssetGroup
4.5 Delete Asset Group — DeleteAssetGroup
5. Asset APIs
5.1 Upload Asset — CreateAsset
5.2 List Assets — ListAssets
5.3 Get Asset — GetAsset
5.4 Update Asset — UpdateAsset
5.5 Delete Asset — DeleteAsset
6. Referencing Assets in Video Generation
6.1 Submit Video Generation Task
6.2 Query Video Generation Result
7. End-to-End Example
8. State Machine
9. Error Code Reference
10. Usage Limits
10.1 Asset File Specifications
10.2 Expiration
10.3 Billing
11. FAQ
12. Changelog

1. Overview#

The Seedance Private Asset Library provides centralized hosting for reusable assets in video generation scenarios. You can upload images, videos, and audio to the asset library via API calls or through the "SD Asset Library" page in the DataeyesAI console. Once hosted, assets can be referenced in video generation requests using the asset://<AssetId> protocol, eliminating the need for repeated uploads.

Core Capabilities#

CapabilityDescription
Asset Group ManagementOrganize assets into groups by business dimension, with full CRUD support
Asset HostingSupports asynchronous upload, status polling, referencing, and deletion of Image / Video / Audio resources
Account IsolationAll resources are isolated at the account level. All API tokens under the same account share the same asset library; cross-account access is not permitted
Content ModerationAssets are automatically reviewed for content safety after upload. Only assets with Active status can be used in video generation

Typical Use Cases#

Character Consistency: Upload stable portrait assets as reference images to ensure consistent character appearance across multiple shots.
Brand Asset Reuse: Centrally host frequently used assets such as logos, product images, and background music to avoid repeated uploads.
Batch Generation Speedup: Upload once, reference multiple times — saves repeated download and moderation overhead.

2. Getting Started#

2.1 Service Endpoint#

EnvironmentEndpoint
DataeyesAI (Public Cloud)https://platform.dataeyes.ai
Private DeploymentProvided by the deployment party, as per contract

2.2 Obtaining an API Token#

Log in to the DataeyesAI console and navigate to the "API Tokens" module to create a token. It is recommended to assign separate tokens for different business lines for auditing and rate limiting purposes.

2.3 Authentication#

All requests must include the API token in the HTTP header:
Authorization: Bearer <YOUR_API_KEY>
Authentication failure response examples:
ScenarioHTTP StatusResponse Body
Token not provided401{"error":{"code":"","message":"未提供令牌 (request id: ...)","type":"server_error"}}
Token invalid or disabled401{"error":{"code":"","message":"无效的令牌 (request id: ...)","type":"server_error"}}

3. Common Protocol#

3.1 Request Routing#

Asset library APIs are distinguished by the Action query parameter:
POST https://platform.dataeyes.ai/seedance?Action=<ActionName>&Version=2024-01-01
ParameterDescription
ActionOperation name, case-sensitive. e.g., CreateAssetGroup, ListAssets
VersionAPI version, currently fixed as 2024-01-01
Video generation APIs use independent paths and do not use Action routing:
POST /seedance/api/v3/contents/generations/tasks
GET  /seedance/api/v3/contents/generations/tasks/{task_id}

3.2 Request Format#

Content-Type: application/json
Field Naming: Asset library APIs use PascalCase (e.g., GroupId, AssetType); video generation APIs use snake_case (e.g., image_url, generate_audio)

3.3 Response Format#

Success response:
{
  "ResponseMetadata": {
    "RequestId": "2026062415283493B3836D523A0F3F0AFB",
    "Action": "CreateAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "group-20260624152835-lb6rn"
  }
}
ResponseMetadata.RequestId: Unique identifier for this request. Always provide this field when troubleshooting.
Result: Business data, structured per API definition.
Error responses come in two forms:
Form 1 — Gateway-level error (authentication failure, resource permission checks, etc. — no ResponseMetadata):
{
  "error": "resource does not belong to current user"
}
Form 2 — Business-level error (parameter validation, business rules, etc. — includes ResponseMetadata.Error):
{
  "ResponseMetadata": {
    "RequestId": "...",
    "Action": "CreateAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing",
    "Error": {
      "Code": "MissingParameter.Name",
      "Message": "The required parameter Name is missing."
    }
  }
}

3.4 Time Format#

All time fields are in UTC timezone, ISO 8601 format: 2026-06-24T07:28:35Z.

3.5 Resource ID Format#

Resource TypeFormatExample
Asset Groupgroup-<YYYYMMDDHHmmss>-<5-char random>group-20260624152835-lb6rn
Assetasset-<YYYYMMDDHHmmss>-<5-char random>asset-20260624152850-mftbb
Video Taskcgt-<YYYYMMDDHHmmss>-<5-char random>cgt-20260624152927-ptz2s

4. Asset Group APIs#

Asset Groups are logical containers for organizing assets by business dimension.

4.1 Create Asset Group — CreateAssetGroup#

Create an asset group container.
Request:
POST /seedance?Action=CreateAssetGroup&Version=2024-01-01
Request Parameters:
ParameterTypeRequiredDescription
NamestringYesAsset group name, 1–64 characters
DescriptionstringNoAsset group description, max 256 characters
GroupTypestringNoAsset group type, defaults to AIGC. Currently only AIGC is supported
Request Example:
Response Parameters:
ParameterTypeDescription
Result.IdstringNewly created asset group ID
Response Example:
{
  "ResponseMetadata": {
    "RequestId": "2026062415283493B3836D523A0F3F0AFB",
    "Action": "CreateAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "group-20260624152835-lb6rn"
  }
}

4.2 List Asset Groups — ListAssetGroups#

Paginated query of asset groups under the current account. The system automatically injects account-level isolation — no manual filtering required.
Request:
POST /seedance?Action=ListAssetGroups&Version=2024-01-01
Request Parameters:
ParameterTypeRequiredDescription
PageNumberintegerNoPage number, defaults to 1, starting from 1
PageSizeintegerNoItems per page, defaults to 10, max 100
Filter.GroupTypestringNoType filter, defaults to AIGC
Request Example:
Response Parameters:
ParameterTypeDescription
Result.TotalCountintegerTotal matching count
Result.PageNumberintegerCurrent page number
Result.PageSizeintegerCurrent page size
Result.Items[]arrayList of asset groups
Result.Items[].IdstringAsset group ID
Result.Items[].NamestringAsset group name
Result.Items[].DescriptionstringAsset group description
Result.Items[].GroupTypestringType
Result.Items[].ProjectNamestringProject name
Result.Items[].CreateTimestringCreation time (UTC)
Result.Items[].UpdateTimestringLast update time (UTC)
Response Example:
{
  "ResponseMetadata": {
    "RequestId": "2026062415282793B3836D523A0F3F0A8E",
    "Action": "ListAssetGroups",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "TotalCount": 1,
    "PageNumber": 1,
    "PageSize": 10,
    "Items": [
      {
        "Id": "group-20260624152835-lb6rn",
        "Name": "brand_visual_lib",
        "Description": "Brand visual asset library",
        "GroupType": "AIGC",
        "ProjectName": "default",
        "CreateTime": "2026-06-24T07:28:35Z",
        "UpdateTime": "2026-06-24T07:28:35Z"
      }
    ]
  }
}

4.3 Get Asset Group — GetAssetGroup#

Query detailed information of a single asset group.
Request:
POST /seedance?Action=GetAssetGroup&Version=2024-01-01
Request Parameters:
ParameterTypeRequiredDescription
IdstringYesAsset group ID
Request Example:
Response Example:
{
  "ResponseMetadata": {
    "RequestId": "2026062415284193B3836D523A0F3F0B63",
    "Action": "GetAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "group-20260624152835-lb6rn",
    "Name": "brand_visual_lib",
    "Description": "Brand visual asset library",
    "GroupType": "AIGC",
    "ProjectName": "default",
    "CreateTime": "2026-06-24T07:28:35Z",
    "UpdateTime": "2026-06-24T07:28:35Z"
  }
}

4.4 Update Asset Group — UpdateAssetGroup#

Update the name or description of an asset group. GroupType cannot be changed after creation.
Request:
POST /seedance?Action=UpdateAssetGroup&Version=2024-01-01
Request Parameters:
ParameterTypeRequiredDescription
IdstringYesAsset group ID
NamestringNoNew name, 1–64 characters
DescriptionstringNoNew description, max 256 characters
Request Example:
Response Example:
{
  "ResponseMetadata": {
    "RequestId": "202606241529076954A62A765732A09740",
    "Action": "UpdateAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "group-20260624152835-lb6rn"
  }
}

4.5 Delete Asset Group — DeleteAssetGroup#

Delete an asset group. It is recommended to call ListAssets first to confirm all assets in the group have been cleaned up.
Request:
POST /seedance?Action=DeleteAssetGroup&Version=2024-01-01
Request Parameters:
ParameterTypeRequiredDescription
IdstringYesAsset group ID
Request Example:
Response Example:
{
  "ResponseMetadata": {
    "RequestId": "2026062415293548C21A8020C8E8AEA0B3",
    "Action": "DeleteAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "group-20260624152835-lb6rn"
  }
}

5. Asset APIs#

5.1 Upload Asset — CreateAsset#

Fetch a resource from a public URL and ingest it into the library. This is an asynchronous API — a successful response only indicates the task has been accepted. You must poll GetAsset until the status becomes Active before the asset can be referenced in video generation.
Request:
POST /seedance?Action=CreateAsset&Version=2024-01-01
Request Parameters:
ParameterTypeRequiredDescription
GroupIdstringYesParent asset group ID
URLstringYesPublicly accessible URL of the asset
AssetTypestringYesAsset type: Image / Video / Audio
NamestringNoAsset name, 1–64 characters. Used only for fuzzy search in ListAssets, not passed to model inference
Request Example:
Response Parameters:
ParameterTypeDescription
Result.IdstringNewly created asset ID
Response Example:
{
  "ResponseMetadata": {
    "RequestId": "202606241528476954A62A765732A0969D",
    "Action": "CreateAsset",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "asset-20260624152850-mftbb"
  }
}
Tip: Start polling the asset status immediately after upload. Image assets typically become Active within 3–10 seconds; video and audio assets may take longer.

5.2 List Assets — ListAssets#

Paginated query of assets with support for filtering by status, name, and type, as well as sorting. The system automatically injects account-level isolation.
Request:
POST /seedance?Action=ListAssets&Version=2024-01-01
Request Parameters:
ParameterTypeRequiredDescription
Filter.Statusesstring[]NoStatus filter: Processing / Active / Failed
Filter.NamestringNoFuzzy name matching
Filter.AssetTypestringNoType filter: Image / Video / Audio
PageNumberintegerNoPage number, defaults to 1
PageSizeintegerNoItems per page, defaults to 10, max 100
SortBystringNoSort field, currently supports CreateTime
SortOrderstringNoSort direction: Asc or Desc (default)
Note: Filter is a nested object in the request body. Dot notation in the parameter table indicates hierarchy. For example, Filter.Statuses corresponds to {"Filter": {"Statuses": [...]}} in the request body.
Request Example:
Response Parameters:
ParameterTypeDescription
Result.TotalCountintegerTotal matching count
Result.PageNumberintegerCurrent page number
Result.PageSizeintegerCurrent page size
Result.Items[]arrayList of assets
Result.Items[].IdstringAsset ID
Result.Items[].NamestringAsset name
Result.Items[].URLstringTemporary download link (only returned when Active, valid for 12 hours)
Result.Items[].AssetTypestringAsset type
Result.Items[].GroupIdstringParent asset group ID
Result.Items[].StatusstringStatus: Processing / Active / Failed
Result.Items[].ModerationobjectModeration info
Result.Items[].Moderation.StrategystringModeration strategy, defaults to Default
Result.Items[].CreateTimestringCreation time (UTC)
Result.Items[].UpdateTimestringLast update time (UTC)
Result.Items[].ProjectNamestringProject name
Response Example:
{
  "ResponseMetadata": {
    "RequestId": "202606241528566954A62A765732A096EC",
    "Action": "ListAssets",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "TotalCount": 5,
    "PageNumber": 1,
    "PageSize": 10,
    "Items": [
      {
        "Id": "asset-20260624152850-mftbb",
        "Name": "Product Hero Image",
        "URL": "https://ark-media-asset.tos-cn-beijing.volces.com/.../product.png?X-Tos-Algorithm=...",
        "AssetType": "Image",
        "GroupId": "group-20260624152835-lb6rn",
        "Status": "Active",
        "Moderation": { "Strategy": "Default" },
        "CreateTime": "2026-06-24T07:28:50Z",
        "UpdateTime": "2026-06-24T07:28:52Z",
        "ProjectName": "default"
      }
    ]
  }
}
Note: The URL field returns an empty string "" when the asset status is Processing. Once the status changes to Active, it returns a time-limited signed download link (valid for 12 hours by default). Call GetAsset again to obtain a new link after expiration.

5.3 Get Asset — GetAsset#

Query detailed information of a single asset. Primarily used for polling asset processing status after upload.
Request:
POST /seedance?Action=GetAsset&Version=2024-01-01
Request Parameters:
ParameterTypeRequiredDescription
IdstringYesAsset ID
Request Example:
Response Parameters:
ParameterTypeDescription
Result.IdstringAsset ID
Result.NamestringAsset name
Result.URLstringTemporary download link (only returned when Active, valid for 12 hours)
Result.AssetTypestringAsset type
Result.GroupIdstringParent asset group ID
Result.StatusstringStatus: Processing / Active / Failed
Result.ModerationobjectModeration info
Result.Moderation.StrategystringModeration strategy
Result.CreateTimestringCreation time (UTC)
Result.UpdateTimestringLast update time (UTC)
Result.ProjectNamestringProject name
Response Example (Active status):
{
  "ResponseMetadata": {
    "RequestId": "2026062415285732FCC6E4F3BC2FAF6887",
    "Action": "GetAsset",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "asset-20260624152850-mftbb",
    "Name": "Product Hero Image",
    "URL": "https://ark-media-asset.tos-cn-beijing.volces.com/.../product.png?X-Tos-Algorithm=...",
    "AssetType": "Image",
    "GroupId": "group-20260624152835-lb6rn",
    "Status": "Active",
    "Moderation": { "Strategy": "Default" },
    "CreateTime": "2026-06-24T07:28:50Z",
    "UpdateTime": "2026-06-24T07:28:52Z",
    "ProjectName": "default"
  }
}
Recommended Polling Strategy:
PhaseIntervalNotes
First pollAfter 3 secondsImages typically complete in 3–10 seconds
Subsequent pollsExponential backoff up to 10 secondsVideo / audio may take longer
Timeout5 minutesIf still Processing, check source URL accessibility

5.4 Update Asset — UpdateAsset#

Update the asset name. The asset's URL, type, and parent group cannot be changed. To replace an asset, delete and re-upload.
Request:
POST /seedance?Action=UpdateAsset&Version=2024-01-01
Request Parameters:
ParameterTypeRequiredDescription
IdstringYesAsset ID
NamestringNoNew name, 1–64 characters
Request Example:
Response Example:
{
  "ResponseMetadata": {
    "RequestId": "202606241529076954A62A765732A09740",
    "Action": "UpdateAsset",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "asset-20260624152850-mftbb"
  }
}

5.5 Delete Asset — DeleteAsset#

Permanently delete an asset. This action is irreversible. It is not recommended to delete assets currently referenced by in-progress video generation tasks, as this may cause generation failures.
Request:
POST /seedance?Action=DeleteAsset&Version=2024-01-01
Request Parameters:
ParameterTypeRequiredDescription
IdstringYesAsset ID
Request Example:
Response Example:
{
  "ResponseMetadata": {
    "RequestId": "202606241529296954A62A765732A097E8",
    "Action": "DeleteAsset",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {}
}

6. Referencing Assets in Video Generation#

Once an asset status becomes Active, it can be referenced in Seedance video generation APIs using the asset://<AssetId> protocol.

6.1 Submit Video Generation Task#

Request:
POST /seedance/api/v3/contents/generations/tasks
Request Parameters:
ParameterTypeRequiredDescription
modelstringYesModel name, e.g., doubao-seedance-2-0-260128
contentarrayYesContent array containing text descriptions and asset references
content[].typestringYesContent type: text or image_url
content[].textstringConditionalRequired when type=text, video description text
content[].rolestringConditionalOptional when type=image_url, asset role (e.g., reference_image)
content[].image_url.urlstringConditionalRequired when type=image_url, supports asset://<AssetId> or public URL
ratiostringNoAspect ratio, e.g., 16:9, 9:16, 1:1
durationintegerNoVideo duration (seconds), e.g., 5, 10
watermarkbooleanNoWhether to add watermark, defaults to false
generate_audiobooleanNoWhether to generate audio, defaults to false
Asset Reference Convention: Pass assets in the content array using asset://<AssetId>. In the prompt text, refer to assets using ordinal labels such as "Image 1", "Video 1", "Audio 1" (the ordinal is based on the asset's position among same-type assets in the array). Do NOT use Asset IDs directly in the prompt text.
Request Example:
Response Example:
{
  "id": "cgt-20260624152927-ptz2s"
}

6.2 Query Video Generation Result#

Video generation is an asynchronous task. After submission, poll to check the result.
Request:
GET /seedance/api/v3/contents/generations/tasks/{task_id}
Request Example:
Response Parameters:
ParameterTypeDescription
idstringTask ID
modelstringModel used
statusstringTask status: queued / running / succeeded / failed / cancelled
content.video_urlstringVideo download link (returned when succeeded), with time-limited signature, valid for 48 hours by default
usage.completion_tokensintegerTokens consumed for generation
usage.total_tokensintegerTotal tokens consumed
created_atintegerTask creation time (Unix timestamp, seconds)
updated_atintegerTask update time (Unix timestamp, seconds)
seedintegerRandom seed used for this generation
resolutionstringOutput resolution, e.g., 720p
ratiostringAspect ratio
durationintegerVideo duration (seconds)
framespersecondintegerFrame rate, defaults to 24
service_tierstringService tier
execution_expires_afterintegerTask result retention duration (seconds), defaults to 172800 (48 hours)
generate_audiobooleanWhether audio was generated
Response Example (Running):
{
  "id": "cgt-20260624152927-ptz2s",
  "model": "doubao-seedance-2-0-260128",
  "status": "running",
  "created_at": 1782286167,
  "updated_at": 1782286167,
  "service_tier": "default",
  "execution_expires_after": 172800,
  "generate_audio": true,
  "draft": false,
  "priority": 0
}
Response Example (Succeeded):
{
  "id": "cgt-20260624152927-ptz2s",
  "model": "doubao-seedance-2-0-260128",
  "status": "succeeded",
  "content": {
    "video_url": "https://ark-acg-cn-beijing.tos-cn-beijing.volces.com/.../video.mp4?X-Tos-Algorithm=..."
  },
  "usage": {
    "completion_tokens": 108900,
    "total_tokens": 108900
  },
  "created_at": 1782286167,
  "updated_at": 1782286432,
  "seed": 77923,
  "resolution": "720p",
  "ratio": "16:9",
  "duration": 5,
  "framespersecond": 24,
  "service_tier": "default",
  "execution_expires_after": 172800,
  "generate_audio": true,
  "draft": false,
  "priority": 0
}
Recommended Polling Strategy:
PhaseIntervalNotes
Initial5 secondsShort videos (5s / 720p) typically complete in 1–3 minutes
Subsequent10 seconds4K resolution may take 30+ minutes

7. End-to-End Example#

The following script demonstrates the complete workflow: Create Asset Group → Upload Asset → Wait for Ready → Generate Video → Get Result.
Prerequisite: jq command-line JSON tool must be installed.

8. State Machine#

8.1 Asset Status Transitions#

            CreateAsset
                │
                ▼
        ┌───────────────┐    Moderation     ┌──────────┐
        │  Processing   │ ──── Failed ────►│  Failed  │ (Irrecoverable)
        └───────┬───────┘                   └──────────┘
                │ Moderation Passed
                ▼
        ┌───────────────┐
        │    Active     │  ── Can be referenced via asset:// in video generation
        └───────┬───────┘
                │ DeleteAsset
                ▼
            (Deleted)
StatusDescriptionAvailable Operations
ProcessingIn progress — fetching source file and performing content moderationGetAsset (polling), DeleteAsset only
ActiveModeration passed, ready for useAll operations; can be referenced via asset://
FailedModeration failed or source file inaccessibleDeleteAsset only

8.2 Video Task Status Transitions#

queued ──► running ──► succeeded
               │
               ├──► failed
               └──► cancelled
StatusDescription
queuedQueued, waiting for scheduling
runningGeneration in progress
succeededGeneration successful, content.video_url is available
failedGeneration failed
cancelledCancelled

9. Error Code Reference#

9.1 Gateway-Level Errors#

Gateway-level errors do not include ResponseMetadata and return error information directly.
HTTP StatusError MessageTrigger ScenarioRecommended Action
401未提供令牌Request missing Authorization headerCheck that the request header is properly set
401无效的令牌Token is incorrect, expired, or disabledVerify token status in the console; recreate if necessary
403resource does not belong to current userResource does not belong to the current user (including non-existent resource IDs)Verify resource ID and token ownership

9.2 Business-Level Errors#

Business-level errors include the full ResponseMetadata, with error details in ResponseMetadata.Error.
Error.CodeDescriptionRecommended Action
MissingParameter.<FieldName>Required parameter is missingAdd the corresponding field as indicated in the Message
InvalidParameter.<FieldName>Parameter format or value is invalidCheck parameter values against constraints
InvalidActionOrVersionAction name or Version is incorrectCheck the Action and Version parameters in the URL
SubscriptionRequiredRequired subscription not activatedComplete the authorization process in the console
Business-level error response example:
{
  "ResponseMetadata": {
    "RequestId": "202606241529096954A62A765732A09755",
    "Action": "CreateAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing",
    "Error": {
      "Code": "MissingParameter.Name",
      "Message": "The required parameter Name is missing."
    }
  }
}

9.3 Retry Strategy#

Error TypeRetryableRecommendation
HTTP 5xxYesExponential backoff, max 3–5 retries
Network timeoutYesExponential backoff, max 3–5 retries
401 Authentication failureNoCheck token configuration
403 Resource not ownedNoVerify resource ID
MissingParameter.*NoFix request parameters
InvalidParameter.*NoFix request parameters

10. Usage Limits#

10.1 Asset File Specifications#

Image Assets
ConstraintRequirement
Formatjpeg, png, webp, bmp, tiff, gif, heic, heif
File Size< 30 MB
Aspect Ratio (width/height)(0.4, 2.5)
Width/Height300–6,000 px
Video Assets
ConstraintRequirement
Formatmp4, mov
File Size≤ 50 MB
Resolution480p, 720p, 1080p
Duration2–15 seconds
Aspect Ratio (width/height)[0.4, 2.5]
Width/Height300–6,000 px
Total Pixels (width × height)409,600–2,086,876
Frame Rate24–60 FPS
Audio Assets
ConstraintRequirement
Formatwav, mp3
File Size≤ 15 MB
Duration2–15 seconds

10.2 Expiration#

ItemValidity PeriodNotes
Asset download link (URL field)12 hoursCall GetAsset again to obtain a new link after expiration
Video generation result (video_url)48 hoursCorresponds to the execution_expires_after field

10.3 Billing#

Video generation is billed based on usage.completion_tokens. Refer to the billing rules page in the DataeyesAI console for specific rates.
Asset library storage and moderation are currently not billed separately.

11. FAQ#

Q: Asset remains in Processing status after upload?
A: Check whether the source URL is publicly accessible. If the URL requires authentication or has geo-restrictions, the platform will be unable to fetch the resource, and the status will eventually change to Failed. Image assets typically complete processing within 3–10 seconds.
Q: API call returns resource does not belong to current user?
A: This error indicates that the resource (asset or asset group) you are trying to access does not belong to the account associated with the current API token. Please check:
1.
Whether the resource ID is correct;
2.
Whether you are using an API token from the correct account.
Asset library isolation is at the account level: all API tokens under the same account (regardless of which Seedance 2.0 model group they belong to) share the same asset library data. Resources are completely isolated between different accounts.
Q: Can API tokens from different groups under the same account share assets?
A: Yes. The asset library is isolated at the account level. All API tokens across all Seedance 2.0 model groups under the same account see identical asset groups and assets. Assets created with any token can be viewed and referenced by all other tokens under the same account.
Q: Asset download link URL field is an empty string?
A: When the asset status is Processing, the URL field returns an empty string "". Wait for the asset status to change to Active before retrieving the download link.
Q: Video generation task still not completed after a long time?
A: Video generation time depends on resolution and duration. 720p / 5-second videos typically complete in 1–3 minutes; 4K resolution may take 30+ minutes.
Q: What to do when the URL download link has expired?
A: Asset download links are valid for 12 hours. After expiration, simply call the GetAsset API again to obtain a new signed link. The asset itself does not expire — only the temporary download link has a time limit.

12. Changelog#

VersionDateChanges
v1.02026-06-24Initial release. Covers 5 Asset Group APIs, 5 Asset APIs, video generation integration, error codes, and state machine
Previous
04-Cancel-or-Delete-Task
Next
00-Overview