curl --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "brand-avatar-group",
"description": "Virtual avatar asset group"
}'
{
"success": true,
"message": "",
"data": {
"asset_id": "asset-20260318071009-*****",
"group_id": "group-20260318033332-*****",
"asset_type": "image",
"source_url": "https://ark-media-asset.example.com/xxx",
"status": "active",
}
}
seedance-2
Seedance 2 Private Avatar Assets
Create a private virtual avatar group, upload assets, and poll asset status
POST
/
v1
/
videos
/
doubao-seedance-2-0
/
private-avatar
/
groups
curl --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "brand-avatar-group",
"description": "Virtual avatar asset group"
}'
{
"success": true,
"message": "",
"data": {
"asset_id": "asset-20260318071009-*****",
"group_id": "group-20260318033332-*****",
"asset_type": "image",
"source_url": "https://ark-media-asset.example.com/xxx",
"status": "active",
}
}
중국 본토 사용자 안내: 중국 본토 사용자는
https://toapis.cn 를 API 엔드포인트(Base URL)로 사용해 주세요. 본 문서의 예시에서 https://toapis.com 을 https://toapis.cn 로 바꿔 주세요.- Exposes only the minimum user-facing workflow
- Asset ingestion accepts public
source_urlonly - Only assets with
status=activecan be used for generation
이 기존 API는 계속 사용할 수 있습니다. 동영상 작업 안에서 심사하려면 요청 시 소재 심사를 참고하고
private_asset_review: true를 설정하세요. 기존 asset:// 참조를 사용할 때는 스위치를 생략하거나 false로 설정해야 합니다. 새 모드는 기존 참조를 거부합니다.Authorizations
string
필수
All requests require Bearer Token authentication.
Workflow
1. Create Asset Group
Call this endpoint:POST /v1/videos/doubao-seedance-2-0/private-avatar/groups
- Creates a new virtual avatar asset group
- Returns the
group_idused in the upload step
curl --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "brand-avatar-group",
"description": "Virtual avatar asset group"
}'
2. Upload Asset
Call this endpoint:POST /v1/videos/doubao-seedance-2-0/private-avatar/assets
- Uploads one asset into the target group
- Returns an
asset_id - Starts asynchronous processing
asset_type values:
imagevideoaudio
source_url must be a publicly reachable http/https URL.
curl --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/assets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"group_id": "group-20260318033332-*****",
"asset_type": "image",
"source_url": "https://files.example.com/avatar-full-body.jpg",
"name": "full-body"
}'
3. Get Asset 상태
Call this endpoint:GET /v1/videos/doubao-seedance-2-0/private-avatar/assets/{asset_id}
- Returns the current asset status
- Tells you whether the asset is ready for video generation
status=active.
{
"success": true,
"message": "",
"data": {
"asset_id": "asset-20260318071009-*****",
"group_id": "group-20260318033332-*****",
"asset_type": "image",
"source_url": "https://ark-media-asset.example.com/xxx",
"status": "active",
}
}
Use In 비디오 생성
Call this endpoint:POST /v1/videos/generations
active, use asset://<ASSET_ID> in your generation request.
Once the asset becomes active, reference it with:
{
"image_with_roles": [
{
"url": "asset://asset-20260318071009-*****",
"role": "reference_image"
}
]
}