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

# 연장과 업로드

> extend 연장, uploadTask/uploadCover/uploadExtend 업로드 소스

4개 작업이 동일 엔드포인트를 공유하며 `{operation}`이 동작을 결정합니다:

```
POST https://toapis.com/v1/music/generations/{operation}
```

## Authorizations

<ParamField header="Authorization" type="string" required>
  Bearer Token. API Key:[API Key 관리 페이지](https://toapis.com/console/token)
</ParamField>

## extend — 곡 연장($0.05, Max $0.10)

기존 태스크의 지정 시점부터 이어서 생성. `custom`은 기본 `true`.

<ParamField body="model" type="string" required>고정 `"suno"`</ParamField>
<ParamField body="task_id" type="string" required>원본 태스크 ID</ParamField>
<ParamField body="continue_at" type="number" required>재개 위치(초)</ParamField>
<ParamField body="audio_index" type="number">트랙 번호</ParamField>
<ParamField body="prompt" type="string">이어질 가사(custom 모드)</ParamField>
<ParamField body="title" type="string">제목</ParamField>
<ParamField body="style" type="string">스타일 태그</ParamField>
<ParamField body="max_mode" type="boolean">Max 티어 \$0.10</ParamField>

```bash theme={null}
curl --request POST \
  --url https://toapis.com/v1/music/generations/extend \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{"model":"suno","task_id":"tsk_aud_xxx","continue_at":60,"prompt":"[Chorus] ..."}'
```

## uploadTask — 업로드 등록(\$0.004)

공개 오디오 URL을 태스크로 등록. 산출물은 `sample`/`addVocals`/`addInstrumental`/`addStem`의 **필수 소스**입니다.

<ParamField body="model" type="string" required>고정 `"suno"`</ParamField>
<ParamField body="audioFilePath" type="string" required>공개 접근 가능한 오디오 URL</ParamField>

<Warning>`model` + `audioFilePath`만 전송. `version` 등 불필요한 필드는 업스트림에서 거부됩니다.</Warning>

```bash theme={null}
curl --request POST \
  --url https://toapis.com/v1/music/generations/uploadTask \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{"model":"suno","audioFilePath":"https://example.com/my-vocals.mp3"}'
```

## uploadCover — 업로드+커버($0.05, Max $0.10)

<ParamField body="model" type="string" required>고정 `"suno"`</ParamField>
<ParamField body="audio_url" type="string" required>원본 오디오 URL</ParamField>
<ParamField body="custom" type="boolean">커스텀 가사 모드</ParamField>
<ParamField body="prompt" type="string">가사(custom=true) / 설명</ParamField>
<ParamField body="gpt_description" type="string">영감 설명(custom=false일 때 필수)</ParamField>
<ParamField body="style" type="string">목표 스타일</ParamField>
<ParamField body="persona_id" type="string">보컬 페르소나. `custom_model_id`와 상호 배타</ParamField>
<ParamField body="max_mode" type="boolean">Max 티어</ParamField>

## uploadExtend — 업로드+연장($0.05, Max $0.10)

오디오를 업로드하고 지정 시점부터 연장. 항상 커스텀 모드로 처리.

<ParamField body="model" type="string" required>고정 `"suno"`</ParamField>
<ParamField body="audio_url" type="string" required>원본 오디오 URL</ParamField>
<ParamField body="continue_at" type="number" required>재개 위치(초)</ParamField>
<ParamField body="prompt" type="string">이어질 가사</ParamField>
<ParamField body="style" type="string">스타일</ParamField>
<ParamField body="max_mode" type="boolean">Max 티어</ParamField>

## Response

<ResponseField name="task_id" type="string">태스크 ID</ResponseField>
<ResponseField name="status" type="string">`submitted`</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.