> ## 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.

# Stems & Add Tracks

> stems/stemsAll separation; addStem/addVocals/addInstrumental track generation

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

<ParamField body="model" type="string" required>Fixed `"suno"`</ParamField>
<ParamField body="task_id" type="string" required>Source task ID</ParamField>
<ParamField body="audio_index" type="number">Source track index</ParamField>

## Stem separation

| operation | Description | Price |
| - | - | - |
| `stems` | Vocal / instrumental split | \$0.10 |
| `stemsAll` | Full per-instrument separation | \$0.24 |

Each stem is returned as an `audio_url` in `result.music[]`, mirrored to our CDN.

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

## Add tracks ($0.05 each, Max $0.10)

<Warning>`task_id` for `addVocals`/`addInstrumental`/`addStem` must be an `uploadTask` product.</Warning>

| operation | Description |
| - | - |
| `addVocals` | Generate vocals on an upload |
| `addInstrumental` | Generate backing on an upload |
| `addStem` | Add one instrument track |

<ParamField body="gpt_description" type="string">Target description (required when custom=false)</ParamField>

<ParamField body="custom" type="boolean" />

<ParamField body="prompt" type="string">Lyrics when custom=true</ParamField>
<ParamField body="max_mode" type="boolean">Max tier</ParamField>

```bash theme={null}
curl --request POST \
  --url https://toapis.com/v1/music/generations/addVocals \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{"model":"suno","task_id":"tsk_aud_upload_task","gpt_description":"add dreamy female vocals"}'
```

## Response

<ResponseField name="task_id" type="string">New task ID</ResponseField>
<ResponseField name="status" type="string">`submitted`</ResponseField>


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