# Create asset

Add an asset to a specified asset group. Asset files are referenced via URL and support image, video, and audio types.

After creation, the asset status is `Processing`. Once processing completes, it changes to `Active`.
Poll asset status via `GET /v1/assets/{assetId}`.

After successful creation, assets can be referenced in video generation and other endpoints using the `asset://<ASSET_ID>` format.

**File size limits:**

| Type | Formats | Max Size |
|---|---|---|
| Image | JPEG, PNG, WebP, GIF, BMP, TIFF, HEIC, HEIF | 30 MB |
| Video | MP4, MOV | 50 MB |
| Audio | WAV, MP3 | 15 MB |

## Image Asset Upload Guidelines

**Per-image requirements:**
- Formats: JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC / HEIF
- Aspect ratio (width/height): `(0.4, 2.5)`
- Width/height pixels: `(300, 6000)`
- Size: under 30 MB per image

**Multi-asset group recommendations:**
To ensure generated video preserves facial features and clothing details consistent with uploaded assets, it is recommended to upload multiple images of the same person into the same asset group following these guidelines:

**Face close-up**
- Purpose: Upload a facial close-up to ensure the generated video face matches the asset
- Orientation: Portrait, face occupying approximately 2/3 of the frame
- Content: Front-facing, neutral expression close-up, shoulders and above

**Clothing detail**
- Purpose: Upload three-view images (front / side / back) of the same person to ensure clothing details match
- Orientation: Landscape, three views arranged side by side

## POST /v1/assets

> Create asset

Add an asset to a specified asset group. Asset files are referenced via URL and support image, video, and audio types.

After creation, the asset status is `Processing`. Once processing completes, it changes to `Active`.
Poll asset status via `GET /v1/assets/{assetId}`.

After successful creation, assets can be referenced in video generation and other endpoints using the `asset://<ASSET_ID>` format.

**File size limits:**

| Type | Formats | Max Size |
|---|---|---|
| Image | JPEG, PNG, WebP, GIF, BMP, TIFF, HEIC, HEIF | 30 MB |
| Video | MP4, MOV | 50 MB |
| Audio | WAV, MP3 | 15 MB |

## Image Asset Upload Guidelines

**Per-image requirements:**
- Formats: JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC / HEIF
- Aspect ratio (width/height): `(0.4, 2.5)`
- Width/height pixels: `(300, 6000)`
- Size: under 30 MB per image

**Multi-asset group recommendations:**
To ensure generated video preserves facial features and clothing details consistent with uploaded assets, it is recommended to upload multiple images of the same person into the same asset group following these guidelines:

**Face close-up**
- Purpose: Upload a facial close-up to ensure the generated video face matches the asset
- Orientation: Portrait, face occupying approximately 2/3 of the frame
- Content: Front-facing, neutral expression close-up, shoulders and above

**Clothing detail**
- Purpose: Upload three-view images (front / side / back) of the same person to ensure clothing details match
- Orientation: Landscape, three views arranged side by side

### Authentication

`Authorization: Bearer tr-xxx`

### Request Body

Content-Type: `application/json`

- **group_id** `string` **(required)**  
  Target asset group ID (must be a group owned by the current user)
- **url** `string` **(required)**  
  Publicly accessible URL of the asset file
- **asset_type** ``Image` | `Video` | `Audio`` **(required)**  
  Asset type:
- **name** `string`  
  Asset name (optional; auto-generated by the system if not provided)

### Response

- **Id** `string`  
  Asset ID. Can be referenced in video generation and other endpoints using `asset://<Id>` format
- **Name** `string`  
  Asset name
- **AssetType** ``Image` | `Video` | `Audio``  
  Asset type
- **Status** ``Active` | `Processing` | `Failed``  
  Asset processing status:
- **GroupId** `string`  
  Parent group ID
- **URL** `string`  
  Asset file URL
- **CreateTime** `string`  
  Creation time
- **UpdateTime** `string`  
  Last updated time
- **Error** `object`  
  Error information. Only present when `Status: Failed`
- **Error.Code** `string`  
  Error code
- **Error.Message** `string`  
  Error description

### Error Codes

- `400`: 
- `401`: 
- `403`: Asset group does not belong to the current user
- `429`: 
- `502`:
