Skip to content
Docs menu

Audio models

Suno

On this page

Full songs with vocals from a text prompt.

modelIdsuno, suno-generate-voice, suno-extend, suno-sounds, suno-timestamped-lyrics, suno-check-voice, suno-generate-persona, suno-replace-section, suno-generate-lyrics, suno-boost-music-style, suno-cover-generate, suno-add-vocals, suno-separate-vocals, suno-generate-midi, suno-mashup, suno-create-music-video, suno-upload-extend, suno-upload-cover, suno-add-instrumental, suno-wav
Modalitymusic
PricingSee this model on the Pricing page for the current per-call price (with your markup).

Operations

OperationmodelIdEndpointRequired input
Generate MusicsunoPOST /api/v1/generatemodelVersion, title
Generate Voicesuno-generate-voicePOST /api/v1/generatetaskId, verifyUrl
Extend Musicsuno-extendPOST /api/v1/generateaudioId, modelVersion, continueAt, prompt
Generate Soundssuno-soundsPOST /api/v1/generateprompt, modelVersion, soundKey
TimeStamped Lyricssuno-timestamped-lyricsPOST /api/v1/generatetaskId, audioId
Check Voicesuno-check-voicePOST /api/v1/generatetaskId
Generate Personasuno-generate-personaPOST /api/v1/generatetaskId, audioId, name, description
Replace Sectionsuno-replace-sectionPOST /api/v1/generatemodelVersion, prompt, tags, title, infillStartS, infillEndS, fullLyrics
Generate Lyricssuno-generate-lyricsPOST /api/v1/generateprompt
Boost Music Stylesuno-boost-music-stylePOST /api/v1/generatecontent
Cover Generatesuno-cover-generatePOST /api/v1/generatetaskId
Add Vocalssuno-add-vocalsPOST /api/v1/generateuploadUrl, prompt, title, style, negativeTags, modelVersion
Separate Vocalssuno-separate-vocalsPOST /api/v1/generatetaskId, audioId, type
Generate Midi From Audiosuno-generate-midiPOST /api/v1/generatetaskId
Mashupsuno-mashupPOST /api/v1/generateuploadUrlList, modelVersion
Create Music Videosuno-create-music-videoPOST /api/v1/generatetaskId, audioId
Upload And Extend Audiosuno-upload-extendPOST /api/v1/generateuploadUrl, modelVersion, continueAt, prompt
Upload And Cover Audiosuno-upload-coverPOST /api/v1/generateuploadUrl, modelVersion
Add Instrumentalsuno-add-instrumentalPOST /api/v1/generateuploadUrl, title, tags, negativeTags, modelVersion
Convert To WAV Formatsuno-wavPOST /api/v1/generatetaskId, audioId
Poll taskGET /api/v1/task/{id}?model=suno

Generate Music — suno

FieldTypeRequiredValues / example
modelVersionstringYesOptions: V5_5 | V5 | V4_5PLUS | V4_5 | V4_5ALL | V4 (default: V4_5PLUS)
customModebooleanNoTrue/false (default: false)
durationnumberNoTrack length in seconds, 10–360. Only used by V5_5 in Custom Mode. (range 10-360)
promptstringConditionalwhen `customMode` is `false`: Text value Max 500 characters. · when `customMode` is `true` and `modelVersion` is `V5_5`/`V5`/`V4_5PLUS`/`V4_5`/`V4_5ALL`: Used verbatim as the sung lyrics. Required unless Instrumental is on. Max 5000 characters. · when `customMode` is `true` and `modelVersion` is `V4`: Used verbatim as the sung lyrics. V4 allows up to 3,000 characters. Max 3000 characters.
titlestringYesText value Max 80 characters.
stylestringConditionalwhen `customMode` is `true` and `modelVersion` is `V5_5`/`V5`/`V4_5PLUS`/`V4_5`/`V4_5ALL`: Text value Max 1000 characters. · when `customMode` is `true` and `modelVersion` is `V4`: V4 allows up to 200 characters. Max 200 characters.
personaIdstringNoFrom Generate Persona. Requires a V5 or V5_5 model.
instrumentalbooleanNoTrue/false (default: false)
audioWeightnumberNoRange 0-1 (default: 0.65)
vocalGenderstringNoOptions: | m | f
styleWeightnumberNoRange 0-1
weirdnessConstraintnumberNoRange 0-1
negativeTagsstringNoText value
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno","input":{"modelVersion":"V4_5PLUS","customMode":false,"prompt":"An upbeat synthwave track with driving bass, bright arpeggios and a nostalgic 80s feel.","instrumental":false,"audioWeight":0.65}}'

Generate Voice — suno-generate-voice

FieldTypeRequiredValues / example
taskIdstringYesTask ID of the reference generation
verifyUrlstringYesText value
voiceNamestringNoText value
descriptionstringNoText value
stylestringNoText value
singerSkillLevelstringNoOptions: | beginner | intermediate | advanced | professional
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-generate-voice","input":{"taskId":"example","verifyUrl":"example","voiceName":"example","description":"example","style":"synthwave, energetic, retro","singerSkillLevel":""}}'

Extend Music — suno-extend

FieldTypeRequiredValues / example
audioIdstringYesText value
modelVersionstringYesOptions: V5 | V4_5PLUS | V4_5 | V4 (default: V4_5PLUS)
defaultParamFlagbooleanNoTrue/false (default: false)
continueAtnumberYesMust be greater than 0 and less than the source track's length.
promptstringYesText value Max 5000 characters.
stylestringNoText value Max 1000 characters.
titlestringConditionalwhen `defaultParamFlag` is `true` and `modelVersion` is `V5`/`V4_5PLUS`/`V4_5`: Text value Max 100 characters. · when `defaultParamFlag` is `true` and `modelVersion` is `V4`: Text value Max 80 characters.
negativeTagsstringNoText value Max 200 characters.
vocalGenderstringNoOptions: | m | f
styleWeightnumberNoRange 0-1
weirdnessConstraintnumberNoRange 0-1
audioWeightnumberNoRange 0-1
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-extend","input":{"audioId":"example","modelVersion":"V4_5PLUS","defaultParamFlag":false,"negativeTags":"example","vocalGender":"","styleWeight":0,"weirdnessConstraint":0,"audioWeight":0}}'

Generate Sounds — suno-sounds

FieldTypeRequiredValues / example
promptstringYesText value Max 500 characters.
modelVersionstringYesOptions: V5 | V5_5 (default: V5)
soundLoopbooleanNoTrue/false (default: false)
soundTemponumberNoRange 1-300
soundKeystringYesOptions: Any | Cm | C#m | Dm | D#m | Em | Fm | F#m | Gm | G#m | Am | A#m | Bm | C | C# | D | D# | E | F | F# | G | G# | A | A# | B (default: Any)
grabLyricsbooleanNoTrue/false (default: false)
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-sounds","input":{"prompt":"An upbeat synthwave track with driving bass, bright arpeggios and a nostalgic 80s feel.","modelVersion":"V5","soundLoop":false,"soundTempo":1,"soundKey":"Any","grabLyrics":false}}'

TimeStamped Lyrics — suno-timestamped-lyrics

FieldTypeRequiredValues / example
taskIdstringYesThe source generation's task ID
audioIdstringYesText value
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-timestamped-lyrics","input":{"taskId":"example","audioId":"example"}}'

Check Voice — suno-check-voice

FieldTypeRequiredValues / example
taskIdstringYesThe Generate Voice task ID to check
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-check-voice","input":{"taskId":"example"}}'

Generate Persona — suno-generate-persona

FieldTypeRequiredValues / example
taskIdstringYesThe source generation's task ID
audioIdstringYesText value
namestringYesText value
descriptionstringYesText value
vocalStartnumberNoStart of the vocal sample the Persona is built from. (default: 0)
vocalEndnumberNoEnd of the vocal sample. Must be after Vocal Start and within the source track. (default: 30)
stylestringNoText value
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-generate-persona","input":{"taskId":"example","audioId":"example","name":"example","description":"example","vocalStart":0,"vocalEnd":30,"style":"synthwave, energetic, retro"}}'

Replace Section — suno-replace-section

FieldTypeRequiredValues / example
taskIdstringNoUse with Audio ID to target an existing track
audioIdstringNoText value
uploadUrlstringNoImage URL
modelVersionstringYesOptions: V5 | V4_5PLUS | V4_5 | V4 (default: V4_5PLUS)
promptstringYesText value
tagsstringYesText value Max 1000 characters.
titlestringYesText value Max 80 characters.
infillStartSnumberYesStart of the range to regenerate.
infillEndSnumberYesEnd of the range. Must be after Replace Start and within the track.
fullLyricsstringYesText value
negativeTagsstringNoText value Max 200 characters.
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-replace-section","input":{"taskId":"example","audioId":"example","uploadUrl":"https://example.com/input.mp3","modelVersion":"V4_5PLUS","prompt":"An upbeat synthwave track with driving bass, bright arpeggios and a nostalgic 80s feel.","tags":"example","title":"Neon Drive","infillStartS":0,"infillEndS":0,"fullLyrics":"example","negativeTags":"example"}}'

Generate Lyrics — suno-generate-lyrics

FieldTypeRequiredValues / example
promptstringYesText value Max 200 characters.
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-generate-lyrics","input":{"prompt":"An upbeat synthwave track with driving bass, bright arpeggios and a nostalgic 80s feel."}}'

Boost Music Style — suno-boost-music-style

FieldTypeRequiredValues / example
contentstringYesText value
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-boost-music-style","input":{"content":"example"}}'

Cover Generate — suno-cover-generate

FieldTypeRequiredValues / example
taskIdstringYesThe Generate Music task ID to make cover art for
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-cover-generate","input":{"taskId":"example"}}'

Add Vocals — suno-add-vocals

FieldTypeRequiredValues / example
uploadUrlstringYesImage URL
promptstringYesText value
titlestringYesText value Max 80 characters.
stylestringYesText value Max 1000 characters.
negativeTagsstringYesText value Max 200 characters.
modelVersionstringYesOptions: V4_5PLUS | V5 | V5_5 (default: V4_5PLUS)
vocalGenderstringNoOptions: | m | f
styleWeightnumberNoRange 0-1
weirdnessConstraintnumberNoRange 0-1
audioWeightnumberNoRange 0-1
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-add-vocals","input":{"uploadUrl":"https://example.com/input.mp3","prompt":"An upbeat synthwave track with driving bass, bright arpeggios and a nostalgic 80s feel.","title":"Neon Drive","style":"synthwave, energetic, retro","negativeTags":"example","modelVersion":"V4_5PLUS","vocalGender":"","styleWeight":0,"weirdnessConstraint":0,"audioWeight":0}}'

Separate Vocals — suno-separate-vocals

FieldTypeRequiredValues / example
taskIdstringYesThe source generation's task ID
audioIdstringYesText value
typestringYesOptions: separate_vocal | split_stem | split_stem_advanced (default: separate_vocal)
stemNamestringNoOptions: Lead Vocal | Drum Kit | Kick | Snare | Risers | Bass | Backing Vocals | Piano | Electric Guitar | Percussion | String Section | Synth | Acoustic Guitar | Sound Effects | Synth Pad | Synth Bass | Guitar | Brass Section | Organ | Electronic Drum Kit | Lead Electric Guitar | Synth Keys | Rhythm Electric Guitar | Electric Piano | Upright Bass | Keyboards | Distorted Electric Guitar | Synth Strings | Synth Lead | Woodwinds | Rhythm Acoustic Guitar | Flute | Harp | Tambourine | Trumpet | Arpeggiator | Accordion | Fiddle | Pedal Steel Guitar | Synth Voice | Violin | Digital Piano | Synth Brass | Mandolin | Choir | Banjo | Bells | Clarinet | Tenor Saxophone | Trombone | Shaker | French Horn | Glockenspiel | Electric Bass | Cello | Timpani | Harmonica | Marimba | Vibraphone | Lap Steel Guitar | Saxophone | Orchestra | Horns | Cymbals | Hand Clap | Oboe | Celesta | Congas | Drone | Alto Saxophone | Double Bass | Ukulele | Harpsichord | Baritone Saxophone | Xylophone | Tuba | Bass Guitar | Whistle | Lead Guitar | Rhodes | 808 | Bongos | Bassoon | Cowbell | Viola | Sitar | Steel Drums | Piccolo | Theremin | Bagpipes | Hi-Hat | Music Box | Melodica | Tabla | Koto | Djembe | Taiko | Didgeridoo
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-separate-vocals","input":{"taskId":"example","audioId":"example","type":"separate_vocal"}}'

Generate Midi From Audio — suno-generate-midi

FieldTypeRequiredValues / example
taskIdstringYesTask ID from a completed Separate Vocals task
audioIdstringNoWhich separated track; omit for all
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-generate-midi","input":{"taskId":"example","audioId":"example"}}'

Mashup — suno-mashup

FieldTypeRequiredValues / example
uploadUrlListstring[]YesImage URL
customModebooleanNoTrue/false (default: false)
modelVersionstringYesOptions: V5 | V4_5PLUS | V4_5 | V4 (default: V4_5PLUS)
promptstringConditionalwhen `customMode` is `false`: Text value Max 500 characters. · when `customMode` is `true` and `modelVersion` is `V5`/`V4_5PLUS`/`V4_5`: Used verbatim as the sung lyrics. Required unless Instrumental is on. Max 5000 characters. · when `customMode` is `true` and `modelVersion` is `V4`: Used verbatim as the sung lyrics. V4 allows up to 3,000 characters. Max 3000 characters.
stylestringConditionalwhen `customMode` is `true` and `modelVersion` is `V5`/`V4_5PLUS`/`V4_5`: Text value Max 1000 characters. · when `customMode` is `true` and `modelVersion` is `V4`: V4 allows up to 200 characters. Max 200 characters.
titlestringNoText value Max 80 characters.
instrumentalbooleanNoTrue/false (default: false)
vocalGenderstringNoOptions: | m | f
styleWeightnumberNoRange 0-1
weirdnessConstraintnumberNoRange 0-1
audioWeightnumberNoRange 0-1
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-mashup","input":{"uploadUrlList":["https://example.com/input.mp3"],"customMode":false,"modelVersion":"V4_5PLUS","prompt":"An upbeat synthwave track with driving bass, bright arpeggios and a nostalgic 80s feel.","instrumental":false,"vocalGender":"","styleWeight":0,"weirdnessConstraint":0,"audioWeight":0}}'

Create Music Video — suno-create-music-video

FieldTypeRequiredValues / example
taskIdstringYesThe source generation's task ID
audioIdstringYesText value
authorstringNoText value Max 50 characters.
domainNamestringNoText value Max 50 characters.
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-create-music-video","input":{"taskId":"example","audioId":"example","author":"example","domainName":"example"}}'

Upload And Extend Audio — suno-upload-extend

FieldTypeRequiredValues / example
uploadUrlstringYesImage URL
modelVersionstringYesOptions: V5 | V4_5PLUS | V4_5 | V4 (default: V4_5PLUS)
defaultParamFlagbooleanNoTrue/false (default: false)
instrumentalbooleanNoTrue/false (default: false)
continueAtnumberYesText value
promptstringYesText value Max 5000 characters.
stylestringNoText value Max 1000 characters.
titlestringConditionalwhen `defaultParamFlag` is `true` and `modelVersion` is `V5`/`V4_5PLUS`/`V4_5`: Text value Max 100 characters. · when `defaultParamFlag` is `true` and `modelVersion` is `V4`: Text value Max 80 characters.
vocalGenderstringNoOptions: | m | f
styleWeightnumberNoRange 0-1
weirdnessConstraintnumberNoRange 0-1
audioWeightnumberNoRange 0-1
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-upload-extend","input":{"uploadUrl":"https://example.com/input.mp3","modelVersion":"V4_5PLUS","defaultParamFlag":false,"instrumental":false,"vocalGender":"","styleWeight":0,"weirdnessConstraint":0,"audioWeight":0}}'

Upload And Cover Audio — suno-upload-cover

FieldTypeRequiredValues / example
uploadUrlstringYesImage URL
customModebooleanNoTrue/false (default: false)
instrumentalbooleanNoTrue/false (default: false)
modelVersionstringYesOptions: V5 | V4_5PLUS | V4_5 | V4 (default: V4_5PLUS)
promptstringConditionalwhen `customMode` is `false`: Text value Max 500 characters. · when `customMode` is `true` and `modelVersion` is `V5`/`V4_5PLUS`/`V4_5`: Used verbatim as the sung lyrics. Required unless Instrumental is on. Max 5000 characters. · when `customMode` is `true` and `modelVersion` is `V4`: Used verbatim as the sung lyrics. V4 allows up to 3,000 characters. Max 3000 characters.
stylestringConditionalwhen `customMode` is `true` and `modelVersion` is `V5`/`V4_5PLUS`/`V4_5`: Text value Max 1000 characters. · when `customMode` is `true` and `modelVersion` is `V4`: V4 allows up to 200 characters. Max 200 characters.
titlestringNoText value Max 80 characters.
vocalGenderstringNoOptions: | m | f
styleWeightnumberNoRange 0-1
weirdnessConstraintnumberNoRange 0-1
audioWeightnumberNoRange 0-1
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-upload-cover","input":{"uploadUrl":"https://example.com/input.mp3","customMode":false,"instrumental":false,"modelVersion":"V4_5PLUS","prompt":"An upbeat synthwave track with driving bass, bright arpeggios and a nostalgic 80s feel.","vocalGender":"","styleWeight":0,"weirdnessConstraint":0,"audioWeight":0}}'

Add Instrumental — suno-add-instrumental

FieldTypeRequiredValues / example
uploadUrlstringYesImage URL
titlestringYesText value Max 80 characters.
tagsstringYesText value Max 1000 characters.
negativeTagsstringYesText value Max 200 characters.
modelVersionstringYesOptions: V4_5PLUS | V5 | V5_5 (default: V4_5PLUS)
vocalGenderstringNoOptions: | m | f
styleWeightnumberNoRange 0-1
weirdnessConstraintnumberNoRange 0-1
audioWeightnumberNoRange 0-1
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-add-instrumental","input":{"uploadUrl":"https://example.com/input.mp3","title":"Neon Drive","tags":"example","negativeTags":"example","modelVersion":"V4_5PLUS","vocalGender":"","styleWeight":0,"weirdnessConstraint":0,"audioWeight":0}}'

Convert To WAV Format — suno-wav

FieldTypeRequiredValues / example
taskIdstringYesThe source generation's task ID
audioIdstringYesText value
bash
curl -X POST https://you.bot/api/v1/generate \
  -H "Authorization: Bearer $YOUBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"suno-wav","input":{"taskId":"example","audioId":"example"}}'