ModelSell Docs
VideosGeneric Video

Asset Upload and Management

Upload image, video, and audio assets with /api/assets/upload, then reference them in Seedance 2.0 tasks with asset:// URLs.

Seedance 2.0 image, video, and audio references can be uploaded to the asset library first, then reused in video generation requests with asset://<asset_id>. Asset APIs use the same user API key authentication as the rest of the API.

The asset upload API supports both domestic and overseas model versions. Domestic models do not need the model query parameter. For the overseas dreamina-seedance-2-0-fast-260128 model, add ?model=dreamina-seedance-2-0-fast-260128 so the request is routed to the matching overseas asset channel.

Endpoints

OperationEndpoint
Upload assetPOST /api/assets/upload
Get assetGET /api/assets/{id}

Upload Rules

Asset upload accepts URLs only. Base64 input is not supported for this endpoint.

TypeFormatsLimits
Imagejpeg, png, webp, bmp, tiff, gif, heic, heifAspect ratio 0.4 to 2.5; width or height 300 to 6000 px; under 30MB
Videomp4, mov480p or 720p; 2 to 15 seconds; aspect ratio 0.4 to 2.5; width or height 300 to 6000 px; up to 50MB; 24 to 60 FPS
Audiowav, mp32 to 15 seconds; up to 15MB

Upload an Asset

Domestic Model

curl -X POST "$MODELSELL_BASE_URL/api/assets/upload" \
  -H "Authorization: Bearer $MODELSELL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/image.png",
    "asset_type": "Image",
    "name": "Example image"
  }'

Overseas Model

curl -X POST "$MODELSELL_BASE_URL/api/assets/upload?model=dreamina-seedance-2-0-fast-260128" \
  -H "Authorization: Bearer $MODELSELL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/image.png",
    "asset_type": "Image",
    "name": "Example image"
  }'

Save data.Id from the response:

{
  "code": 0,
  "message": "ok",
  "data": {
    "Id": "asset-20260325152211-vcchd"
  }
}

Get Asset Details

curl "$MODELSELL_BASE_URL/api/assets/asset-20260325152211-vcchd?model=dreamina-seedance-2-0-fast-260128" \
  -H "Authorization: Bearer $MODELSELL_API_KEY"

Example response:

{
  "code": 0,
  "message": "ok",
  "data": {
    "AssetType": "Image",
    "CreateTime": "2026-03-25T15:22:11Z",
    "GroupId": "group-20260324135506-xxxxx",
    "Id": "asset-20260325152211-vcchd",
    "Name": "Example image",
    "ProjectName": "default",
    "Status": "Active",
    "URL": "https://example.com/image.png",
    "UpdateTime": "2026-03-25T15:22:11Z"
  }
}

When the detail response has Status: "Active", the asset can be used in generation requests.

Use Assets in Video Generation

Official Seedance 2.0 content[] format:

{
  "model": "doubao-seedance-2-0-260128",
  "content": [
    {
      "type": "text",
      "text": "Make the character dance"
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "asset://asset-20260325152211-vcchd"
      },
      "role": "reference_image"
    }
  ],
  "resolution": "480p",
  "ratio": "16:9",
  "duration": 5,
  "watermark": false
}

Generic /v1/video/generations format:

{
  "model": "doubao-seedance-2-0-260128",
  "prompt": "Make the character dance",
  "image": "asset://asset-20260325152211-vcchd",
  "duration": 5,
  "size": "480p",
  "metadata": {
    "ratio": "16:9",
    "watermark": false
  }
}

Video and audio assets use the same asset://<asset_id> format in metadata.video_url and metadata.audio_url.

On this page