Suno Song Generation API Integration Instructions
With the widespread application of AI, various AI programs have gradually become popular. AI has gradually penetrated all aspects of people's work and life. The industries involved in AI are also increasing, from the initial writing, to medical education, and now to music.
Suno is a professional high-quality AI song and music creation platform. Users only need to input simple text prompts to generate songs with vocals based on genre style and lyrics. This AI music generator is developed by team members from well-known tech companies such as Meta, TikTok, and Kensho, aiming to allow everyone to create wonderful music without any musical instruments.
Here is the progress of model updates:
| Version | model | Launch Date | lyric Limit | style Limit | Maximum Song Duration |
|---|---|---|---|---|---|
| v5.5 | chirp-v5-5 | 2026.03.27 | 5000 | 1000 | 8 minutes |
| v5 | chirp-v5 | 2025.09.23 | 5000 | 1000 | 8 minutes |
| v4.5+ | chirp-v4-5-plus | 2025.07.17 | 5000 | 1000 | 8 minutes |
| v4.5 | chirp-v4-5 | 2025.05.03 | 5000 | 1000 | 4 minutes |
| v4 | chirp-v4 | 2024.12.17 | 3000 | 200 | 150 seconds |
| v3.5 | chirp-v3-5 | --- | 3000 | 200 | 120 seconds |
The
lyricandstylelimits in the table above are the upper limits under the custom mode (customistrue). The non-custom inspiration mode (customisfalse) only fills in theprompt, with a length limit of 500 characters (consistent across models).
Suno now supports the latest chirp-v5-5 model. When calling the latest version, set the model parameter to chirp-v5-5; chirp-v5 and earlier versions can still be used.
However, the Suno official does not provide an API. AceDataCloud offers a set of Suno APIs that simulate the official Suno integration, making it convenient and quick to generate desired music.
¶ Application and Usage
To use the Suno Audios Generation API, first go to the Ace Data Cloud Console to obtain your API Token for backup.

If you are not logged in or registered, you will be automatically redirected to the login page inviting you to register and log in, and after completion, you will be automatically returned to the current page.
One API Token can call all services on the platform without needing to apply separately for each service. The first application will grant a free quota for a free experience; when the quota is insufficient, you can recharge the general balance in the console.
📘 Complete Documentation: Suno Audios Generation API →
¶ Basic Usage
To think of some songs, you can input any text, for example, if I want to generate a song about Christmas, I can input a song for Christmas, as shown in the image:

Here we can see that we have set the Request Headers, including:
accept: the format of the response result you want to receive, here filled in asapplication/json, which is in JSON format.authorization: the key to call the API, which can be directly selected after application.
Additionally, the Request Body is set, including:
action: The action for this music generation task, default isgenerate, mainly includes:extend,upload_extend,cover,upload_cover,replace_section,replace_section,concat,stems,all_stems,remaster.prompt: The official inspiration mode prompt from Suno (effective whencustomisfalse), maximum 500 characters.model: The model for this music generation task, default ischirp-v4, mainly includes:chirp-v3,chirp-v4,chirp-v3-5,chirp-v4-5,chirp-v4-5-plus,chirp-v5,chirp-v5-5.lyric: The lyrics content of the official custom mode from Suno. Maximum 3000 characters forchirp-v3-5andchirp-v4; maximum 5000 characters forchirp-v4-5and above (includingchirp-v5,chirp-v5-5).custom: Whether to use custom mode, default is:false.instrumental: The pure music option of the official inspiration mode from Suno.title: The music title of the official custom mode from Suno. Maximum 80 characters forchirp-v3-5,chirp-v4; maximum 100 characters forchirp-v4-5and above.style: The music style of the official custom mode from Suno. Maximum 200 characters forchirp-v3-5andchirp-v4; maximum 1000 characters forchirp-v4-5and above (includingchirp-v5,chirp-v5-5).negative_tags: Music styles or genres to exclude from the generated results in custom mode (customistrue).audio_weight: The proportion of the uploaded reference audio, range 0-1, the larger the more it relies on the reference audio.audio_id: The ID of the reference music.overpainting_start/overpainting_end: The start and end time in seconds for adding vocals to existing pure music.underpainting_start/underpainting_end: The start and end time in seconds for adding accompaniment to a cappella.persona_id: The artist's song ID.continue_at: The time in seconds to continue the existing audio. For example, 213.5 means continue to 3 minutes and 33.5 seconds.style_influence: The "Style Influence" advanced parameter in custom mode, range 0-1, the larger the more it fits the selected style.replace_section_end: The final time for the replacement segment.replace_section_start: The starting time for the replacement segment.vocal_gender: Controls the preference for male or female vocals, femalef, malem, effective for models 4.5 and above; it is a preference item and does not guarantee strict adherence.weirdness: The "Weirdness" advanced parameter in custom mode, range 0-1, the larger the more creative and experimental.duration: The expected song length in seconds, must be an integer, range from 10 to 360. This parameter is used for song generation in custom mode (customistrue). It is a tendency prompt rather than a strict constraint: the model will reference it but does not guarantee to meet it, the actual product length is based on thedurationfield in the response, usually shorter than the expected value.lyric_prompt: The prompt for generating lyrics, effective only whencustomistrueandlyricis not provided.callback_url: The URL to receive the callback results.async: Optional, when set totrue, the interface immediately returnstask_id, no need to providecallback_url, and then polls the corresponding task query interface to obtain results.
The generated code is as follows:

You can click the "Try" button to directly test the API, wait for 1-2 minutes, the result is as follows:
{
"success": true,
"task_id": "e72fb249-bd5b-4e2a-b20c-8a06fea5ac14",
"trace_id": "7dbc5b6a-b2c0-4d85-9d39-fa8a8a785ccf",
"data": [
{
"id": "b481b17a-bf50-4e10-8adc-4d5635050893",
"title": "Under the Mistletoe",
"image_url": "https://cdn2.suno.ai/image_b481b17a-bf50-4e10-8adc-4d5635050893.jpeg",
"lyric": "[Verse]\nSnowflakes falling on the ground\nTwinkling lights all around\nThe scent of pine fills the air\nChristmas magic everywhere\n[Chorus]\nUnder the mistletoe tonight\nHearts aglow in the soft moonlight\nLaughter echoes\nSpirits bright\nIt’s Christmas time\nIt feels so right\n[Verse 2]\nStockings hung by the fire’s glow\nWarmth inside while the cold winds blow\nCookies baking\nSweet delight\nA season of joy shining bright\n[Chorus]\nUnder the mistletoe tonight\nHearts aglow in the soft moonlight\nLaughter echoes\nSpirits bright\nIt’s Christmas time\nIt feels so right\n[Bridge]\nCarols sung by candlelight\nStars above make the world feel tight\nPeace and love\nA season’s creed\nFilling hearts with all we need\n[Chorus]\nUnder the mistletoe tonight\nHearts aglow in the soft moonlight\nLaughter echoes\nSpirits bright\nIt’s Christmas time\nIt feels so right",
"audio_url": "https://cdn1.suno.ai/b481b17a-bf50-4e10-8adc-4d5635050893.mp3",
"video_url": "",
"created_at": "2025-06-17T15:59:32.468Z",
"model": "chirp-auk",
"state": "succeeded",
"prompt": "A song for Christmas",
"style": "holiday, cheerful, male vocals",
"duration": 154.92
},
{
"id": "fbf22dab-5e2b-4e02-84c0-6d7605f14c3d",
"title": "Under the Mistletoe",
"image_url": "https://cdn2.suno.ai/image_fbf22dab-5e2b-4e02-84c0-6d7605f14c3d.jpeg",
"lyric": "[Verse]\nSnowflakes falling on the ground\nTwinkling lights all around\nThe scent of pine fills the air\nChristmas magic everywhere\n[Chorus]\nUnder the mistletoe tonight\nHearts aglow in the soft moonlight\nLaughter echoes\nSpirits bright\nIt’s Christmas time\nIt feels so right\n[Verse 2]\nStockings hung by the fire’s glow\nWarmth inside while the cold winds blow\nCookies baking\nSweet delight\nA season of joy shining bright\n[Chorus]\nUnder the mistletoe tonight\nHearts aglow in the soft moonlight\nLaughter echoes\nSpirits bright\nIt’s Christmas time\nIt feels so right\n[Bridge]\nCarols sung by candlelight\nStars above make the world feel tight\nPeace and love\nA season’s creed\nFilling hearts with all we need\n[Chorus]\nUnder the mistletoe tonight\nHearts aglow in the soft moonlight\nLaughter echoes\nSpirits bright\nIt’s Christmas time\nIt feels so right",
"audio_url": "https://cdn1.suno.ai/fbf22dab-5e2b-4e02-84c0-6d7605f14c3d.mp3",
"video_url": "",
"created_at": "2025-06-17T15:59:32.468Z",
"model": "chirp-auk",
"state": "succeeded",
"prompt": "A song for Christmas",
"style": "holiday, cheerful, male vocals",
"duration": 158.48
}
]
}
You can see that we have obtained the content of two songs, including the title, preview image, lyrics, audio, video, and other content.
The field descriptions are as follows:
- success: Indicates whether the generation was successful; if successful, it is
true, otherwise it isfalse. - data: A list that contains detailed information about the generated songs.
- state: The song generation status, mainly includes four types, as follows:
- succeeded: Generation successful
- pending: In queue
- running: In progress
- error: Failed
- id: Song ID
- title: Title of the song
- image_url: Cover image of the song
- lyric: Lyrics of the song
- audio_url: Audio file of the song, opening it will play an mp3 audio.
- video_url: Video file of the song, opening it will play an mp4 video.
- created_at: Creation time
- model: The model used, generally the latest v3 model
- style: Style
- state: The song generation status, mainly includes four types, as follows:
¶ Custom Generation
If you want to customize the generation of lyrics, you can input the lyrics:
At this time, the lyric field can accept content similar to the following:
[Verse]\nSnowflakes falling all around\nGlistening white\nCovering the ground\nChildren laughing\nFull of delight\nIn this winter wonderland tonight\nSanta's sleigh\nUp in the sky\nRudolph's nose shining bright\nOh my\nHear the jingle bells\nRinging so clear\nBringing joy and holiday cheer\n[Verse 2]\nRoasting chestnuts by the fire's glow\nChristmas lights\nThey twinkle and show\nFamilies gathering with love and cheer\nSpreading warmth to everyone near
Note that the
\nin the lyrics is a newline character. If you do not know how to generate lyrics, you can use the lyrics generation API provided by AceDataCloud to generate lyrics through a prompt. The API is Suno Lyrics Generation API.
Next, we need to customize the generation of songs based on the lyrics, title, and style, and we can specify the following content:
- lyric: Lyrics text
- custom: Fill in as
true, indicating custom generation; this parameter defaults to false, indicating the use of prompt generation. - title: Title of the song.
- style: Style of the song, optional.
An example of filling out is as follows:

After filling it out, the generated code is as follows:

The corresponding code:
curl -X POST 'https://api.acedata.cloud/suno/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
"action": "generate",
"prompt": "A song for Christmas",
"model": "chirp-v4-5",
"lyric": "[Verse]\\nSnowflakes falling all around\\nGlistening white\\nCovering the ground\\nChildren laughing\\nFull of delight\\nIn this winter wonderland tonight\\nSanta's sleigh\\nUp in the sky\\nRudolph's nose shining bright\\nOh my\\nHear the jingle bells\\nRinging so clear\\nBringing joy and holiday cheer\\n[Verse 2]\\nRoasting chestnuts by the fire's glow\\nChristmas lights\\nThey twinkle and show\\nFamilies gathering with love and cheer\\nSpreading warmth to everyone near",
"custom": true
}'
Testing is allowed, and the generated effect is similar.
¶ Custom Singer Style Generation Function
If you want to generate a song using a singer's style, first generate a song using the basic usage mentioned above. Finally, you need to set this song to the singer's style, and then enter the Suno Persona API to generate a singer style id parameter persona_id based on the official generated music ID audio_id. The specific parameters are shown in the image below:

After filling it out, the automatically generated code is as follows:

Corresponding Python code:
import requests
url = "https://api.acedata.cloud/suno/persona"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"audio_id": "97efc9f4-0e8d-4b3e-88df-14568fa1b11f",
"name": "test"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Clicking run, you can find a result as follows:
{
"success": true,
"task_id": "7628b754-4fe7-4e79-bda4-806d0dd8bf6e",
"data": {
"persona_id": "e0d7319e-aa2a-44cb-b00a-916218d7cb0b"
}
}
Using the above audio_id and persona_id as 97efc9f4-0e8d-4b3e-88df-14568fa1b11f and e0d7319e-aa2a-44cb-b00a-916218d7cb0b for this example data. Then you can set the parameter action to artist_consistency (if it is the new version of the singer style Persona-v2-vox, action must be set to artist_consistency_vox), and input the ID of the song to continue generating, and the singer style ID, as shown in the example below:

After filling it out, the automatically generated code is as follows:

Corresponding Python code:
import requests
url = "https://api.acedata.cloud/suno/audios"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"action": "artist_consistency",
"prompt": "A song for Christmas",
"model": "chirp-v4-5",
"persona_id": "e0d7319e-aa2a-44cb-b00a-916218d7cb0b",
"audio_id": "97efc9f4-0e8d-4b3e-88df-14568fa1b11f"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Clicking run, you can find a result as follows:
{
"success": true,
"task_id": "9b732b1a-bd67-48bc-95e4-90140e06836f",
"trace_id": "30fcd88e-7687-4137-92d7-913b58115204",
"data": [
{
"id": "727a36e2-8dce-4df7-99e5-14e44635c80f",
"title": "",
"image_url": "https://cdn2.suno.ai/image_727a36e2-8dce-4df7-99e5-14e44635c80f.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/727a36e2-8dce-4df7-99e5-14e44635c80f.mp3",
"video_url": "",
"created_at": "2025-06-17T16:27:33.979Z",
"model": "chirp-auk",
"state": "succeeded",
"style": "",
"duration": 244.4
},
{
"id": "3b33301a-b17e-4b25-8842-09b46dab1a36",
"title": "",
"image_url": "https://cdn2.suno.ai/image_3b33301a-b17e-4b25-8842-09b46dab1a36.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/3b33301a-b17e-4b25-8842-09b46dab1a36.mp3",
"video_url": "",
"created_at": "2025-06-17T16:27:33.979Z",
"model": "chirp-auk",
"state": "succeeded",
"style": "",
"duration": 229.88
}
]
}
It can be seen that the result content is consistent with the above, thus achieving the function of generating songs using the singer's style.
¶ Continue Generation Function
If you want to continue generating an already generated Suno song, you can set the parameter action to extend, and input the ID of the song to continue generating. The song ID can be obtained based on the basic usage, as mentioned above, where you can see the song ID is:
"id": "97efc9f4-0e8d-4b3e-88df-14568fa1b11f"
Note that the
idin the lyrics here is the ID of the generated song. If you do not know how to generate a song, you can refer to the basic usage mentioned above to generate a song.
If you want to continue generating a song that you uploaded, you can set the parameter action to upload_extend, and input the ID of the custom uploaded song to continue generating. The song ID can be obtained using the Suno Upload Generation API, as shown in the image below:

Next, you must fill in the lyrics and style to customize the generated song, specifying the following content:
- lyric: Lyrics text
- custom: Set to
true, representing custom generation. This parameter defaults to false, representing usingpromptfor generation. - style: The style of the song, optional.
- continue_at: The time in seconds to continue the existing audio. For example, 213.5 means continue to 3 minutes and 33.5 seconds.
An example of filling it out is as follows:

After filling it out, the automatically generated code is as follows:

Corresponding Python code:
import requests
url = "https://api.acedata.cloud/suno/audios"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"action": "extend",
"prompt": "A song for Christmas",
"model": "chirp-v4-5",
"audio_id": "97efc9f4-0e8d-4b3e-88df-14568fa1b11f",
"continue_at": 2,
"lyric": "[Verse]\\nSnowflakes falling all around\\nGlistening white\\nCovering the ground\\nChildren laughing\\nFull of delight\\nIn this winter wonderland tonight\\nSanta's sleigh\\nUp in the sky\\nRudolph's nose shining bright\\nOh my\\nHear the jingle bells\\nRinging so clear\\nBringing joy and holiday cheer\\n[Verse 2]\\nRoasting chestnuts by the fire's glow\\nChristmas lights\\nThey twinkle and show\\nFamilies gathering with love and cheer\\nSpreading warmth to everyone near",
"custom": True,
"instrumental": False
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Clicking run, you can find that a result will be obtained, as follows:
{
"success": true,
"task_id": "75b835d9-30d1-4641-8524-0aeedbdc9e1a",
"trace_id": "44c41045-a2e1-4d19-aafc-7abd239d0d5c",
"data": [
{
"id": "0a1e1b10-c36a-41c9-9bfb-b26d9d25db98",
"title": "",
"image_url": "https://cdn2.suno.ai/image_0a1e1b10-c36a-41c9-9bfb-b26d9d25db98.jpeg",
"lyric": "[Verse]\\nSnowflakes falling all around\\nGlistening white\\nCovering the ground\\nChildren laughing\\nFull of delight\\nIn this winter wonderland tonight\\nSanta's sleigh\\nUp in the sky\\nRudolph's nose shining bright\\nOh my\\nHear the jingle bells\\nRinging so clear\\nBringing joy and holiday cheer\\n[Verse 2]\\nRoasting chestnuts by the fire's glow\\nChristmas lights\\nThey twinkle and show\\nFamilies gathering with love and cheer\\nSpreading warmth to everyone near",
"audio_url": "https://cdn1.suno.ai/0a1e1b10-c36a-41c9-9bfb-b26d9d25db98.mp3",
"video_url": "",
"created_at": "2025-06-17T16:38:35.509Z",
"model": "chirp-auk",
"state": "succeeded",
"style": "",
"duration": 165.92
},
{
"id": "4334c5b4-0a44-4b26-a8f6-66cc4dbb8fc3",
"title": "",
"image_url": "https://cdn2.suno.ai/image_4334c5b4-0a44-4b26-a8f6-66cc4dbb8fc3.jpeg",
"lyric": "[Verse]\\nSnowflakes falling all around\\nGlistening white\\nCovering the ground\\nChildren laughing\\nFull of delight\\nIn this winter wonderland tonight\\nSanta's sleigh\\nUp in the sky\\nRudolph's nose shining bright\\nOh my\\nHear the jingle bells\\nRinging so clear\\nBringing joy and holiday cheer\\n[Verse 2]\\nRoasting chestnuts by the fire's glow\\nChristmas lights\\nThey twinkle and show\\nFamilies gathering with love and cheer\\nSpreading warmth to everyone near",
"audio_url": "https://cdn1.suno.ai/4334c5b4-0a44-4b26-a8f6-66cc4dbb8fc3.mp3",
"video_url": "",
"created_at": "2025-06-17T16:38:35.509Z",
"model": "chirp-auk",
"state": "succeeded",
"style": "",
"duration": 158.84
}
]
}
It can be seen that the result content is consistent with the above text, thus achieving the function of continuing the song generation.
¶ Get the Complete Song
When continuing to generate a song based on the original song, the returned song does not contain the original song content. If you want to obtain the complete song content, you need to use the concatenation function, and you can specify the following content:
- action: content is
concat. - audio_id: ID of the last segment.
For example, the ID of the extended song is: 0a1e1b10-c36a-41c9-9bfb-b26d9d25db98, then you can set the parameters as follows:
{
"action": "concat",
"audio_id": "0a1e1b10-c36a-41c9-9bfb-b26d9d25db98"
}
Other parameters remain unchanged, and the returned result will be a complete song, which is the concatenation result of all song segments, but the result will only be one song, as shown below:
{
"success": true,
"task_id": "0f794915-8418-4124-93f5-b7eb3a417167",
"trace_id": "62afcce0-e7e5-44b8-8c2e-4bba12a4f414",
"data": [
{
"id": "0efec7e0-11bf-4313-9981-2c0e7218d7dd",
"title": "",
"image_url": "https://cdn2.suno.ai/image_0a1e1b10-c36a-41c9-9bfb-b26d9d25db98.jpeg",
"lyric": "[Verse]\\nSnowflakes falling all around\\nGlistening white\\nCovering the ground\\nChildren laughing\\nFull of delight\\nIn this winter wonderland tonight\\nSanta's sleigh\\nUp in the sky\\nRudolph's nose shining bright\\nOh my\\nHear the jingle bells\\nRinging so clear\\nBringing joy and holiday cheer\\n[Verse 2]\\nRoasting chestnuts by the fire's glow\\nChristmas lights\\nThey twinkle and show\\nFamilies gathering with love and cheer\\nSpreading warmth to everyone near\n[Verse]\\nSnowflakes falling all around\\nGlistening white\\nCovering the ground\\nChildren laughing\\nFull of delight\\nIn this winter wonderland tonight\\nSanta's sleigh\\nUp in the sky\\nRudolph's nose shining bright\\nOh my\\nHear the jingle bells\\nRinging so clear\\nBringing joy and holiday cheer\\n[Verse 2]\\nRoasting chestnuts by the fire's glow\\nChristmas lights\\nThey twinkle and show\\nFamilies gathering with love and cheer\\nSpreading warmth to everyone near",
"audio_url": "https://cdn1.suno.ai/0efec7e0-11bf-4313-9981-2c0e7218d7dd.mp3",
"video_url": "",
"created_at": "2025-06-17T16:43:06.718Z",
"model": "chirp-auk",
"state": "succeeded",
"style": "",
"duration": 167.91997916666668,
"concat_history": [
{
"continue_at": 2,
"id": "97efc9f4-0e8d-4b3e-88df-14568fa1b11f",
"infill": false,
"source": "web",
"type": "gen"
},
{
"id": "0a1e1b10-c36a-41c9-9bfb-b26d9d25db98"
}
]
}
]
}
¶ Music Reproduction
When generating a song based on an existing song, the style of the returned song may not be suitable. If you want to create a cover of the originally generated song (custom uploaded music is also supported), you need to use the music cover method, which allows you to specify the following content:
- action: The content is
cover. When performing a cover operation on custom uploaded music, the content must be specified as:upload_cover. - audio_id: The ID of the previously generated song.
For example, if the ID of the originally generated song is: 0a1e1b10-c36a-41c9-9bfb-b26d9d25db98, you can set the parameters as follows:
{
"action": "cover",
"audio_id": "0a1e1b10-c36a-41c9-9bfb-b26d9d25db98",
"prompt": "A song for Christmas",
"model": "chirp-v4-5"
}
With other parameters unchanged, the returned result will be a cover song, which is the result of creating a cover of the originally generated song, as shown below:
{
"success": true,
"task_id": "b9d43d06-2e0a-4b5e-9e0d-7dfab32e00ab",
"trace_id": "6c5e567d-0fdc-4c44-9b36-4090d9a75ff5",
"data": [
{
"id": "6988fa57-f810-41cf-afab-7838db2c77dc",
"title": "",
"image_url": "https://cdn2.suno.ai/image_6988fa57-f810-41cf-afab-7838db2c77dc.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/6988fa57-f810-41cf-afab-7838db2c77dc.mp3",
"video_url": "",
"created_at": "2025-06-17T16:44:13.007Z",
"model": "chirp-auk",
"state": "succeeded",
"style": "",
"duration": 182.4
},
{
"id": "ce98b991-0258-4f05-8245-e43d4efa8fb8",
"title": "",
"image_url": "https://cdn2.suno.ai/image_ce98b991-0258-4f05-8245-e43d4efa8fb8.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/ce98b991-0258-4f05-8245-e43d4efa8fb8.mp3",
"video_url": "",
"created_at": "2025-06-17T16:44:13.007Z",
"model": "chirp-auk",
"state": "succeeded",
"style": "",
"duration": 179.72
}
]
}
The generated result is similar to the above, completing the process of generating a cover of the originally generated song.
¶ Replace Section
When a song is generated and you need to perform a separate operation to replace a section of the song, you can replace a specific segment of the song.
⚠️ Note: When
replace_sectionis used alone, it will only return the newly generated "replacement segment" itself (i.e., the new audio for the replaced segment, with a duration approximately equal toreplace_section_end - replace_section_start, and accompanied by a small amount of context), and will not return the complete song that has been spliced together. To obtain the complete product spliced with the original song, you need to initiate a music splicing task again for the returned segment ID after thereplace_sectionis successful. The complete process is described below.
Parameter descriptions are as follows:
- action: The content is
replace_section. - audio_id: The ID of the original song (the source song being replaced).
- model: The song generation model.
- lyric: The complete lyrics after replacement (including the replaced segment and its context, consistent with the content in
prompt). - prompt: The new lyrics for the segment that needs to be replaced.
- style: The style of the song, optional.
- replace_section_start: The start time (in seconds) of the segment being replaced in the original song.
- replace_section_end: The end time (in seconds) of the segment being replaced in the original song.
¶ Step 1: Initiate the Replace Section Task
For example, if the ID of the originally generated song is: 18db7ed0-2b8a-41db-91c1-b0781dcca0d4 (duration 94.12 seconds), and you want to replace the chorus from the 30th second to the 60th second with new lyrics, you can set the parameters as follows:
{
"action": "replace_section",
"audio_id": "18db7ed0-2b8a-41db-91c1-b0781dcca0d4",
"model": "chirp-v5-5",
"custom": false,
"instrumental": false,
"lyric": "[Intro]\nThe drums are loud, the red lanterns are high\n[Verse 1]\nThe sound of firecrackers bids farewell to the old year\nThe spring breeze warms every home\nRed envelopes bring smiles\nThe golden snake dances to celebrate the new spring\n[Chorus]\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\n[Verse 2]\nDumplings are fragrant for the New Year's Eve dinner\nLanterns sway, illuminating the reunion",
"prompt": "Plum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere",
"replace_section_start": 30.0,
"replace_section_end": 60.0
}
The return will be the newly generated replacement segment (a total of 2 candidates), as shown below:
{
"success": true,
"task_id": "dd067075-a295-4160-8375-d5504327d55b",
"trace_id": "c34f589b-9195-4d0b-af78-9c890e77609c",
"data": [
{
"id": "364f9d8b-ca25-463b-9a5e-d0b7139e2d6a",
"title": "",
"image_url": "https://cdn2.suno.ai/image_364f9d8b-ca25-463b-9a5e-d0b7139e2d6a.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_364f9d8b-ca25-463b-9a5e-d0b7139e2d6a.jpeg",
"lyric": "[Intro]\nThe drums are loud, the red lanterns are high\n[Verse 1]\nThe sound of firecrackers bids farewell to the old year\nThe spring breeze warmly enters every home\nRed envelopes bring smiles to faces\nThe golden snake dances to celebrate the new spring\n[Chorus]\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\n[Verse 2]\nDumplings are fragrant for the New Year's Eve dinner\nLanterns sway, illuminating the reunion",
"audio_url": "https://cdn1.suno.ai/364f9d8b-ca25-463b-9a5e-d0b7139e2d6a.mp3",
"video_url": "",
"created_at": "2026-05-06T06:55:00.000Z",
"model": "chirp-v5-5",
"state": "succeeded",
"style": "",
"duration": 45.16
},
{
"id": "fae966ea-5f7f-4e80-9962-1c57963c7f8a",
"title": "",
"audio_url": "https://cdn1.suno.ai/fae966ea-5f7f-4e80-9962-1c57963c7f8a.mp3",
"model": "chirp-v5-5",
"state": "succeeded",
"duration": 33.8
}
]
}
It can be seen that the durations of the two returned audio clips (45.16 seconds, 33.8 seconds) are much shorter than the original song (94.12 seconds). They are just the replacement segments themselves (including a little bit of context before and after for transition) and are not the entire song spliced together. You can choose one of the two candidates that you are satisfied with, and the next step is to splice this segment back into the original song.
¶ Step Two: Splice the Replacement Segment Back into the Original Song
For the selected segment above (for example, 364f9d8b-ca25-463b-9a5e-d0b7139e2d6a), initiate a concat task according to the method in the Music Splicing section:
{
"action": "concat",
"audio_id": "364f9d8b-ca25-463b-9a5e-d0b7139e2d6a",
"model": "chirp-v5-5"
}
The return is the spliced complete song, as shown below:
{
"success": true,
"task_id": "5dbd4a78-0197-4ef3-9c16-8bddaf4f0c94",
"trace_id": "580bd1da-2ad3-4d75-be1f-6c14bd4b489d",
"data": [
{
"id": "365a9640-0452-4567-80f0-4f5a2a17ddd5",
"title": "Happy New Year",
"image_url": "https://cdn2.suno.ai/image_364f9d8b-ca25-463b-9a5e-d0b7139e2d6a.jpeg",
"lyric": "[Intro]\nThe drums are loud, the red lanterns are high\n[Verse 1]\nThe sound of firecrackers bids farewell to the old year\nThe spring breeze warmly enters every home\nRed envelopes bring smiles to faces\nThe golden snake dances to celebrate the new spring\n[Chorus]\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\nPlum blossoms bloom, spring is overflowing everywhere\n[Verse 2]\nDumplings are fragrant for the New Year's Eve dinner\nLanterns sway, illuminating the reunion",
"audio_url": "https://cdn1.suno.ai/365a9640-0452-4567-80f0-4f5a2a17ddd5.mp3",
"video_url": "",
"created_at": "2026-05-06T06:56:46.057Z",
"model": "chirp-v5-5",
"state": "succeeded",
"style": "traditional Chinese new year, festive, female vocals, upbeat",
"duration": 105.28
}
]
}
At this point, the duration has been restored to the full song length (105.28 seconds, approximately equal to the original song length), and the audio_url points to the completed song after the replacement. This completes the "generate → replace segment → splice full song" secondary creation process.
¶ Vocal and Instrument Separation
When the song is generated and needs to be further created with separate operations for accompaniment and vocals, the pure instrumental accompaniment and the clean vocal can be separated. You can specify the following content:
- action: the content is
stems. - audio_id: the ID of the previously generated song.
For example, if the ID of the song generated earlier is: ec13e502-d043-4eb2-92ee-e900c6da69d1, then the parameters can be set as follows:
{
"action": "stems",
"audio_id": "ec13e502-d043-4eb2-92ee-e900c6da69d1"
}
With the above parameters, you can obtain the results of the vocal and instrumental separation, as shown below:
```json
{
"success": true,
"task_id": "4050affc-f8a6-4cba-a86c-bf201eed053d",
"trace_id": "5107ee58-687d-422f-9195-fa0e82e1fcc8",
"data": [
{
"id": "e3de0928-085a-42c4-b982-3b24738d1989",
"title": "Deck the Sky - Vocals",
"image_url": "https://cdn2.suno.ai/image_e3de0928-085a-42c4-b982-3b24738d1989.jpeg",
"lyric": "[Verse]\nSnowflakes dance on rooftops high\nChildren's laughter fills the sky\nCarols ring from church bells loud\nHolidays a joyful crowd\n[Verse 2]\nCandy canes and cocoa warm\nWrapped up tight in our own storm\nStockings hung with dreams and cheer\nMagic growing every year\n[Chorus]\nDeck the sky with twinkling stars\nHoliday joy feels ours and ours\nSing the songs of love and light\nChristmas glows so pure and bright\n[Verse 3]\nFireside tales of long ago\nReindeer prance in icy glow\nEvergreen and tinsel’s gleam\nChristmas time a lovely dream\n[Bridge]\nHearts are full with friends and kin\nMistletoe for love to win\nGifts of love and hope we share\nChristmas spirit everywhere\n[Chorus]\nDeck the sky with twinkling stars\nHoliday joy feels ours and ours\nSing the songs of love and light\nChristmas glows so pure and bright",
"audio_url": "https://cdn1.suno.ai/e3de0928-085a-42c4-b982-3b24738d1989.mp3",
"video_url": "https://cdn1.suno.ai/e3de0928-085a-42c4-b982-3b24738d1989.mp4",
"created_at": "2025-01-05T07:49:16.881Z",
"model": "",
"state": "succeeded",
"style": "holiday, jolly",
"duration": 174.16
},
{
"id": "ad5d7c89-709c-4eb4-a5a6-72f9f5e57fdb",
"title": "Deck the Sky - Instrumental",
"image_url": "https://cdn2.suno.ai/image_ad5d7c89-709c-4eb4-a5a6-72f9f5e57fdb.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/ad5d7c89-709c-4eb4-a5a6-72f9f5e57fdb.mp3",
"video_url": "https://cdn1.suno.ai/ad5d7c89-709c-4eb4-a5a6-72f9f5e57fdb.mp4",
"created_at": "2025-01-05T07:49:16.892Z",
"model": "",
"state": "succeeded",
"style": "holiday, jolly",
"duration": 174.16
}
]
}
The generated result is similar to the above, completing the process of vocal and instrumental separation for the originally generated song.
¶ Full Track Vocal and Instrumental Separation
When a full track vocal and instrumental separation operation is needed after generating a song, the following content can be specified:
- action: The content is
all_stems. - audio_id: The ID of the previously generated song.
For example, if the ID of the previously generated song is: bdf23a5a-59f5-4103-b452-054a824a7f9f, then the parameters can be set as follows:
{
"action": "all_stems",
"audio_id": "bdf23a5a-59f5-4103-b452-054a824a7f9f"
}
With the above parameters, the result of the full track vocal and instrumental separation can be obtained, as follows:
{
"success": true,
"task_id": "f4b16fb9-8478-4857-88c7-b9a1f0bb9518",
"trace_id": "9c560ebd-4fc6-4bdb-988a-8890160a92fb",
"data": [
{
"id": "f86ca64a-9519-4ea7-a592-52438e001412",
"title": "Safety String (Vocals)",
"image_url": "https://cdn2.suno.ai/image_f86ca64a-9519-4ea7-a592-52438e001412.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/f86ca64a-9519-4ea7-a592-52438e001412.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.770Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "99e649a7-a394-47b9-a915-d7f847285a36",
"title": "Safety String (Backing Vocals)",
"image_url": "https://cdn2.suno.ai/image_99e649a7-a394-47b9-a915-d7f847285a36.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/99e649a7-a394-47b9-a915-d7f847285a36.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.770Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "6d710bf7-809f-4fdc-bb63-b8cb3a456d42",
"title": "Safety String (Drums)",
"image_url": "https://cdn2.suno.ai/image_6d710bf7-809f-4fdc-bb63-b8cb3a456d42.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/6d710bf7-809f-4fdc-bb63-b8cb3a456d42.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.770Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "e05f07e3-7d80-4713-8e51-7f176c733543",
"title": "Safety String (Bass)",
"image_url": "https://cdn2.suno.ai/image_e05f07e3-7d80-4713-8e51-7f176c733543.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/e05f07e3-7d80-4713-8e51-7f176c733543.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.770Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "93fe7cd8-62fd-4739-b78e-142c7e0b8562",
"title": "Safety String (Guitar)",
"image_url": "https://cdn2.suno.ai/image_93fe7cd8-62fd-4739-b78e-142c7e0b8562.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/93fe7cd8-62fd-4739-b78e-142c7e0b8562.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.770Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
},
{ "id": "8367d71c-fdd3-441c-8ebe-70c33cca821b", "title": "Safety String (Keyboard)", "image_url": "https://cdn2.suno.ai/image_8367d71c-fdd3-441c-8ebe-70c33cca821b.jpeg", "lyric": "", "audio_url": "https://cdn1.suno.ai/8367d71c-fdd3-441c-8ebe-70c33cca821b.mp3", "video_url": "", "created_at": "2025-06-11T02:40:30.770Z", "model": "chirp-ahi-stem-12-t1", "state": "succeeded", "duration": 154.92 }, { "id": "28c03590-731c-416e-8fd3-95cdb3d75043", "title": "Safety String (Percussion)", "image_url": "https://cdn2.suno.ai/image_28c03590-731c-416e-8fd3-95cdb3d75043.jpeg", "lyric": "", "audio_url": "https://cdn1.suno.ai/28c03590-731c-416e-8fd3-95cdb3d75043.mp3", "video_url": "", "created_at": "2025-06-11T02:40:30.770Z", "model": "chirp-ahi-stem-12-t1", "state": "succeeded", "duration": 154.92 }, { "id": "3d4c1a28-4e1c-485a-8201-d21bb93aca2f", "title": "Safety String (Strings)", "image_url": "https://cdn2.suno.ai/image_3d4c1a28-4e1c-485a-8201-d21bb93aca2f.jpeg", "lyric": "", "audio_url": "https://cdn1.suno.ai/3d4c1a28-4e1c-485a-8201-d21bb93aca2f.mp3", "video_url": "", "created_at": "2025-06-11T02:40:30.770Z", "model": "chirp-ahi-stem-12-t1", "state": "succeeded", "duration": 154.92 }, { "id": "b9db8ded-01ec-4e37-b8a5-64aab3a814c2", "title": "Safety String (Synth)", "image_url": "https://cdn2.suno.ai/image_b9db8ded-01ec-4e37-b8a5-64aab3a814c2.jpeg", "lyric": "", "audio_url": "https://cdn1.suno.ai/b9db8ded-01ec-4e37-b8a5-64aab3a814c2.mp3", "video_url": "", "created_at": "2025-06-11T02:40:30.770Z", "model": "chirp-ahi-stem-12-t1", "state": "succeeded", "duration": 154.92 }, { "id": "10a5248e-32e6-42b9-8da1-678a8a392aef", "title": "Safety String (FX)", "image_url": "https://cdn2.suno.ai/image_10a5248e-32e6-42b9-8da1-678a8a392aef.jpeg", "lyric": "", "audio_url": "https://cdn1.suno.ai/10a5248e-32e6-42b9-8da1-678a8a392aef.mp3", "video_url": "", "created_at": "2025-06-11T02:40:30.770Z", "model": "chirp-ahi-stem-12-t1", "state": "succeeded", "duration": 154.92 }, { "id": "2d272128-111f-4901-8f62-5ae1eb43095a", "title": "Safety String (Brass)", "image_url": "https://cdn2.suno.ai/image_2d272128-111f-4901-8f62-5ae1eb43095a.jpeg", "lyric": "", "audio_url": "https://cdn1.suno.ai/2d272128-111f-4901-8f62-5ae1eb43095a.mp3", "video_url": "", "created_at": "2025-06-11T02:40:30.770Z", "model": "chirp-ahi-stem-12-t1", "state": "succeeded", "duration": 154.92 }, { "id": "4a7c19a5-f8d4-4e4a-add9-aa0bad9307cc", "title": "Safety String (Woodwinds)", "image_url": "https://cdn2.suno.ai/image_4a7c19a5-f8d4-4e4a-add9-aa0bad9307cc.jpeg", "lyric": "", "audio_url": "https://cdn1.suno.ai/4a7c19a5-f8d4-4e4a-add9-aa0bad9307cc.mp3", "video_url": "", "created_at": "2025-06-11T02:40:30.770Z", "model": "chirp-ahi-stem-12-t1", "state": "succeeded", "duration": 154.92 }, { "id": "1ca774f9-3e75-48a6-941b-808875eadcd2", "title": "Safety String (Vocals)", "image_url": "https://cdn2.suno.ai/image_1ca774f9-3e75-48a6-941b-808875eadcd2.jpeg", "lyric": "", "audio_url": "https://cdn1.suno.ai/1ca774f9-3e75-48a6-941b-808875eadcd2.mp3", "video_url": "", "created_at": "2025-06-11T02:40:30.770Z", "model": "chirp-ahi-stem-12-t1", "state": "succeeded", "duration": 154.92 }, { "id": "14c5ffc7-addf-4fee-afd2-4b8b3e7ee470", "title": "Safety String (Backing Vocals)", "image_url": "https://cdn2.suno.ai/image_14c5ffc7-addf-4fee-afd2-4b8b3e7ee470.jpeg", "lyric": "", "audio_url": "https://cdn1.suno.ai/14c5ffc7-addf-4fee-afd2-4b8b3e7ee470.mp3", "video_url": "", "created_at": "2025-06-11T02:40:30.771Z", "model": "chirp-ahi-stem-12-t1", "state": "succeeded", "duration": 154.92 }, { "id": "9d044557-450d-48ab-90dc-8eaf6f1cdb6c", "title": "Safety String (Drums)", "image_url": "https://cdn2.suno.ai/image_9d044557-450d-48ab-90dc-8eaf6f1cdb6c.jpeg", "lyric": "", "audio_url": "https://cdn1.suno.ai/9d044557-450d-48ab-90dc-8eaf6f1cdb6c.mp3", "video_url": "", "created_at": "2025-06-11T02:40:30.771Z", "model": "chirp-ahi-stem-12-t1", "state": "succeeded", "duration": 154.92 },
{
"id": "efd052d0-c12f-47b3-8282-1f3ef7610e1f",
"title": "Safety String (Bass)",
"image_url": "https://cdn2.suno.ai/image_efd052d0-c12f-47b3-8282-1f3ef7610e1f.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/efd052d0-c12f-47b3-8282-1f3ef7610e1f.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.771Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "5775372b-292e-4420-96ef-60e57a60cc1f",
"title": "Safety String (Guitar)",
"image_url": "https://cdn2.suno.ai/image_5775372b-292e-4420-96ef-60e57a60cc1f.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/5775372b-292e-4420-96ef-60e57a60cc1f.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.771Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "dab3f220-19cd-408e-9b96-30ec18f5b049",
"title": "Safety String (Keyboard)",
"image_url": "https://cdn2.suno.ai/image_dab3f220-19cd-408e-9b96-30ec18f5b049.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/dab3f220-19cd-408e-9b96-30ec18f5b049.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.771Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "2d0cd6d4-af82-4bb5-86fe-d92bdb367157",
"title": "Safety String (Percussion)",
"image_url": "https://cdn2.suno.ai/image_2d0cd6d4-af82-4bb5-86fe-d92bdb367157.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/2d0cd6d4-af82-4bb5-86fe-d92bdb367157.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.771Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "f3191a1a-5e8d-4afe-b638-3add222d52cd",
"title": "Safety String (Strings)",
"image_url": "https://cdn2.suno.ai/image_f3191a1a-5e8d-4afe-b638-3add222d52cd.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/f3191a1a-5e8d-4afe-b638-3add222d52cd.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.771Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "a8834ea5-200b-4206-a812-9780ef336660",
"title": "Safety String (Synth)",
"image_url": "https://cdn2.suno.ai/image_a8834ea5-200b-4206-a812-9780ef336660.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/a8834ea5-200b-4206-a812-9780ef336660.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.771Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "f50d1a31-ef72-400a-b8ae-0367849d007d",
"title": "Safety String (FX)",
"image_url": "https://cdn2.suno.ai/image_f50d1a31-ef72-400a-b8ae-0367849d007d.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/f50d1a31-ef72-400a-b8ae-0367849d007d.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.771Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "cb581673-23cc-40d6-9f9b-0f76720f0d18",
"title": "Safety String (Brass)",
"image_url": "https://cdn2.suno.ai/image_cb581673-23cc-40d6-9f9b-0f76720f0d18.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/cb581673-23cc-40d6-9f9b-0f76720f0d18.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.771Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}, {
"id": "d91cfb52-f0a3-4546-bf8a-2ad14c3775a5",
"title": "Safety String (Woodwinds)",
"image_url": "https://cdn2.suno.ai/image_d91cfb52-f0a3-4546-bf8a-2ad14c3775a5.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/d91cfb52-f0a3-4546-bf8a-2ad14c3775a5.mp3",
"video_url": "",
"created_at": "2025-06-11T02:40:30.771Z",
"model": "chirp-ahi-stem-12-t1",
"state": "succeeded",
"duration": 154.92
}
]
}
The generated result is similar to the above text, completing the process of separating the original generated song into different tracks.
¶ Custom Advanced Parameters for Generation
The official allows the use of advanced parameters weirdness==>Weirdness, style_influence==>Style Influence, audio_weight==>Audio Influence in custom mode for generation, corresponding to the official examples as shown below:

The range of advanced parameters is between 0-1, as shown in the following image:

After filling in, the automatically generated code is as follows:

Corresponding Python code:
```python
import requests
url = "https://api.acedata.cloud/suno/audios"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"action": "generate",
"model": "chirp-v4-5",
"lyric": "Hello Hello Hello ",
"custom": True,
"weirdness": 0.4,
"style_influence": 0.4,
"audio_weight": 0.4
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Clicking run, you can find that a result will be obtained, as follows:
{
"success": true,
"task_id": "2f3aa682-e1a7-43a9-9fbb-ed0ce8668a4b",
"trace_id": "07408194-7deb-4a52-a36d-9a9a13143b5f",
"data": [
{
"id": "c66e2077-7580-43f2-9937-c67a8afcd8bd",
"title": "",
"image_url": "https://cdn2.suno.ai/image_c66e2077-7580-43f2-9937-c67a8afcd8bd.jpeg",
"lyric": "Hello Hello Hello ",
"audio_url": "https://cdn1.suno.ai/c66e2077-7580-43f2-9937-c67a8afcd8bd.mp3",
"video_url": "",
"created_at": "2025-07-10T12:54:35.199Z",
"model": "chirp-auk",
"state": "succeeded",
"style": "",
"duration": 187.92
},
{
"id": "a922f97b-307c-4c4d-aae3-a47ba8202a10",
"title": "",
"image_url": "https://cdn2.suno.ai/image_a922f97b-307c-4c4d-aae3-a47ba8202a10.jpeg",
"lyric": "Hello Hello Hello ",
"audio_url": "https://cdn1.suno.ai/a922f97b-307c-4c4d-aae3-a47ba8202a10.mp3",
"video_url": "",
"created_at": "2025-07-10T12:54:35.199Z",
"model": "chirp-auk",
"state": "succeeded",
"style": "",
"duration": 229.64
}
]
}
This way, custom songs are generated using advanced parameters, and the results are similar to the above.
¶ Control Song Duration
By default, the duration of the generated song is determined by the model, usually between 30 seconds and 4 minutes. If a longer or shorter product is needed, the expected duration can be specified through the duration parameter, with values being integers between 10 and 360 seconds.
This parameter is used for song generation in custom mode (custom is true). It should be noted that duration is a tendency prompt, not a hard constraint: the model will refer to this value during creation, but it does not guarantee to achieve it. In practice, the actual duration is usually significantly shorter than the expected value, and the durations of two songs returned in the same request may also differ by several times. Even with completely identical requests, the durations obtained from multiple submissions may vary greatly. Therefore, do not treat it as precise duration control; if a fixed duration is required for business purposes, please trim or retry after obtaining the product.
The corresponding Python code:
import requests
url = "https://api.acedata.cloud/suno/audios"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"action": "generate",
"model": "chirp-v5-5",
"custom": True,
"title": "Under the City Lights",
"style": "lo-fi piano",
"lyric": "[Verse]\nSunrise creepin\nGold on the floor\n[Chorus]\nUnder the city lights\n",
"duration": 330
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
It is important to note that the duration in the request is the expected duration, while the duration field of each song in the response data is the actual duration of that song. Both have the same name but different meanings, and the actual duration is not guaranteed to equal the expected value. The length of the lyrics is one of the main factors affecting the duration of the product; if a longer product is needed, it is recommended to provide more complete lyrics at the same time.
The interface will not perform additional validation on duration, and the parameters will be passed to the model as is. If unsupported values for the current mode or model are passed in, it may result in that value being ignored. It is recommended to confirm the effect with a single request before using it in bulk.
¶ Add Instrumental Function
In August 2025, Suno introduced the Add Instrumental function. First, you need to upload a song with only vocals and no accompaniment, allowing Suno to help you with the music. You can first go to the Suno Upload API to upload a song with only vocals, corresponding to the operations shown in the following image:

Then you need to record the audio_id after uploading, with the specific result shown in the following image:

Finally, you get an audio_id: 92254cab-3372-4d9e-bce9-cdcfdbc39070, and then we need to fill in the following parameters:
- action: the content is
underpainting. - underpainting_start: the starting time for adding accompaniment to the uploaded song, the default value is 0.
- underpainting_end: the endpoint for adding accompaniment to the uploaded song, must be less than the total duration of the song.
- audio_id: the ID of the uploaded song with only vocals.
- style: the style of the accompaniment, preferably without lyrics since it is for accompaniment.
After filling in, the code is automatically generated as follows:

The corresponding Python code:
import requests
url = "https://api.acedata.cloud/suno/audios"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"action": "underpainting",
"model": "chirp-v4-5",
"style": "Pop rap, uplifting, magnetic male vocals, piano, synth, electric guitar, driving bass, clear structure",
"audio_id": "92254cab-3372-4d9e-bce9-cdcfdbc39070",
"underpainting_end": 120
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Clicking run, you can find that a result will be obtained, as follows:
{
"success": true,
"task_id": "822d2e14-c535-4d48-a4e5-1b6ab00b04a7",
"trace_id": "257eac2c-8e4f-44d0-8454-5e215111eefa",
"data": [
{
"id": "2788cd21-bd84-422d-beb5-859c60fbf5b6",
"title": "",
"image_url": "https://cdn2.suno.ai/image_2788cd21-bd84-422d-beb5-859c60fbf5b6.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/2788cd21-bd84-422d-beb5-859c60fbf5b6.mp3",
"video_url": "",
"created_at": "2025-08-27T15:25:42.548Z",
"model": "chirp-v4",
"state": "succeeded",
"style": "Pop rap, uplifting, magnetic male vocals, piano, synth, electric guitar, driving bass, clear structure",
"duration": 10.16
},
{
"id": "a4bb7220-e971-4cbf-a626-b86c648bcf55",
"title": "",
"image_url": "https://cdn2.suno.ai/image_a4bb7220-e971-4cbf-a626-b86c648bcf55.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/a4bb7220-e971-4cbf-a626-b86c648bcf55.mp3",
"video_url": "",
"created_at": "2025-08-27T15:25:42.548Z",
"model": "chirp-v4",
"state": "succeeded",
"style": "Pop rap, uplifting, magnetic male vocals, piano, synth, electric guitar, driving bass, clear structure",
"duration": 2.52
}
]
}
This completes the operation of adding music to the uploaded a cappella song, with results similar to the above.
¶ Add Vocals Feature
In August 2025, Suno released the new Add Vocals feature. First, you need to upload a pure instrumental track, allowing Suno to add lyrics and vocals. You can start by uploading an a cappella song without accompaniment to the Suno Upload API, as shown in the following operation:

Then, you need to record the audio_id after uploading, with the specific result shown in the following image:

Finally, you obtain an audio_id: 92254cab-3372-4d9e-bce9-cdcfdbc39070, and you also need to fill in the following parameters:
- action: The content is
overpainting. - overpainting_start: The start time for adding vocals to the uploaded song, with a default value of 0.
- overpainting_end: The end time for adding vocals to the uploaded song, which must be less than the total duration of the song.
- audio_id: The ID of the uploaded a cappella song.
- custom: In this mode, you must use a custom mode to fill in the lyrics.
- lyric: The lyrics filled in the custom mode.
- style: The style of the accompaniment.
After filling in, the code is automatically generated as follows:

Corresponding Python code:
import requests
url = "https://api.acedata.cloud/suno/audios"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"action": "overpainting",
"model": "chirp-v4-5",
"lyric": "Yea your were the best I could get \\nBut I knew that it couldn’t last \\nStayed down since we were friends \\nHad to leave those thoughts in the past \\nMade like 40k just last week \\nOn top of the 20 with my babe\\ndon’t care for what niggas say",
"custom": True,
"audio_id": "92254cab-3372-4d9e-bce9-cdcfdbc39070",
"overpainting_end": 120
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Clicking run, you can find that you will get a result as follows:
{
"success": true,
"task_id": "31bb250e-6614-49ec-ac85-631f224daeba",
"trace_id": "efe8e7f3-9a65-4f13-a9f8-51e8478899df",
"data": [
{
"id": "a597f945-64df-4722-a631-d436450832bd",
"title": "",
"image_url": "https://cdn2.suno.ai/image_a597f945-64df-4722-a631-d436450832bd.jpeg",
"lyric": "Yea your were the best I could get \\nBut I knew that it couldn’t last \\nStayed down since we were friends \\nHad to leave those thoughts in the past \\nMade like 40k just last week \\nOn top of the 20 with my babe\\ndon’t care for what niggas say",
"audio_url": "https://cdn1.suno.ai/a597f945-64df-4722-a631-d436450832bd.mp3",
"video_url": "",
"created_at": "2025-08-27T15:33:51.550Z",
"model": "chirp-v4",
"state": "succeeded",
"style": "",
"duration": 105.32
},
{
"id": "b41a8b91-3d88-4ebd-a6cf-732764b24954",
"title": "",
"image_url": "https://cdn2.suno.ai/image_b41a8b91-3d88-4ebd-a6cf-732764b24954.jpeg",
"lyric": "Yea your were the best I could get \\nBut I knew that it couldn’t last \\nStayed down since we were friends \\nHad to leave those thoughts in the past \\nMade like 40k just last week \\nOn top of the 20 with my babe\\ndon’t care for what niggas say",
"audio_url": "https://cdn1.suno.ai/b41a8b91-3d88-4ebd-a6cf-732764b24954.mp3",
"video_url": "",
"created_at": "2025-08-27T15:33:51.550Z",
"model": "chirp-v4",
"state": "succeeded",
"style": "",
"duration": 148.16
}
]
}
This completes the operation of adding vocals to the uploaded a cappella song, with results similar to the above.
¶ Remaster Feature
In December 2025, Suno released the new Remaster feature, which can regenerate songs but cannot cross accounts. You also need to fill in the following parameters:
- action: The content is
remaster. - audio_id: The ID of the song to be regenerated.
- model: Only supports v4.5+, v5.
- variation_category: Only supported in versions above v5, and only has 3 values: high, normal, subtle.
After filling in, the code is automatically generated as follows:

Corresponding Python code:
import requests
url = "https://api.acedata.cloud/suno/audios"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"action": "remaster",
"variation_category": "high",
"audio_id": "21fd46d4-45c3-4826-bec9-3f3df667902e"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Click to run, and you will find that a result is obtained, as follows:
{
"success": true,
"task_id": "791ee74c-9363-4352-afe7-babb19b89899",
"trace_id": "77acda57-c3d4-4e11-a506-4f50e0609916",
"data": [
{
"id": "b0515cdf-9cb5-46cd-b0fe-10a239dc9274",
"title": "Navidad en costura (Remastered)",
"image_url": "https://cdn2.suno.ai/image_b0515cdf-9cb5-46cd-b0fe-10a239dc9274.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_b0515cdf-9cb5-46cd-b0fe-10a239dc9274.jpeg",
"lyric": "In Teror the classes continue,\nnot even Christmas has a break;\nthe group sews among carols\nand a good piece of nougat.\nLa Popular opens its doors,\nand the workshop sounds better;\nthread, needle, and cheerful singing\nwe will have a better time\nWe continue in the seams,\nwith music and fun;\nthe students will eat\nlots of sweets ",
"audio_url": "https://cdn1.suno.ai/b0515cdf-9cb5-46cd-b0fe-10a239dc9274.mp3",
"video_url": "",
"created_at": "2025-12-04T13:09:59.936Z",
"model": "chirp-v4",
"state": "succeeded",
"style": "Villancico",
"duration": 32.2
},
{
"id": "06edab94-a4f9-4c0c-abac-a2e8a97c76a8",
"title": "Navidad en costura (Remastered)",
"image_url": "https://cdn2.suno.ai/image_06edab94-a4f9-4c0c-abac-a2e8a97c76a8.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_06edab94-a4f9-4c0c-abac-a2e8a97c76a8.jpeg",
"lyric": "In Teror the classes continue,\nnot even Christmas has a break;\nthe group sews among carols\nand a good piece of nougat.\nLa Popular opens its doors,\nand the workshop sounds better;\nthread, needle, and cheerful singing\nwe will have a better time\nWe continue in the seams,\nwith music and fun;\nthe students will eat\nlots of sweets ",
"audio_url": "https://cdn1.suno.ai/06edab94-a4f9-4c0c-abac-a2e8a97c76a8.mp3",
"video_url": "",
"created_at": "2025-12-04T13:09:59.936Z",
"model": "chirp-v4",
"state": "succeeded",
"style": "Villancico",
"duration": 32.2
}
]
}
This completes the operation of regenerating the already generated song, with results similar to the above.
¶ Mashup Generation Function
In December 2025, Suno released a new Mashup feature, which can generate a song based on two reference songs, and we also need to fill in the following parameters:
- action: The content is
mashup. - mashup_audio_ids: The IDs of the two reference songs.
After filling in, the code is automatically generated as follows:

The corresponding Python code:
import requests
url = "https://api.acedata.cloud/suno/audios"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"action": "mashup",
"lyric": "Sambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nSambuy come, Sambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nBluespawn, greenspawn are making you a spawn \\nSambuy come back",
"model": "chirp-v4-5",
"custom": True,
"instrumental": False,
"mashup_audio_ids": ["9f102969-0024-479e-b38f-c0c5db21383d","6aebb715-701c-433f-b976-a7ff5cf16255"]
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Click to run, and you will find that a result is obtained, as follows:
{
"success": true,
"task_id": "3fe070eb-2ab1-4424-909c-acfe3ca761af",
"trace_id": "2b220382-7a84-4853-ae43-05cdcad233a9",
"data": [
{
"id": "5ff751dc-0e72-4de9-a54b-2cad50984b47",
"title": "",
"image_url": "https://cdn2.suno.ai/image_5ff751dc-0e72-4de9-a54b-2cad50984b47.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_5ff751dc-0e72-4de9-a54b-2cad50984b47.jpeg",
"lyric": "Sambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nSambuy come, Sambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nBluespawn, greenspawn are making you a spawn \\nSambuy come back",
"audio_url": "https://cdn1.suno.ai/5ff751dc-0e72-4de9-a54b-2cad50984b47.mp3",
"video_url": "",
"created_at": "2026-01-25T15:13:30.181Z",
"model": "chirp-v4-5",
"state": "succeeded",
"style": "",
"duration": 219.08
},
{
"id": "19c515c4-d7b3-4a17-8ab0-dd1ebd4861b8",
"title": "",
"image_url": "https://cdn2.suno.ai/image_19c515c4-d7b3-4a17-8ab0-dd1ebd4861b8.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_19c515c4-d7b3-4a17-8ab0-dd1ebd4861b8.jpeg",
"lyric": "Sambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nSambuy come, Sambuy come back \\nBluespawn, greenspawn are making you a spawn \\n\\nSambuy come \\nSambuy come back \\nBluespawn, greenspawn are making you a spawn \\nSambuy come back",
"audio_url": "https://cdn1.suno.ai/19c515c4-d7b3-4a17-8ab0-dd1ebd4861b8.mp3",
"video_url": "",
"created_at": "2026-01-25T15:13:30.181Z",
"model": "chirp-v4-5",
"state": "succeeded",
"style": "",
"duration": 163.12
}
]
}
This completes the operation of generating a mixed track based on the reference songs, with results similar to the above.
¶ Samples Generate Songs
In December 2025, Suno released a new Samples feature, which can generate songs based on two reference songs. We also need to fill in the following parameters:
- action: The content is
samples. - samples_start: Sampling start time.
- samples_end: Sampling end time.
- audio_id: The ID of the reference song to sample.
After filling in, the following code is automatically generated:

Corresponding Python code:
import requests
url = "https://api.acedata.cloud/suno/audios"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"action": "samples",
"model": "chirp-v5",
"lyric": "[Verse 1]\\nPhone lit up\\nHeadline in my hand\\nFeels made up\\nStill says “you won’t understand”\\nYour name\\nMy name\\nSide by side in the scroll\\nCold black text\\nOn a story I used to hold\\n\\n[Chorus]\\nYou’re breaking news\\nAnd I’m just breaking\\nFront-page truth\\nHeart still shaking\\nEverybody reads\\nWhat we already knew\\nYou’re a story now\\nAnd I’m the one you broke it to\\n\\n[Verse 2]\\nNeighbors talk\\nThrough a half-closed door\\nCoffee cools\\nOn a cracked old floor\\nYour suitcase snaps\\nLike a camera flash\\nOne last quote\\nThen you cut to black\\n\\n[Chorus]\\nYou’re breaking news\\nAnd I’m just breaking\\nFront-page truth\\nHeart still shaking\\nEverybody reads\\nWhat we already knew\\nYou’re a story now\\nAnd I’m the one you broke it to\\n\\n[Bridge]\\nIs there a line\\nWhere we rewind\\nOr just a feed\\nThat leaves us behind\\nTell me\\nWho gets\\nThe final view\\nWhen I stop trending\\nWith you\\n\\n[Chorus]\\nYou’re breaking news\\nAnd I’m just breaking\\nFront-page truth\\nHeart still shaking\\nEverybody reads\\nWhat we already knew\\nYou’re a story now\\nAnd I’m the one you broke it to (yeah)",
"custom": True,
"instrumental": False,
"audio_id": "0fa07665-6b8e-4a8b-8bd3-7e0cfcdada88",
"samples_end": 102.16,
"samples_start": 59.88
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Clicking run, you can find that a result will be obtained, as follows:
{
"success": true,
"task_id": "12135a45-6384-4683-9bb1-64f19933915a",
"trace_id": "683e559d-340e-4c72-8fae-e683442ac7e9",
"data": [
{
"id": "9a0b680f-a9ea-4a36-8695-8ea777ab6ee7",
"title": "Whistle in the Wind",
"image_url": "https://cdn2.suno.ai/image_9a0b680f-a9ea-4a36-8695-8ea777ab6ee7.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_9a0b680f-a9ea-4a36-8695-8ea777ab6ee7.jpeg",
"lyric": "[Verse 1]\nPhone lit up\nHeadline in my hand\nFeels made up\nStill says “you won’t understand”\nYour name\nMy name\nSide by side in the scroll\nCold black text\nOn a story I used to hold\n[Chorus]\nYou’re breaking news\nAnd I’m just breaking\nFront-page truth\nHeart still shaking\nEverybody reads\nWhat we already knew\nYou’re a story now\nAnd I’m the one you broke it to\n[Verse 2]\nNeighbors talk\nThrough a half-closed door\nCoffee cools\nOn a cracked old floor\nYour suitcase snaps\nLike a camera flash\nOne last quote\nThen you cut to black\n[Chorus]\nYou’re breaking news\nAnd I’m just breaking\nFront-page truth\nHeart still shaking\nEverybody reads\nWhat we already knew\nYou’re a story now\nAnd I’m the one you broke it to\n[Bridge]\nIs there a line\nWhere we rewind\nOr just a feed\nThat leaves us behind\nTell me\nWho gets\nThe final view\nWhen I stop trending\nWith you\n[Chorus]\nYou’re breaking news\nAnd I’m just breaking\nFront-page truth\nHeart still shaking\nEverybody reads\nWhat we already knew\nYou’re a story now\nAnd I’m the one you broke it to (yeah)",
"audio_url": "https://cdn1.suno.ai/9a0b680f-a9ea-4a36-8695-8ea777ab6ee7.mp3",
"video_url": "",
"created_at": "2026-01-31T14:34:45.043Z",
"model": "chirp-v5",
"state": "succeeded",
"style": "acoustic with a hint of optimism,folk-pop,female vocals",
"duration": 176.92
},
{
"id": "66473dee-3aaf-43b2-80fd-76568b3abbb1",
"title": "Whistle in the Wind",
"image_url": "https://cdn2.suno.ai/image_66473dee-3aaf-43b2-80fd-76568b3abbb1.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_66473dee-3aaf-43b2-80fd-76568b3abbb1.jpeg",
"lyric": "[Verse 1]\nPhone lit up\nHeadline in my hand\nFeels made up\nStill says “you won’t understand”\nYour name\nMy name\nSide by side in the scroll\nCold black text\nOn a story I used to hold\n[Chorus]\nYou’re breaking news\nAnd I’m just breaking\nFront-page truth\nHeart still shaking\nEverybody reads\nWhat we already knew\nYou’re a story now\nAnd I’m the one you broke it to\n[Verse 2]\nNeighbors talk\nThrough a half-closed door\nCoffee cools\nOn a cracked old floor\nYour suitcase snaps\nLike a camera flash\nOne last quote\nThen you cut to black\n[Chorus]\nYou’re breaking news\nAnd I’m just breaking\nFront-page truth\nHeart still shaking\nEverybody reads\nWhat we already knew\nYou’re a story now\nAnd I’m the one you broke it to\n[Bridge]\nIs there a line\nWhere we rewind\nOr just a feed\nThat leaves us behind\nTell me\nWho gets\nThe final view\nWhen I stop trending\nWith you\n[Chorus]\nYou’re breaking news\nAnd I’m just breaking\nFront-page truth\nHeart still shaking\nEverybody reads\nWhat we already knew\nYou’re a story now\nAnd I’m the one you broke it to (yeah)",
"audio_url": "https://cdn1.suno.ai/66473dee-3aaf-43b2-80fd-76568b3abbb1.mp3",
"video_url": "",
"created_at": "2026-01-31T14:34:45.043Z",
"model": "chirp-v5",
"state": "succeeded",
"style": "acoustic with a hint of optimism,folk-pop,female vocals",
"duration": 177.48
}
]
}
This completes the operation of sampling and generating songs, with results similar to the above.
¶ Inspo Creative Function
Suno's newly released Inspo creative function can generate brand new music based on 1 to 4 segments of reference audio as inspiration. Unlike covers, Inspo does not replicate the original song but extracts stylistic inspiration from the reference audio and combines it with prompts, style tags, etc., to create new works. When using, the following parameters need to be filled in:
- action: The content is
inspo. - audio_urls: A list of URLs for reference audio, requiring 1 to 4 publicly accessible audio addresses.
- model: The model used, such as
chirp-v5. - prompt: Lyrics or creative prompts (optional).
- tags: Music style tags, such as
acoustic, folk, warm(optional). - title: Song title (optional).
- audio_weight: The influence weight of the reference audio on the generated result, ranging from 0 to 1 (optional).
Note: The reference audio must be publicly accessible audio files. If the reference audio completely matches known recordings in the platform's music library, Suno may refuse to generate due to copyright verification, so it is recommended to use self-owned or Suno-generated audio as inspiration.
Corresponding Python code:
import requests
url = "https://api.acedata.cloud/suno/audios"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"action": "inspo",
"model": "chirp-v5",
"audio_urls": [
"https://cdn1.suno.ai/935dd2f5-ddef-43cf-8e68-5a262425694d.mp3"
],
"prompt": "warm acoustic folk with soft vocals",
"tags": "acoustic, folk, warm",
"title": "Inspo Demo",
"audio_weight": 0.6
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Clicking run, you can find that you will get a result as follows:
{
"success": true,
"task_id": "725e6b41-78d0-4adf-856c-05e81098c029",
"trace_id": "8c2f0b3e-2f6a-4738-8b1d-c58068ca3dab",
"data": [
{
"id": "20ca5628-86e0-4c32-8ae4-9f0c481e45f3",
"title": "Inspo Demo",
"image_url": "https://cdn2.suno.ai/image_20ca5628-86e0-4c32-8ae4-9f0c481e45f3.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/20ca5628-86e0-4c32-8ae4-9f0c481e45f3.mp3",
"video_url": "",
"created_at": "2026-06-18T13:01:53.910Z",
"model": "chirp-v5",
"state": "succeeded",
"style": "acoustic, folk, warm",
"duration": 36.92
},
{
"id": "8744a796-9961-45af-868d-4f3bc1c44257",
"title": "Inspo Demo",
"image_url": "https://cdn2.suno.ai/image_8744a796-9961-45af-868d-4f3bc1c44257.jpeg",
"lyric": "",
"audio_url": "https://cdn1.suno.ai/8744a796-9961-45af-868d-4f3bc1c44257.mp3",
"video_url": "",
"created_at": "2026-06-18T13:01:53.910Z",
"model": "chirp-v5",
"state": "succeeded",
"style": "acoustic, folk, warm",
"duration": 84.16
}
]
}
This completes the operation of inspiration creation, and the returned result is consistent with the normal song generation.
¶ Asynchronous Callback
Since the time for Suno to generate music is relatively long, approximately 1-2 minutes, if the API does not respond for a long time, the HTTP request will keep the connection open, leading to additional system resource consumption. Therefore, this API also provides support for asynchronous callbacks.
The overall process is: when the client initiates a request, an additional callback_url field is specified. After the client initiates the API request, the API will immediately return a result containing a task_id field, representing the current task ID. When the task is completed, the generated music result will be sent to the client-specified callback_url in the form of a POST JSON, which also includes the task_id field, allowing the task result to be associated by ID.
Let’s understand how to operate specifically through an example.
First, the Webhook callback is a service that can receive HTTP requests, and developers should replace it with the URL of their own HTTP server. For demonstration purposes, we use a public Webhook sample site https://webhook.site/, where you can open the site to get a Webhook URL, as shown in the image:

Copy this URL, and it can be used as a Webhook. The sample here is https://webhook.site/03e60575-3d96-4132-b681-b713d78116e2.
Next, we can set the callback_url field to the above Webhook URL and fill in the prompt, as shown in the image:

Clicking run, you will find that an immediate result is obtained, as follows:
{
"task_id": "44472ab8-783b-4054-b861-5bf14e462f60"
}
After a moment, we can observe the generated song result at https://webhook.site/03e60575-3d96-4132-b681-b713d78116e2, as shown in the image:

The content is as follows:
{
"success": true,
"task_id": "44472ab8-783b-4054-b861-5bf14e462f60",
"data": [
{
"id": "da4324e5-84b2-484b-b0e9-dd261381c594",
"title": "Winter Whispers",
"image_url": "https://cdn1.suno.ai/image_da4324e5-84b2-484b-b0e9-dd261381c594.png",
"lyric": "[Verse]\nSnow falling gently from the sky\nChildren giggling as they pass by\nFire crackling\nCozy and warm\nChristmas spirit begins to swarm\n[Verse 2]\nTwinkling lights\nA sight to behold\nStockings hung\nWaiting to be filled with gold\nGifts wrapped with love\nPiled high\nExcitement in the air\nYou can't deny\n[Chorus]\nWinter whispers in the wind\nJoy and love it brings\nLet's celebrate this season\nWith the ones we're missing",
"audio_url": "https://cdn1.suno.ai/da4324e5-84b2-484b-b0e9-dd261381c594.mp3",
"video_url": "https://cdn1.suno.ai/da4324e5-84b2-484b-b0e9-dd261381c594.mp4",
"created_at": "2024-05-11T07:33:05.430Z",
"model": "chirp-v3",
"prompt": "A song for Christmas",
"style": "pop"
},
{
"id": "b878a87b-a0db-4046-8ccd-ecd2fb3d4372",
"title": "Winter Whispers",
"image_url": "https://cdn1.suno.ai/image_b878a87b-a0db-4046-8ccd-ecd2fb3d4372.png",
"lyric": "[Verse]\nSnow falling gently from the sky\nChildren giggling as they pass by\nFire crackling\nCozy and warm\nChristmas spirit begins to swarm\n[Verse 2]\nTwinkling lights\nA sight to behold\nStockings hung\nWaiting to be filled with gold\nGifts wrapped with love\nPiled high\nExcitement in the air\nYou can't deny\n[Chorus]\nWinter whispers in the wind\nJoy and love it brings\nLet's celebrate this season\nWith the ones we're missing",
"audio_url": "https://cdn1.suno.ai/b878a87b-a0db-4046-8ccd-ecd2fb3d4372.mp3",
"video_url": "https://cdn1.suno.ai/b878a87b-a0db-4046-8ccd-ecd2fb3d4372.mp4",
"created_at": "2024-05-11T07:33:05.430Z",
"model": "chirp-v3",
"prompt": "A song for Christmas",
"style": "pop"
}
]
}
You can see that the result contains a task_id field, and the other fields are similar to the previous text. This field allows for task association.
Of course, we can also obtain results through streaming calls; we just need to set the value of accept in the request header to application/x-ndjson. Below is an example input as a demonstration:

During the waiting process, we can get the following output:
{"success":true,"task_id":"1af4b454-ce84-4512-a0a2-de3f8574ecd8","data":[{"id":"1f610752-f426-4fd5-89a8-ba2ad0370881","title":"Snowflakes and Mistletoe","lyric":"[Verse]\nLights are tangled on the tree again\nThe cat’s knocked over the wreath\nCookies burning in the oven too\nBut I’m still grinning through my teeth\n[Prechorus]\nSnow is falling like glitter in the sky\nI’ve got a feeling this year’s gonna fly\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe\n[Verse 2]\nGrandma’s singing a little off-key\nThe kids are laughing too loud\nThe dog’s stolen a turkey leg\nChaos is a Christmas crowd\n[Prechorus]\nBut the fire’s crackling\nWarm and bright\nAnd my heart’s a candle tonight\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe","audio_url":"","video_url":"","created_at":"2025-12-13T11:29:25.101Z","model":"chirp-v5","state":"pending","prompt":"A song for Christmas","style":"uplifting, orchestral with bells and acoustic guitar"},{"id":"d1a3109d-799b-401e-b032-4b501bcf26f3","title":"Snowflakes and Mistletoe","lyric":"[Verse]\nLights are tangled on the tree again\nThe cat’s knocked over the wreath\nCookies burning in the oven too\nBut I’m still grinning through my teeth\n[Prechorus]\nSnow is falling like glitter in the sky\nI’ve got a feeling this year’s gonna fly\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe\n[Verse 2]\nGrandma’s singing a little off-key\nThe kids are laughing too loud\nThe dog’s stolen a turkey leg\nChaos is a Christmas crowd\n[Prechorus]\nBut the fire’s crackling\nWarm and bright\nAnd my heart’s a candle tonight\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe","audio_url":"","video_url":"","created_at":"2025-12-13T11:29:25.101Z","model":"chirp-v5","state":"pending","prompt":"A song for Christmas","style":"uplifting, orchestral with bells and acoustic guitar"}]} {"success":true,"task_id":"1af4b454-ce84-4512-a0a2-de3f8574ecd8","data":[{"id":"1f610752-f426-4fd5-89a8-ba2ad0370881","title":"Snowflakes and Mistletoe","image_url":"https://cdn2.suno.ai/image_1f610752-f426-4fd5-89a8-ba2ad0370881.jpeg","image_large_url":"https://cdn2.suno.ai/image_large_1f610752-f426-4fd5-89a8-ba2ad0370881.jpeg","lyric":"[Verse]\nLights are tangled on the tree again\nThe cat’s knocked over the wreath\nCookies burning in the oven too\nBut I’m still grinning through my teeth\n[Prechorus]\nSnow is falling like glitter in the sky\nI’ve got a feeling this year’s gonna fly\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe\n[Verse 2]\nGrandma’s singing a little off-key\nThe kids are laughing too loud\nThe dog’s stolen a turkey leg\nChaos is a Christmas crowd\n[Prechorus]\nBut the fire’s crackling\nWarm and bright\nAnd my heart’s a candle tonight\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe","audio_url":"https://audiopipe.suno.ai/?item_id=1f610752-f426-4fd5-89a8-ba2ad0370881","video_url":"","created_at":"2025-12-13T11:29:25.101Z","model":"chirp-v5","state":"running","prompt":"A song for Christmas","style":"uplifting, orchestral with bells and acoustic guitar"},{"id":"d1a3109d-799b-401e-b032-4b501bcf26f3","title":"Snowflakes and Mistletoe","image_url":"https://cdn2.suno.ai/image_d1a3109d-799b-401e-b032-4b501bcf26f3.jpeg","image_large_url":"https://cdn2.suno.ai/image_large_d1a3109d-799b-401e-b032-4b501bcf26f3.jpeg","lyric":"[Verse]\nLights are tangled on the tree again\nThe cat’s knocked over the wreath\nCookies burning in the oven too\nBut I’m still grinning through my teeth\n[Prechorus]\nSnow is falling like glitter in the sky\nI’ve got a feeling this year’s gonna fly\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe\n[Verse 2]\nGrandma’s singing a little off-key\nThe kids are laughing too loud\nThe dog’s stolen a turkey leg\nChaos is a Christmas crowd\n[Prechorus]\nBut the fire’s crackling\nWarm and bright\nAnd my heart’s a candle tonight\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe","audio_url":"https://audiopipe.suno.ai/?item_id=d1a3109d-799b-401e-b032-4b501bcf26f3","video_url":"","created_at":"2025-12-13T11:29:25.101Z","model":"chirp-v5","state":"running","prompt":"A song for Christmas","style":"uplifting, orchestral with bells and acoustic guitar"}]}
{"success":true,"task_id":"1af4b454-ce84-4512-a0a2-de3f8574ecd8","data":[{"id":"1f610752-f426-4fd5-89a8-ba2ad0370881","title":"Snowflakes and Mistletoe","image_url":"https://cdn2.suno.ai/image_1f610752-f426-4fd5-89a8-ba2ad0370881.jpeg","image_large_url":"https://cdn2.suno.ai/image_large_1f610752-f426-4fd5-89a8-ba2ad0370881.jpeg","lyric":"[Verse]\nLights are tangled on the tree again\nThe cat’s knocked over the wreath\nCookies burning in the oven too\nBut I’m still grinning through my teeth\n[Prechorus]\nSnow is falling like glitter in the sky\nI’ve got a feeling this year’s gonna fly\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe\n[Verse 2]\nGrandma’s singing a little off-key\nThe kids are laughing too loud\nThe dog’s stolen a turkey leg\nChaos is a Christmas crowd\n[Prechorus]\nBut the fire’s crackling\nWarm and bright\nAnd my heart’s a candle tonight\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe","audio_url":"https://cdn1.suno.ai/1f610752-f426-4fd5-89a8-ba2ad0370881.mp3","video_url":"","created_at":"2025-12-13T11:29:25.101Z","model":"chirp-v5","state":"succeeded","prompt":"A song for Christmas","style":"uplifting, orchestral with bells and acoustic guitar","duration":129.92},{"id":"d1a3109d-799b-401e-b032-4b501bcf26f3","title":"Snowflakes and Mistletoe","image_url":"https://cdn2.suno.ai/image_d1a3109d-799b-401e-b032-4b501bcf26f3.jpeg","image_large_url":"https://cdn2.suno.ai/image_large_d1a3109d-799b-401e-b032-4b501bcf26f3.jpeg","lyric":"[Verse]\nLights are tangled on the tree again\nThe cat’s knocked over the wreath\nCookies burning in the oven too\nBut I’m still grinning through my teeth\n[Prechorus]\nSnow is falling like glitter in the sky\nI’ve got a feeling this year’s gonna fly\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe\n[Verse 2]\nGrandma’s singing a little off-key\nThe kids are laughing too loud\nThe dog’s stolen a turkey leg\nChaos is a Christmas crowd\n[Prechorus]\nBut the fire’s crackling\nWarm and bright\nAnd my heart’s a candle tonight\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe","audio_url":"https://audiopipe.suno.ai/?item_id=d1a3109d-799b-401e-b032-4b501bcf26f3","video_url":"","created_at":"2025-12-13T11:29:25.101Z","model":"chirp-v5","state":"running","prompt":"A song for Christmas","style":"uplifting, orchestral with bells and acoustic guitar"}]}
{"success":true,"task_id":"1af4b454-ce84-4512-a0a2-de3f8574ecd8","trace_id":"4440342a-41c4-4140-8bb1-3537a598ca2e","data":[{"id":"1f610752-f426-4fd5-89a8-ba2ad0370881","title":"Snowflakes and Mistletoe","image_url":"https://cdn2.suno.ai/image_1f610752-f426-4fd5-89a8-ba2ad0370881.jpeg","image_large_url":"https://cdn2.suno.ai/image_large_1f610752-f426-4fd5-89a8-ba2ad0370881.jpeg","lyric":"[Verse]\nLights are tangled on the tree again\nThe cat’s knocked over the wreath\nCookies burning in the oven too\nBut I’m still grinning through my teeth\n[Prechorus]\nSnow is falling like glitter in the sky\nI’ve got a feeling this year’s gonna fly\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe\n[Verse 2]\nGrandma’s singing a little off-key\nThe kids are laughing too loud\nThe dog’s stolen a turkey leg\nChaos is a Christmas crowd\n[Prechorus]\nBut the fire’s crackling\nWarm and bright\nAnd my heart’s a candle tonight\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe","audio_url":"https://cdn1.suno.ai/1f610752-f426-4fd5-89a8-ba2ad0370881.mp3","video_url":"","created_at":"2025-12-13T11:29:25.101Z","model":"chirp-v5","state":"succeeded","prompt":"A song for Christmas","style":"uplifting, orchestral with bells and acoustic guitar","duration":129.92},{"id":"d1a3109d-799b-401e-b032-4b501bcf26f3","title":"Snowflakes and Mistletoe","image_url":"https://cdn2.suno.ai/image_d1a3109d-799b-401e-b032-4b501bcf26f3.jpeg","image_large_url":"https://cdn2.suno.ai/image_large_d1a3109d-799b-401e-b032-4b501bcf26f3.jpeg","lyric":"[Verse]\nLights are tangled on the tree again\nThe cat’s knocked over the wreath\nCookies burning in the oven too\nBut I’m still grinning through my teeth\n[Prechorus]\nSnow is falling like glitter in the sky\nI’ve got a feeling this year’s gonna fly\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe\n[Verse 2]\nGrandma’s singing a little off-key\nThe kids are laughing too loud\nThe dog’s stolen a turkey leg\nChaos is a Christmas crowd\n[Prechorus]\nBut the fire’s crackling\nWarm and bright\nAnd my heart’s a candle tonight\n[Chorus]\nSnowflakes and mistletoe\nEverywhere I go\nI know\nLove is the gift\nThe glow\nSnowflakes and mistletoe","audio_url":"https://cdn1.suno.ai/d1a3109d-799b-401e-b032-4b501bcf26f3.mp3","video_url":"","created_at":"2025-12-13T11:29:25.101Z","model":"chirp-v5","state":"succeeded","prompt":"A song for Christmas","style":"uplifting, orchestral with bells and acoustic guitar","duration":127.16}]}
The result obtained is similar to the basic call, and the multiple results above achieve streaming calls.
## Error Handling
If an error occurs, you will receive an error message similar to the one below:
```json
{
"success": false,
"error": {
"code": "forbidden",
"message": "Song Description contained artist name: eminem"
},
"trace_id": "9bb7c2f4-3b7b-4965-b50a-f663874b1b6f",
"task_id": "9bb3a2a6-c438-436d-a9f3-fa466abc077c"
}
Below is a list of HTTP Status Codes, error.code, and error.message:
Note: Different upstream account limits and error messages may vary. Generally,
chirp-v3-5/chirp-v4has lowerstylerestrictions (200), whilechirp-v4-5and above usually support up to 1000; when hitting old upstreams, messages likeTags too long.orstyle must be less than or equal 120may appear as compatibility messages.
| Status Code | error.code |
error.message |
|---|---|---|
| 400 | bad_request |
The song id does not exist or has been taken offline. |
| 400 | bad_request |
Prompt too long. |
| 400 | bad_request |
Tags too long. |
| 400 | bad_request |
Uploaded audio matches existing work of art. |
| 400 | bad_request |
instrumental must be a boolean |
| 400 | bad_request |
Title too long. |
| 400 | bad_request |
Topic too long. |
| 400 | bad_request |
style must be less than or equal 120 |
| 400 | bad_request |
custom must be a boolean |
| 400 | bad_request |
audio_id is required when extend audio |
| 400 | bad_request |
continue_at is required when extend audio |
| 400 | bad_request |
continue_at must be a number greater than 0 |
| 400 | bad_request |
lyric is required when extend audio and instrumental is false |
| 400 | bad_request |
prompt is required when generate audio |
| 400 | bad_request |
lyric is required when generate custom audio |
| 403 | forbidden |
Prompt likely malformed |
| 403 | forbidden |
Prompt likely copyrighted |
| 403 | forbidden |
Prompt contained inappropriate material |
| 403 | forbidden |
Song Description flagged for moderation |
| 403 | forbidden |
Song Description contained artist name |
| 403 | forbidden |
Tags contained artist name |
| 403 | forbidden |
Lyrics contained copyrighted material |
| 403 | forbidden |
Song Description contained producer tag |
| 403 | forbidden |
Generic openAI error |
| 403 | forbidden |
Prompt flagged for moderation |
| 500 | api_error |
Unable to generate lyrics from song description |
| 500 | api_error |
job failed with unknown error |
| 500 | api_error |
no available worker in system |
| 500 | api_error |
service under maintenance, generation paused |
| 504 | timeout |
timeout while waiting for audio generation |
