Skip to main content
POST
Suno Extend
suno-extend continues one of your Suno tracks from a chosen second. It keeps the song’s sound and adds a new part from your lyrics or a description. The extension is a new track that starts at continue_at; join it with the original into one full-length song with suno-concat. Confirm live rates on the SnapGen models page. Failed tasks are not charged.
string
required
Set to suno-extend.
string
required
The id of your earlier task that holds the source track. It must be your own task, must have succeeded, and must come from a model listed in Source tracks.
integer
default:"1"
Position of the source track in that task’s result.tracks, counting from 1 (up to 8).
number
required
Second in the source track where the new part starts, from 1 to 3,600. Keep it below the track’s length.
string
default:"v6"
Suno model version: v6, v6-wild, or v6-mini. Omit it when you send custom_model_task_id.
string
The id of a succeeded suno-custom-model task. Generates with that custom model instead of a public version, so don’t send version or persona_task_id.
boolean
true is custom mode: prompt holds the lyrics and the style fields apply. false is description mode: gpt_description guides the result and is required, and max_mode and duration aren’t allowed. The provider treats an omitted value as true.
string
Lyrics for the continuation, up to 5,000 characters. Applies in custom mode.
string
Description-mode prompt, up to 3,000 characters. Required when custom is false.
string
Track title, up to 80 characters. Applies in custom mode.
string
Style tags, up to 1,000 characters. Applies in custom mode.
string
Styles to avoid, up to 1,000 characters. Applies in custom mode.
number
Style weight, from 0 to 1. Applies in custom mode.
number
Creativity, from 0 to 1. Higher values are more experimental.
number
Audio weight, from 0 to 1. Applies in custom mode.
string
male or female vocals.
string
Style variation: off, normal, high, extra, or max. It doesn’t turn on Max mode or change the price.
boolean
default:"false"
true turns on Suno Max mode and bills twice the request price. Not allowed with custom: false.
string
Output format: mp3, m4a, or wav. The provider picks one if you omit it.
boolean
true rewrites the lyrics you send creatively. Applies in custom mode.
string
The id of a succeeded suno-persona task. The song is sung with that Persona. Applies in custom mode. Can’t be combined with custom_model_task_id.
integer
Target length in seconds, from 10 to 360. The finished track can be shorter or longer. Not allowed with custom: false.
string
Optional public https URL that receives one signed event when the task finishes. See Task webhooks.
string
Required with webhook: 16 to 256 characters, used to sign the delivery.

Request rules

The gateway checks these before it reserves any balance:
  • custom: false requires gpt_description.
  • max_mode and duration aren’t allowed with custom: false.
  • Send either version or custom_model_task_id, not both.
  • persona_task_id can’t be combined with custom_model_task_id.

Source tracks

The source task must be your own succeeded task from one of these models: suno-music, suno-inspo, suno-sounds, suno-upload, suno-upload-cover, suno-upload-extend, suno-extend, suno-cover, suno-remaster, suno-add-vocals, suno-add-instrumental, suno-add-stem, suno-replace-section, suno-remove-section, suno-crop, suno-fade-in, suno-fade-out, suno-speed, suno-concat, suno-mashup, suno-sample. Send the task id as source_task_id and pick the track with source_index. Never send provider track or clip IDs. See Reference earlier tasks.

Request

The response is HTTP 202 with a task object and a Location: /v1/tasks/{id} header. Poll GET /v1/tasks/{id} every 10 to 20 seconds until status is succeeded or failed.

Extend and join a song

1

Generate or import the source

Run suno-music, or import your own audio with suno-upload, and wait until the task succeeds. Note its id and the index of the track you want to continue.
2

Extend the track

Send suno-extend with that task as source_task_id, the track as source_index, and the second to continue from as continue_at. Pick a second inside the track, such as the end of a chorus. In custom mode, prompt holds the lyrics of the new part.
3

Join the parts

Send suno-concat with the extension task as source_task_id. Its result is the full song, from the start of the source to the end of the extension.
You can extend an extension again before joining. See the complete workflow with code.

Result

result.tracks[] lists every track in its original order, each with its index and audio_url, plus title, image_url, duration_seconds, lyrics, and tags when the provider returns them. result.urls lists the audio URLs.
Result URLs are kept for about 72 hours. Download the files you want to keep. See Music generation tasks for the task lifecycle, result fields, webhooks, and errors.