What is Custom Mode?
By default,/api/generate lets Suno write the lyrics and pick a style based on your prompt. Custom Mode reverses this: you supply the lyrics, the musical style via tags, and the title, and Suno focuses on realising your creative brief rather than inventing one.
Use POST /api/custom_generate instead of /api/generate.
Request fields
The full lyrics text. In Custom Mode, this field contains the actual song lyrics rather than a description. Suno uses section markers like
[Verse], [Chorus], [Bridge] to understand song structure.A comma-separated string of musical style and genre descriptors. These guide the instrumentation, tempo, and vocal style. For example:
"heavy metal, electric guitar, drums".The title of the song. Appears in the returned
AudioInfo object’s title field.When
true, the lyrics in prompt are ignored and Suno generates a purely instrumental track matching the style tags. Defaults to false.The Suno model to use. Defaults to
chirp-v3-5.When
true, the server waits up to 100 seconds for generation to complete before responding. When false (default), returns immediately with status "submitted". See polling for completion.Styles and elements to exclude from the generation. For example:
"no piano, no drums".Writing effective tags
Tags are the primary way to shape the sound of a Custom Mode generation. Think of them as a genre and production brief compressed into a short string. Some examples:| Desired sound | Tags |
|---|---|
| Radio-ready pop | upbeat pop, female vocalist, synth, catchy hook |
| Relaxed study music | lo-fi hip hop, chill, rain ambience, vinyl crackle |
| Film score feel | epic orchestral, cinematic, strings, choir |
| Heavy rock | heavy metal, electric guitar, drums, distortion |
| Acoustic singer-songwriter | acoustic folk, fingerpicking, male vocalist, intimate |
Negative tags
Usenegative_tags to prevent specific elements from appearing in the track. This is useful when a style tends to include sounds you want to exclude.
no piano— remove piano from an otherwise piano-heavy genreno drums— useful for ambient or solo instrument tracksacoustic only— suppress electric instrumentsno vocals— alternative to settingmake_instrumental: true
Instrumental mode
Setmake_instrumental: true to generate music without any lyrics or vocals. The prompt field is ignored when this flag is set — you only need to provide tags and title.
Extending a custom song
After you generate a clip, you can continue it with new content usingPOST /api/extend_audio. This is useful for building longer songs section by section.
The
id of the existing clip to extend.Additional lyrics for the extension.
Timestamp in seconds from which to branch the extension. Defaults to the end of the clip. Pass a value like
30 to branch from the 30-second mark instead.Style tags for the extension. Can differ from the original to transition the sound.
Styles to exclude from the extension.
Title for the extended clip.
Model to use. Defaults to
chirp-v3-5.Whether to wait for the extension to finish before responding.
Complete example
The following example generates a custom song and then polls for completion.Extending the generated clip
Python
extend_audio returns a new AudioInfo array with fresh clip IDs. Poll these new IDs the same way you poll the original generation.