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

# 자산 생성

> POST /v1/assets

## 소개

그룹 내에 자산을 생성합니다. `Content-Type: application/json`; **공개 https URL만** 지원(BytePlus가 직접 가져올 수 있어야 함). Base64 / Data URI / multipart 업로드는 지원하지 않습니다. 로컬 파일은 먼저 OSS / TOS / S3 등에 업로드하세요.

`aigc`와 `liveness_face` 라이브러리 모두 `Image` / `Video` / `Audio`를 지원합니다. 초기 `status`는 `pending`이며, `asset://` 사용 전 `active`가 될 때까지 폴링하세요(보통 1\~3분).

<Note>
  BytePlus `CreateAsset`은 2026년부터 Base64를 더 이상 지원하지 않습니다. [Create an Asset](https://docs.byteplus.com/en/docs/ModelArk/CreateAsset) 참조.
</Note>

## 인증

<ParamField header="Authorization" type="string" required>
  Bearer Token, 예: `Bearer sk-xxxxxxxxxx`
</ParamField>

## 요청 본문

<ParamField body="url" type="string" required>
  공개 https URL; 게이트웨이가 업스트림에 그대로 전달
</ParamField>

<ParamField body="group_id" type="string" required>
  [자산 그룹 생성](/ko/api-reference/endpoint/seedance-2.0/create-asset-group) 또는 [자산 그룹 생성(실인물)](/ko/api-reference/endpoint/seedance-2.0/create-visual-validate-session)에서 받은 그룹 ID
</ParamField>

<ParamField body="asset_type" type="string" default="Image">
  `Image` / `Video` / `Audio`(대소문자 구분 없음)
</ParamField>

<ParamField body="name" type="string">
  표시 이름(≤ 64자; UI/검색 전용, 추론에 사용되지 않음)
</ParamField>

## 형식 및 크기 제한

#### 이미지 (`Image`)

| 항목  | 제한                                                 |
| --- | -------------------------------------------------- |
| 형식  | jpeg / png / webp / bmp / tiff / gif / heic / heif |
| 크기  | \< 30 MB                                           |
| 종횡비 | 0.4 \~ 2.5                                         |
| 해상도 | 300 \~ 6000 px                                     |

#### 비디오 (`Video`)

| 항목        | 제한                     |
| --------- | ---------------------- |
| 형식        | mp4 / mov              |
| 크기        | ≤ 50 MB                |
| 해상도       | 480p, 720p(1080p+ 미지원) |
| 길이        | 2 \~ 15초               |
| FPS       | 24 \~ 60               |
| 종횡비       | 0.4 \~ 2.5             |
| 해상도       | 300 \~ 6000 px         |
| 총 픽셀(W×H) | 409600 \~ 927408       |

#### 오디오 (`Audio`)

| 항목 | 제한        |
| -- | --------- |
| 형식 | mp3 / wav |
| 크기 | ≤ 15 MB   |
| 길이 | 2 \~ 15초  |

> 게이트웨이는 URL 접미사만 검사합니다. 크기/길이 등은 BytePlus가 비동기로 검증합니다. 유효하지 않은 자산은 `status: failed`로 종료됩니다.

## 예제

이미지, 비디오, 오디오 모두 동일한 JSON 구조—`asset_type`과 URL만 다릅니다:

```bash theme={null}
# 이미지
curl -X POST "https://api.gravitex.ai/v1/assets" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://your-cdn.com/portrait.jpg","group_id":"group-xxx","asset_type":"Image","name":"portrait.jpg"}'

# 비디오
curl -X POST "https://api.gravitex.ai/v1/assets" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://your-cdn.com/dance.mp4","group_id":"group-xxx","asset_type":"Video","name":"dance.mp4"}'

# 오디오
curl -X POST "https://api.gravitex.ai/v1/assets" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://your-cdn.com/voice.mp3","group_id":"group-xxx","asset_type":"Audio","name":"voice.mp3"}'
```

## 응답

```json theme={null}
{
  "virtual_id": "asset-20260508120145-pqwhc",
  "asset_url": "asset://asset-20260508120145-pqwhc",
  "group_id": "group-20260508120000-abcde",
  "asset_type": "Image",
  "status": "pending"
}
```

| 필드          | 설명                                      |
| ----------- | --------------------------------------- |
| `asset_url` | 비디오 `content`에서 참조(`asset_type`에 따라 매핑) |
| `status`    | `pending` → `active` / `failed`         |

다음 단계: [자산 목록 조회](/ko/api-reference/endpoint/seedance-2.0/list-assets) 또는 [자산 조회](/ko/api-reference/endpoint/seedance-2.0/get-asset)로 상태 폴링.
