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
Name | Type | Required | Description |
---|---|---|---|
TT-API-KEY | String | true | Your API Key in TT API used for request authorization |
Request Body
Name | Type | Required | Description |
---|---|---|---|
prompt | String | false | Lyrics, for custom mode only |
title | String | false | Title, for custom mode only |
music_id | String | true | musicId, use this field when you need to extend the song |
continue_at | int | true | The time in seconds to continue the existing audio. unit: seconds |
tags | String | false | Style tag, for custom mode only |
generateVideo | Boolean | false | Whether to generate video, optional value true false , default is false |
hookUrl | String | false | Send 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
Name | Type | Required | Description |
---|---|---|---|
TT-API-KEY | String | true | Your API Key in TT API used for request authorization |
Request Body
Name | Type | Required | Description |
---|---|---|---|
music_id | String | true | musicId, use this field when you need to extend the song |
hookUrl | String | false | Send 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
Name | Type | Required | Description |
---|---|---|---|
TT-API-KEY | String | true | Your API Key in TT API used for request authorization |
Request Body
Name | Type | Required | Description |
---|---|---|---|
music_id | String | true | Returns 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
Name | Type | Required | Description |
---|---|---|---|
TT-API-KEY | String | true | Your API Key in TT API used for request authorization |
Request Body
Name | Type | Required | Description |
---|---|---|---|
music_id | String | true | Returns 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
Name | Type | Required | Description |
---|---|---|---|
TT-API-KEY | String | true | Your API Key in TT API used for request authorization |
Request Body
Name | Type | Required | Description |
---|---|---|---|
music_id | String | true | Returns the music_id in each song array, not the jobId |
hookUrl | String | false | Send 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
Name | Type | Required | Description |
---|---|---|---|
TT-API-KEY | String | true | Your API Key in TT API used for request authorization |
Request Body
Name | Type | Required | Description |
---|---|---|---|
music_id | String | true | Returns the music_id in each song array, not the jobId |
hookUrl | String | false | Send 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
Name | Type | Required | Description |
---|---|---|---|
TT-API-KEY | String | true | Your API Key in TT API used for request authorization |
Request Body
Name | Type | Required | Description |
---|---|---|---|
music_id | String | true | Returns 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
Name | Type | Required | Description |
---|---|---|---|
TT-API-KEY | String | true | Your API Key in TT API used for request authorization |
Request Body
Name | Type | Required | Description |
---|---|---|---|
music_id | String | true | Returns the musicId in each song array or your own music_id by use upload music endpoint, not the jobId |
mv | String | true | The model used to generate the music audio , chirp-v3-0 chirp-v3-5 chirp-v4 chirp-v4-5 chirp-v4-5+ default is chirp-v4 |
prompt | String | true | Lyrics |
title | String | false | Music title |
tags | String | false | Style tag |
negative_tags | String | false | Unwanted style tags |
style_weight | String | false | Audio style weight between 0-1 |
weirdness_constraint | String | false | Audio Wonderfulness Weight between 0-1 |
audio_weight | String | false | Audio weight between 0-1 |
isStorage | String | false | true or false false Return to the official address, default is true |
hookUrl | String | false | Send 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
Name | Type | Required | Description |
---|---|---|---|
TT-API-KEY | String | true | Your API Key in TT API used for request authorization |
Request Body
Name | Type | Required | Description |
---|---|---|---|
music_id | String | true | Your own music_id by use upload music endpoint, not the jobId |
mv | String | true | The model used to generate the music audio , Only can use chirp-v4-5++ this endpoint |
prompt | String | true | Lyrics |
title | String | false | Music title |
tags | String | false | Style tag |
negative_tags | String | false | Unwanted style tags |
style_weight | String | false | Audio style weight between 0-1 |
weirdness_constraint | String | false | Audio Wonderfulness Weight between 0-1 |
audio_weight | String | false | Audio weight between 0-1 |
isStorage | String | false | true or false false Return to the official address, default is true |
hookUrl | String | false | Send 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
Name | Type | Required | Description |
---|---|---|---|
TT-API-KEY | String | true | Your API Key in TT API used for request authorization |
Request Body
Name | Type | Required | Description |
---|---|---|---|
music_id | String | true | Your own music_id by use upload music endpoint, not the jobId |
mv | String | true | The model used to generate the music audio , Only can use chirp-v4-5++ this endpoint |
prompt | String | true | Lyrics |
title | String | false | Music title |
tags | String | false | Style tag |
negative_tags | String | false | Unwanted style tags |
style_weight | String | false | Audio style weight between 0-1 |
weirdness_constraint | String | false | Audio Wonderfulness Weight between 0-1 |
audio_weight | String | false | Audio weight between 0-1 |
isStorage | String | false | true or false false Return to the official address, default is true |
hookUrl | String | false | Send 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"
}
}