Skip to main content
POST
Suno Music
suno-music generates songs with Suno V6. Describe the song and let the model write it, or send your own lyrics and style tags. The request runs as an asynchronous task, and a finished task can return several tracks. Every track can be the source of a later edit, such as an extension, a cover, or a stem split. Confirm live rates on the SnapGen models page. Failed tasks are not charged.

Two ways to write a song

Leave custom out (or false) and describe the song in prompt, up to 3,000 characters. The model writes the lyrics, style, and title.
string
required
Set to suno-music.
boolean
default:"false"
false (default) is description mode: prompt describes the song. true is custom mode: prompt holds the lyrics, and title, style, negative_tags, auto_lyrics, and persona_task_id apply.
boolean
default:"false"
true makes an instrumental with no vocals. In custom mode, prompt is then optional.
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.
string
Description mode: what the song should sound like, up to 3,000 characters. Custom mode: the lyrics, up to 5,000 characters. Required, except for a custom-mode instrumental.
string
Track title, up to 80 characters. Applies in custom mode.
string
Style tags for custom mode, up to 1,000 characters, for example synthwave, female vocal.
string
Styles to avoid, up to 1,000 characters. Applies in custom mode.
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.
string
male or female vocals.
number
Style weight, from 0 to 1.
number
Creativity, from 0 to 1. Higher values are more experimental.
number
Audio weight, from 0 to 1.
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. Requires custom: true.
string
Output format: mp3, m4a, or wav. The provider picks one if you omit it.
integer
Target length in seconds, from 10 to 360. The finished track can be shorter or longer. Requires custom: true.
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:
  • Without custom: true, prompt is a description of up to 3,000 characters and is required.
  • With custom: true, prompt holds lyrics of up to 5,000 characters and is required unless instrumental is true.
  • max_mode and duration require custom: true.
  • Send either version or custom_model_task_id, not both.
  • persona_task_id can’t be combined with custom_model_task_id.

Wait for the result

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, or pass webhook to be notified.

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. Keep the task id and the track index: they’re how later operations find the track.

Next steps

Pass this task’s id as source_task_id, and a track index as source_index, to any Suno edit model:

Extend a track

Continue the song from a chosen second, then join the parts with suno-concat.

Cover in a new style

Re-record the song in another genre or mood.

Split stems

Separate vocals, drums, bass, and other stems.

Export files

Get MP3, M4A, or WAV files of a track.
Result URLs are kept for about 72 hours. Download the files you want to keep. See Music generation tasks for task references, webhooks, and errors.