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

# Suno Workflow Guide

> How the actions chain together, plus the full list of capabilities

Suno's actions chain. Once you have a song you can extend it, restyle it, split its stems, or export it in another format. The order matters, so this page walks the common paths.

If you have not generated a song yet, start with the [quickstart](/docs/en/guides/suno-quickstart).

## Build a full-length song

A single run usually gives you two or three minutes. For something longer, extend in steps and merge at the end.

<Steps>
  <Step title="Generate the opening">
    Call `suno/music` and keep the `music_id`.
  </Step>

  <Step title="Continue from there">
    Call `suno/extend` with that `music_id` and `continue_at`, the second to continue from.

    Extension produces a **segment**, not a full track, typically well under a minute. Extend again from the new segment to go further.
  </Step>

  <Step title="Merge into one track">
    Call `suno/concat` with the **segment's** `music_id`. It follows that segment back through the chain and assembles the whole thing.
  </Step>

  <Step title="Export">
    Call `suno/download` and pick mp3, m4a, or wav.
  </Step>
</Steps>

<Warning>
  Merging takes the ID of a **segment produced by extend**, not the ID of the original song. Passing a track that was never extended returns 400.
</Warning>

## Rework audio you already have

<Steps>
  <Step title="Upload">
    Call `suno/upload` with a publicly downloadable audio URL and keep the `music_id`.

    This endpoint is **synchronous**. It waits for processing, which takes about a minute, so allow a generous client timeout.
  </Step>

  <Step title="Restyle or continue">
    * New style: `suno/upload-cover`
    * Keep writing: `suno/upload-extend`

    Both accept `audio_url` directly, so you can skip the upload step if you prefer.
  </Step>
</Steps>

To borrow the feel of a track without covering it, use `suno/inspo` with up to four references.

## Get the instrumental or the vocal

<Steps>
  <Step title="Separate">
    `suno/stems` pulls the lead vocal by default, or any stem you name. For every stem at once, use `suno/stems-all`.
  </Step>

  <Step title="Rebuild around it">
    * Vocal in hand, want new backing: `suno/add-instrumental`
    * Instrumental in hand, want a singer: `suno/add-vocals`
    * Want one more layer: `suno/add-stem`
  </Step>
</Steps>

## Reuse one voice across songs

<Steps>
  <Step title="Capture the voice">
    * From an existing track: `suno/persona`
    * From an audio file: `suno/create-voice`

    Both return a voice ID.
  </Step>

  <Step title="Generate with it">
    Pass `persona_id` when generating and the new song sings in that voice. Custom mode only.
  </Step>
</Steps>

When you want a whole style rather than just a voice, `suno/create-model` trains one from 6 to 24 audio files. Training takes a while and yields a model ID.

## Finishing touches

Once a song is done, change its tempo with `suno/adjust-speed` (optionally preserving pitch), convert it to MIDI with `suno/gen-midi`, or fetch per-line lyric timings plus whole-track waveform data with `suno/aligned-lyrics`.

## How long you wait

Every action answers a submit the same way: a task ID, which you then read with `GET /suno/v2/fetch/{task_id}` or have pushed to you via `notify_hook`. One code path covers them all, with no per-action branching.

What differs is the wait. These are **usually final on submit**, so the very next query has the result:

`suno/upload`, `suno/persona`, `suno/gen-midi`, `suno/aligned-lyrics`, `suno/upsample-tags`

MIDI and lyric timings occasionally need a little longer. The task then shows as in progress; query again shortly. You are billed once.

<Note>
  Of these, the submit request for `suno/upload` is by far the slowest, close to a minute before it answers, so allow a generous client timeout. The rest return quickly.
</Note>

## Every capability

### Create something new

| Action        | What it does                                                                    | Required          |
| ------------- | ------------------------------------------------------------------------------- | ----------------- |
| `suno/music`  | Generate a full song from a one-line idea or your own lyrics. Returns two takes | —                 |
| `suno/lyrics` | Write lyrics from a theme. Returns two drafts                                   | `prompt`          |
| `suno/sounds` | Generate one-shot or looping sound effects, with optional BPM and key           | `sound`           |
| `suno/inspo`  | Create from one to four reference tracks as style guides                        | `audio_urls`      |
| `suno/sample` | Chop a sample and build a new track around it                                   | `music_id`        |
| `suno/mashup` | Blend two tracks into a new one                                                 | `mashup_music_id` |

### Work on an existing track

| Action                  | What it does                                                         | Required                                   |
| ----------------------- | -------------------------------------------------------------------- | ------------------------------------------ |
| `suno/extend`           | Continue a track from a given second, keeping the original style     | `continue_at`、`music_id`                   |
| `suno/cover`            | Re-perform a track in a new style while keeping its melodic skeleton | `music_id`                                 |
| `suno/remaster`         | Re-render a track while keeping its structure                        | `music_id`                                 |
| `suno/replace-section`  | Rewrite just one time range, leaving the rest untouched              | `infill_end_s`、`infill_start_s`、`music_id` |
| `suno/add-vocals`       | Add a sung vocal line over an instrumental                           | `music_id`                                 |
| `suno/add-instrumental` | Build a full instrumental around a vocal track                       | `music_id`                                 |
| `suno/add-stem`         | Layer an additional instrument track onto an existing song           | `music_id`                                 |

### Bring your own audio

| Action               | What it does                                             | Required                  |
| -------------------- | -------------------------------------------------------- | ------------------------- |
| `suno/upload`        | Upload audio so other actions can reference it           | `audio_url`               |
| `suno/upload-cover`  | Upload your own audio and re-perform it in a new style   | `audio_url`               |
| `suno/upload-extend` | Upload your own audio and continue it from a given point | `audio_url`、`continue_at` |

### Split and reassemble

| Action           | What it does                                            | Required   |
| ---------------- | ------------------------------------------------------- | ---------- |
| `suno/stems`     | Split out the lead vocal, or any single instrument stem | `music_id` |
| `suno/stems-all` | Separate every instrument and vocal stem at once        | `music_id` |
| `suno/concat`    | Merge the segments produced by extend into one track    | `music_id` |

### Adjust

| Action              | What it does                                       | Required           |
| ------------------- | -------------------------------------------------- | ------------------ |
| `suno/adjust-speed` | Change playback speed, optionally preserving pitch | `music_id`、`title` |

### Export

| Action          | What it does               | Required             |
| --------------- | -------------------------- | -------------------- |
| `suno/download` | Export as mp3, m4a, or wav | `formats`、`music_id` |
| `suno/gen-midi` | Convert a track to MIDI    | `music_id`           |

### Voices and models

| Action              | What it does                                        | Required            |
| ------------------- | --------------------------------------------------- | ------------------- |
| `suno/persona`      | Extract a voice persona from a track for reuse      | `music_id`、`name`   |
| `suno/create-voice` | Clone a reusable voice from a single audio file     | `audio_url`         |
| `suno/create-model` | Train your own style model from 6 to 24 audio files | `audio_urls`、`name` |

### Analysis

| Action                | What it does                                                                                                         | Required   |
| --------------------- | -------------------------------------------------------------------------------------------------------------------- | ---------- |
| `suno/aligned-lyrics` | Fetch per-line lyric timings plus whole-track waveform data, for karaoke-style highlighting and drawing a track view | `music_id` |
| `suno/upsample-tags`  | Expand a few short tags into a detailed style description                                                            | `tags`     |

## About pricing

Billing is per call, independent of length or how many results come back. A few things worth knowing:

* When an action returns several results and only some succeed, you are charged **for the ones that succeeded**
* `max_mode` doubles the price and only applies in custom mode
* Failed tasks are refunded
* Lyric timings (`suno/aligned-lyrics`) are free

Per-action prices are on each model's detail page.

## Common questions

<AccordionGroup>
  <Accordion title="Why does merging say the track cannot be merged?">
    `suno/concat` expects the ID of a segment produced by extend. The original song has no follow-on segments to merge, so it returns 400.
  </Accordion>

  <Accordion title="My upload keeps timing out">
    `suno/upload` is synchronous and takes close to a minute. Raise your client timeout to 90 seconds or more. The audio URL must also be publicly downloadable, not a page behind a login.
  </Accordion>

  <Accordion title="Can I use both songs from one run?">
    Yes. Every entry in `musics` is a finished track with its own `music_id`, and each can be extended or split independently.
  </Accordion>

  <Accordion title="Which model version should I pick?">
    All three cost the same. `chirp-v6` is balanced, `chirp-v6-wild` is bolder, `chirp-v6-mini` is faster. Defaults to `chirp-v6`. Only generation actions accept it; every other action is version-independent.
  </Accordion>
</AccordionGroup>
