Suno API

TTAPI Suno service, building a future where anyone can make great music.

Extend Music

POST https://api.ttapi.io/suno/v1/extend


Extend one of the two songs returned by the generated music. Task results is async

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
promptStringfalseLyrics, for custom mode only
titleStringfalseTitle, for custom mode only
music_idStringtruemusicId, use this field when you need to extend the song
continue_atinttrueThe time in seconds to continue the existing audio. unit: seconds
tagsStringfalseStyle tag, for custom mode only
auto_lyricsbooleanfalseAutomatically generate lyrics. For custom mode only.
false - Generates music using the entered lyrics.
true - Creates a second song based on the entered lyrics.
default is false
vocal_genderStringfalseVoice gender
Male Female
isStoragebooleanfalsetrue or false
false Return to the official address,
default is true
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get response

Example Request

import requests
endpoint = "https://api.ttapi.io/suno/v1/extend"
headers = {
    "TT-API-KEY": your_key
}
data = {
    "music_id": "a7d3712d-2507-4d87-80d0-b60bb375a049",
    "continue_at": 100
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}

Get whole extend music

POST https://api.ttapi.io/suno/v1/concat


Get the complete music content after the extended music, free endpoint. Task results is async

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtruemusicId, use this field when you need to extend the song
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get response

Example Request

import requests
endpoint = "https://api.ttapi.io/suno/v1/extend"
headers = {
    "TT-API-KEY": your_key
}
data = {
    "music_id": "a7d3712d-2507-4d87-80d0-b60bb375a049",
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}

Get lyrics timeline

POST https://api.ttapi.io/suno/v1/alignedLyrics


Get lyrics timeline according to music_id, free endpoint

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueReturns the music_id in each song array, not the jobId

Example Request

import requests
endpoint = "https://api.ttapi.io/suno/v1/alignedLyrics"
headers = {
    "TT-API-KEY": your_key
}
data = {
    "music_id":"a7d3712d-2507-4d87-80d0-b60bb375a049"
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())

Example Response

{
    "status": "SUCCESS",
    "message": "success",
    "data": {
    "alignment": [
        {
            "end_s": 0.4787234042553192,
            "p_align": 1,
            "start_s": 0.39893617021276595,
            "success": true,
            "word": "[female voice][female vocals][verse]\nЧто"
        },
        {
            "end_s": 0.5585106382978724,
            "p_align": 1,
            "start_s": 0.4787234042553192,
            "success": true,
            "word": "б"
        },
            ...
        ]
    }
}

Generate music video

POST https://api.ttapi.io/suno/v1/generateVideo


Generate the video corresponding to the music according to the task results. free endpoint

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueReturns the music_id in each song array, not the jobId

Example Request

import requests
endpoint = "https://api.ttapi.io/suno/v1/generateVideo"
headers = {
    "TT-API-KEY": your_key
}
data = {
    "music_id":"a7d3712d-2507-4d87-80d0-b60bb375a049"
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())

Example Response

{
    "status": "SUCCESS",
    "message": "success",
    "data": {
        "videoUrl": "https://cdn1.suno.ai/f01dcb24-d479-4f00-9a71-958792e23212.mp4",
        "status": "complete"
    }
}

Separation of lyrics and music

POST https://api.ttapi.io/suno/v1/stems


According to the task results, 4 audios are generated to separate lyrics from background music.

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueReturns the music_id in each song array, not the jobId
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get response

Example Request

import requests
endpoint = "https://api.ttapi.io/suno/v1/stems"
headers = {
    "TT-API-KEY": your_key
}
data = {
    "music_id":"a7d3712d-2507-4d87-80d0-b60bb375a049"
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}

Separate lyrics and music for the entire track

POST https://api.ttapi.io/suno/v1/stems-all


According to the task results, 24 audios are generated to separate lyrics from background music, and all instruments and lyrics in the music are separated.

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueReturns the music_id in each song array, not the jobId
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get response

Example Request

import requests
endpoint = "https://api.ttapi.io/suno/v1/stems-all"
headers = {
    "TT-API-KEY": your_key
}
data = {
    "music_id":"a7d3712d-2507-4d87-80d0-b60bb375a049"
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}

Get music WAV files

POST https://api.ttapi.io/suno/v1/wav


Generate the wav file corresponding to the music according to the task results. free endpoint

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueReturns the music_id in each song array, not the jobId

Example Response

{
    "status": "SUCCESS",
    "message": "success",
    "data": {
        "wavUrl": "https://cdn1.suno.ai/2ecd43e6-7a6a-4eb1-b203-1125493ed887.wav"
    }
}

Music knockoffs

POST https://api.ttapi.io/suno/v1/cover


Music remake, modified style, you can use music generated by suno or upload your own music

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueReturns the musicId in each song array or your own music_id by use upload music endpoint, not the jobId
mvStringtrueThe model used to generate the music audio ,
chirp-v3-0
chirp-v3-5
chirp-v4
chirp-v4-5
chirp-v4-5+
chirp-v4-5-all
default is chirp-v4-5+
promptStringtrueLyrics
titleStringfalseMusic title
tagsStringfalseStyle tag
negative_tagsStringfalseUnwanted style tags
style_weightStringfalseAudio style weight between 0-1
weirdness_constraintStringfalseAudio Wonderfulness Weight between 0-1
audio_weightStringfalseAudio weight between 0-1
vocal_genderStringfalseVoice gender
Male Female
isStorageStringfalsetrue or false
false Return to the official address,
default is true
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get response

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}

Adding voice lines

POST https://api.ttapi.io/suno/v1/add-vocals


Add music sound line, this endpoint can only be performed on music uploaded by yourself

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
customBooleantrueAudio customization:
true - Audio will be generated from gpt_description_prompt
false - Audio will be generated from prompts
music_idStringtrueYour own music_id by use upload music endpoint, not the jobId
gpt_description_promptStringtrueInspiration Mode Hints
mvStringtrueThe model used to generate the music audio ,
Only can use chirp-v4-5++ this endpoint
promptStringtrueLyrics
titleStringfalseMusic title
tagsStringfalseStyle tag
negative_tagsStringfalseUnwanted style tags
style_weightStringfalseAudio style weight between 0-1
weirdness_constraintStringfalseAudio Wonderfulness Weight between 0-1
audio_weightStringfalseAudio weight between 0-1
vocal_genderStringfalseVoice gender
Male Female
overpainting_start_sNumberfalseThe start time for adding vocals to uploaded music.
Defaults to 0 seconds.
overpainting_end_sNumberfalseThe end time of the uploaded song with added vocals. Must be less than the total duration of the song. (Unit: seconds)
isStorageStringfalsetrue or false
false Return to the official address,
default is true
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get response

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}

Add accompaniment

POST https://api.ttapi.io/suno/v1/add-instrumental


Add musical accompaniment, this endpoint can only be performed on music uploaded by yourself

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
customBooleantrueAudio customization:
true - Audio will be generated from gpt_description_prompt
false - Audio will be generated from prompts
music_idStringtrueYour own music_id by use upload music endpoint, not the jobId
gpt_description_promptStringtrueInspiration Mode Hints
mvStringtrueThe model used to generate the music audio ,
Only can use chirp-v4-5++ this endpoint
promptStringtrueLyrics
titleStringfalseMusic title
tagsStringfalseStyle tag
negative_tagsStringfalseUnwanted style tags
style_weightStringfalseAudio style weight between 0-1
weirdness_constraintStringfalseAudio Wonderfulness Weight between 0-1
audio_weightStringfalseAudio weight between 0-1
underpainting_start_sNumberfalseThe start time for adding accompaniment to uploaded music.
Default is 0 seconds
underpainting_end_sNumberfalseThe end time of the accompaniment of the uploaded song must be less than the total length of the song. (Unit: seconds)
persona_idStringfalseperson_id generate on the Generate singer style endpoint
isStorageStringfalsetrue or false
false Return to the official address,
default is true
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get response

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}

Get music MIDI files

POST https://api.ttapi.io/suno/v1/gen-midi


Get the MIDI file corresponding to the generated music. free endpoint

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueGet the music_id of a song using the Separate lyrics and music or Separate lyrics and music for the entire track tasks.

Note:
This task also works with the music_id of regular music. The official website only supports the music_id for the Lyrics and Music Separation and Full Track Separation tasks.
This task cannot be performed across accounts, and has a time limit.

Example Response

{
    "status": "SUCCESS",
    "message": "success",
    "data": {
        "state": "running"
    }
}

Remastered Music

POST https://api.ttapi.io/suno/v1/remaster


Get the MIDI file corresponding to the generated music. free endpoint

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueReturns the musicId in each song array or your own music_id by use upload music endpoint, not the jobId

Example Response

{
    "status": "SUCCESS",
    "message": "success",
    "data": {
        "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}

Generate singer style

POST https://api.ttapi.io/suno/v1/persona


Get singer style_id based on generated songs

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueReturns the musicId in each song array or your own music_id by use upload music endpoint, not the jobId
nameStringtrueSinger name
describeStringfalseSinger describe
vox_audio_idStringfalseGenerated in Get singer VOX endpoint
vocal_start_sNumberfalseIf you pass in vox_audio_id, this parameter is required, and its value should be the same as the parameter passed to the Get Singer VOX endpoint.
vocal_end_sNumberfalseIf you pass in vox_audio_id, this parameter is required, and its value should be the same as the parameter passed to the Get Singer VOX endpoint.
stylesStringfalseGenerated in Get singer VOX endpoint

Example Response

{
    "status": "string",
    "message": "string",
    "data": {
        "persona_id": "string"
    }
}

Generate BPM

POST https://api.ttapi.io/suno/v1/gen-bpm


Generate BPM based on the generated song. free endpoint

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueReturns the musicId in each song array or your own music_id by use upload music endpoint, not the jobId

Example Response

{
    "status": "SUCCESS",
    "message": "success",
    "data": {
        "avg_bpm": "",
        "max_bpm":"",
        "min_bpm":""
    }
}

Get singer VOX

POST https://api.ttapi.io/suno/v1/vox


Extracting the singer's vox_audio_id from a music clip. free endpoint

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
music_idStringtrueReturns the musicId in each song array or your own music_id by use upload music endpoint, not the jobId
vocal_start_sNumbertrueVoice start time, seconds
vocal_end_sNumbertrueVoice end time, seconds

Example Response

{
    "status": "string",
    "message": "string",
    "data": {
        "id": "string", // vox_audio_id used in "Generate singer style"
        "status": "string",
        "source_clip_id": "string",
        "vocal_start_s": 0,
        "vocal_end_s": 0,
        "wave_response": {
            "waveform_aggregates": [
                {
                    "mip_map_level": 0,
                    "data": [[0]]
                }
            ]
        }
    }
}

Upsample Tags

POST https://api.ttapi.io/suno/v1/upsample-tags


Music tag style enhancement. free endpoint

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
tagsStringtruetags style

Example Response

{
   "status": "string",
   "message": "string",
   "data": {
       "upsampled_tags": "string" //增强后的风格
   }
}

Mashup Music

POST https://api.ttapi.io/suno/v1/mashup


Generate a new song by mixing the two songs. Task results is async

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
mashup_music_idArraytrueThe mixed music ID list must contain two music tracks.
exp :['xxx','xxx']
custombooleantrueThe flag indicates the music audio is custom or not, if true, the audio will be generated from the lyric, otherwise, the audio will be generated from the prompt
mvStringtrueThe model used to generate the music audio ,
chirp-v3-0
chirp-v3-5
chirp-v4
chirp-v4-5
chirp-v4-5+
chirp-v5
chirp-v4-5-all
default is chirp-v4-5+
promptStringfalseLyrics, for custom mode only
gpt_description_promptStringfalseInspiration mode prompt words
Automatically generate lyrics based on this prompt word
instrumentalbooleantrueNo lyrics option, default is false, when it is true will ignore the lyric input above.
titleStringfalseTitle, for custom mode only
tagsStringfalseStyle tag, for custom mode only
negative_tagsStringfalseUnwanted style tags, for custom mode only
style_weightNumberfalseAudio style weight between 0-1, for custom mode only
weirdness_constraintNumberfalseAudio Wonderfulness Weight between 0-1, for custom mode only
audio_weightNumberfalseAudio weight between 0 and 1
auto_lyricsbooleanfalseAutomatically generate lyrics. For custom mode only.
false - Generates music using the entered lyrics.
true - Creates a second song based on the entered lyrics.
default is false
vocal_genderStringfalseVoice gender
Male Female
isStorageBooleanfalsefalse returns the official source address.
default is true.
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get response

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}

Sample Generate Music

POST https://api.ttapi.io/suno/v1/sample


Generate a complete song based on a short audio clip or a hummed melody.. Task results is async

Headers

NameTypeRequiredDescription
TT-API-KEYStringtrueYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
custombooleantrueThe flag indicates the music audio is custom or not, if true, the audio will be generated from the lyric, otherwise, the audio will be generated from the prompt
mvStringtrueThe model used to generate the music audio ,
chirp-v3-0
chirp-v3-5
chirp-v4
chirp-v4-5
chirp-v4-5+
chirp-v5
chirp-v4-5-all
default is chirp-v4-5+
music_idStringtrueReturns the musicId in each song array or your own music_id by use upload music endpoint, not the jobId
chop_sample_start_sStringtrueSample music start time
Unit: seconds
Default: 0
chop_sample_end_sStringtrueSample music end time
Unit: seconds
Default: 0
promptStringfalseLyrics, for custom mode only
gpt_description_promptStringfalseInspiration mode prompt words
Automatically generate lyrics based on this prompt word
instrumentalbooleantrueNo lyrics option, default is false, when it is true will ignore the lyric input above.
titleStringfalseTitle, for custom mode only
tagsStringfalseStyle tag, for custom mode only
negative_tagsStringfalseUnwanted style tags, for custom mode only
style_weightNumberfalseAudio style weight between 0-1, for custom mode only
weirdness_constraintNumberfalseAudio Wonderfulness Weight between 0-1, for custom mode only
audio_weightNumberfalseAudio weight between 0 and 1
auto_lyricsbooleanfalseAutomatically generate lyrics. For custom mode only.
false - Generates music using the entered lyrics.
true - Creates a second song based on the entered lyrics.
default is false
isStorageBooleanfalsefalse returns the official source address.
default is true.
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get response

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}