> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aisonar.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Material Asset

> Uploads a Seedance material asset into a AI Sonar material group.

Import one publicly reachable source URL into a Seedance material group. AI Sonar stores the material for later use; use the returned material asset `id` for generation, not the source URL.

For `library_type: "aigc_avatar"`, `group_id` is optional; AI Sonar uses or creates the organization default virtual-avatar group. For `library_type: "liveness_face"`, `group_id` is required and must be the AI Sonar group returned by [Get Visual Validation Result](/api-reference/video/get-visual-validation-result).

| Type  | Supported input                                                                                                                                                                         |
| ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Image | `jpeg`, `png`, `webp`, `bmp`, `tiff`, `gif`, `heic`, `heif`; aspect ratio `(0.4, 2.5)`; width and height `(300, 6000)` px; under 30 MB.                                                 |
| Video | `mp4`, `mov`; `480p`, `720p`, or `1080p`; 2-15 seconds; aspect ratio `[0.4, 2.5]`; width and height `[300, 6000]` px; total pixels between 409600 and 2068676; up to 200 MB; 24-60 FPS. |
| Audio | `aac`, `wav`, `mp3`; 2-15 seconds; up to 15 MB.                                                                                                                                         |

AI Sonar validates the source URL, declared or detected media format, and file-size limit. Dimensions, aspect ratio, duration, resolution, total pixels, and FPS are passed through on a best-effort basis and are finally evaluated by the selected video service.

Creation is asynchronous. Poll [Get Material Asset](/api-reference/video/get-material-asset) until `status` is `ACTIVE`. For real-person groups, one group maps to one verified person; uploads with multiple faces or a face that does not match the verified person can fail.

## Example Request

```bash theme={null}
curl https://api.aisonar.dev/v1/videos/assets \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"library_type":"aigc_avatar","group_id":"group-20260720123456-vrt01","asset_url":"https://example.com/reference.png","asset_type":"Image","asset_name":"Front view"}'
```

## Example Response

```json theme={null}
{
  "id": "asset-20260720123456-qn7wr",
  "object": "seedance.material_asset",
  "group_id": "group-20260720123456-vrt01",
  "library_type": "aigc_avatar",
  "asset_name": "Front view",
  "asset_type": "Image",
  "status": "PROCESSING",
  "ready": false,
  "error_message": null,
  "metadata": null,
  "created_at": 1782998400000
}
```
