avatarType set to Virtual. Your integration only needs an AiToEarn X-Api-Key; no Volcengine access key or secret key is required.
If you do not have an API Key yet, read Get API Key first. Use the same API key to create the group, create assets, and generate video.
Authorized real-person media must use Real-person assets. A
Virtual group created on this page does not replace liveness verification.Integration flow
1
Create a regular asset group
Call the create group endpoint and store
groupId. The returned avatarType is Virtual.2
Prepare a public media URL
The source file must be reachable from the public internet. For a local or private file, use Asset upload and keep the confirmed
data.url.3
Create an asset
Register the image, video, or audio in that group and store
assetId.4
Wait until the asset is ready
Query the asset until
status is Active.5
Generate video
Pass
asset://{assetId} in the Seedance reference field.Create an asset group
Call Create regular asset group:name is required. description is optional. Store data.groupId:
avatarType is always Virtual. Use this groupId when you create, query, or delete assets.
Create an asset
The source URL must be publicly accessible while the asset is created and processed. If the file is local or private, use Asset upload first. Do not pass the object-storageuploadUrl as the asset URL.
Then call Create asset:
assetType can be Image, Video, or Audio. name is optional. Store data.assetId. The initial status is usually Processing.
Wait until the asset is Active
Asset details refreshes the upstream processing status:
The asset list stores the local registration record. Query a single asset to read the latest status.
Use the asset in Seedance
After the status becomesActive, write the asset ID as asset://{assetId} and send it to POST /api/ai/video/generations:
Limits
- Groups created on this page have
avatarTypeVirtual. A real-person group is created only by Complete verification. - Use the same API key for the group, the asset, and video generation.
- Keep the source URL publicly accessible while the asset is processing.
- Put only the asset ID after
asset://. Do not append a path, query string, or fragment. - Match the asset type to the field: images in
images, videos invideos, and audio inaudios. - Use only
Activeassets.
Create a regular asset group
Create a group whose
avatarType is Virtual.Manage assets
Create an asset and check its processing status.

