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

# Suno Music

> Suno AI music generation and editing APIs: task lifecycle and pricing

Suno provides a complete AI music workflow: generation, extension, editing, stem separation, and analysis. All operations share a single submission endpoint, differentiated by the `{operation}` path segment:

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

All operations are **asynchronous tasks**: submit, receive a task ID, then poll the task status endpoint for results. Returned media URLs (audio, cover images, video) are persisted on our CDN and remain accessible.

## Authorizations

<ParamField header="Authorization" type="string" required>
  Authenticate with a Bearer Token.

  Get your API Key: [API Key management](https://toapis.com/console/token)

  ```
  Authorization: Bearer YOUR_API_KEY
  ```
</ParamField>

## Conventions

* `model` in the request body is always `"suno"`
* Operations on existing work take `task_id` (local IDs, `tsk_aud_` prefix); some also accept `audio_index` to pick a track
* `custom` controls the mode: `true` = custom lyrics mode (`prompt` is lyrics; `title`/`style`/`negative_tags` apply); `false`/omitted = inspiration mode (`prompt`/`gpt_description` describes the music)
* `max_mode` is the high-quality tier at 2× price, only for operations marked **Max** below; operations with a `custom` field require effective `custom=true` for it to apply

## Operations & Pricing

### Generation

| operation | Description | Price | Max |
| - | - | - | - |
| `generation` | Music generation (default) | \$0.05 | \$0.10 |
| `lyrics` | Lyrics generation | \$0.008 | - |
| `inspo` | Reference-audio inspired generation | \$0.068 | \$0.136 |
| `sounds` | Sound effect generation | \$0.0096 | - |
| `upsampleTags` | Style tag expansion | \$0.004 | - |

### Upload

| operation | Description | Price | Max |
| - | - | - | - |
| `uploadTask` | Register uploaded audio as a task | \$0.004 | - |
| `uploadCover` | Upload + cover | \$0.05 | \$0.10 |
| `uploadExtend` | Upload + extend | \$0.05 | \$0.10 |

### Extend & Transform

| operation | Description | Price | Max |
| - | - | - | - |
| `extend` | Continue from a timestamp | \$0.05 | \$0.10 |
| `coverSong` | Re-sing in a new style | \$0.05 | \$0.10 |
| `remaster` | Audio remaster | \$0.05 | - |
| `mashup` | Blend two songs | \$0.05 | \$0.10 |
| `replaceMusic` | Rewrite a section | \$0.05 | \$0.10 |
| `sample` | Resample a section (upload sources only) | \$0.05 | \$0.10 |

### Stems

| operation | Description | Price |
| - | - | - |
| `stems` | Vocal / instrumental split | \$0.10 |
| `stemsAll` | Full instrument separation | \$0.24 |
| `addStem` | Add an instrument track | $0.05 (Max $0.10) |
| `addVocals` | Add vocals to an upload | $0.05 (Max $0.10) |
| `addInstrumental` | Add backing to an upload | $0.05 (Max $0.10) |

### Editing

| operation | Description | Price |
| - | - | - |
| `crop` | Keep a time range | \$0.008 |
| `removeSection` | Remove a time range | \$0.008 |
| `fadeIn` | Intro fade-in | \$0.008 |
| `fadeOut` | Outro fade-out | \$0.008 |
| `adjustSpeed` | Tempo change (optional pitch lock) | \$0.024 |
| `concat` | Join extend segments | \$0.004 |

### Analysis & Export

| operation | Description | Price |
| - | - | - |
| `midi` | Audio → MIDI note data | \$0.05 |
| `bpm` | BPM analysis | \$0.0008 |
| `alignedLyrics` | Lyrics timing alignment | \$0.0008 |
| `download` | Multi-format download (mp3/m4a/wav) | \$0.0016 |
| `generateMp4` | Lyric video | \$0.004 |
| `wav` | WAV download (legacy, use `download`) | \$0.0016 |

### Assets (advanced)

| operation | Description | Price |
| - | - | - |
| `persona` | Extract a vocal persona | \$0.004 |
| `createVoice` | Voice cloning (needs clean vocals) | \$0.016 |
| `vox` | Vocal extraction (legacy, use `persona`) | \$0.004 |
| `createModel` | Custom model training (6-24 tracks) | \$0.96 |

## Task Lifecycle

```
submitted → queued / in_progress → completed / failed
```

Pre-charged quota is refunded automatically when a task fails. See [music task status](/docs/en/api-reference/tasks/music-status).

<CardGroup cols={2}>
  <Card title="Generation" icon="music" href="/docs/en/api-reference/audios/suno/generation">
    generation / inspo / sounds / lyrics
  </Card>

  <Card title="Extend & Upload" icon="upload" href="/docs/en/api-reference/audios/suno/upload-extend">
    extend / uploadTask / uploadCover / uploadExtend
  </Card>

  <Card title="Edit & Transform" icon="scissors" href="/docs/en/api-reference/audios/suno/edit">
    crop / fadeIn / fadeOut / replaceMusic / mashup / ...
  </Card>

  <Card title="Analysis & Export" icon="chart-line" href="/docs/en/api-reference/audios/suno/analysis">
    midi / bpm / alignedLyrics / download / generateMp4
  </Card>
</CardGroup>


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