Suno Use-Case Scenarios
- 2026.08.01 Supports copyright detection bypass via nice upload
- 2026.04.10 Suno has discontinued versions below
v3.5; currently versions below3.5are forcibly converted tov4.5-allwith unchanged pricing - 2026.03.27 Suno supports version
v5.5, mv ischirp-fenix - 2026.02.04 Suno supports version
suno-v4.5-all, mv ischirp-auk-turbo, same price assuno-3.5 - 2025.09.23 Suno supports version
v5, mv ischirp-crow - 2025.07.17 Suno supports version
v4.5+, mv ischirp-bluejay - 2025.05.03 Suno supports version
v4.5, mv ischirp-auk - Suno supports different scenarios through different request formats
- All submissions are
POSTtohttps://api.openai-hk.com/sunoapi/generate - All results are retrieved via
GEThttps://api.openai-hk.com/sunoapi/feed/clipsId1,clipsId2 - The following request bodies produce different effects
curl --request POST \
--url https://api.openai-hk.com/sunoapi/generate \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"gpt_description_prompt": "nostalgia"
}'curl --request POST \
--url https://api.openai-hk.com/sunoapi/generate \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"gpt_description_prompt": "nostalgia"
}'1. Inspiration Mode
{
"gpt_description_prompt": "nostalgia"
}{
"gpt_description_prompt": "nostalgia"
}2. Custom Lyrics & Title
{
"prompt": "[Verse]\nBusy days one after another\nFiles piling up with no end in sight\nDreams tucked away in a drawer\nCoffee cup already gone cold\n\n[Verse 2]\nClock in at eight every morning\nTired eyes with no spark left\nSmall talk with colleagues feels pointless\nJust waiting for time to speed by\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true\n\n[Verse 3]\nLunch break eating a bento box\nWatching sunshine pour through the window\nLife feels so far from the dream\nAll I see is the desk and chair\n\n[Bridge]\nThe boss's footsteps sound like thunder\nHeartbeat quickening with the rhythm\nA mountain of files on the desk\nThe sound of complaints slowly fades\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true",
"mv": "chirp-v3-5",
"title": "Work",
"tags": " edm"
}{
"prompt": "[Verse]\nBusy days one after another\nFiles piling up with no end in sight\nDreams tucked away in a drawer\nCoffee cup already gone cold\n\n[Verse 2]\nClock in at eight every morning\nTired eyes with no spark left\nSmall talk with colleagues feels pointless\nJust waiting for time to speed by\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true\n\n[Verse 3]\nLunch break eating a bento box\nWatching sunshine pour through the window\nLife feels so far from the dream\nAll I see is the desk and chair\n\n[Bridge]\nThe boss's footsteps sound like thunder\nHeartbeat quickening with the rhythm\nA mountain of files on the desk\nThe sound of complaints slowly fades\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true",
"mv": "chirp-v3-5",
"title": "Work",
"tags": " edm"
}3. Instrumental (Custom)
{
"prompt": "",
"tags": "heavy metal",
"mv": "chirp-v3-5",
"title": "Beijing",
"continue_clip_id": null,
"continue_at": null,
"infill_start_s": null,
"infill_end_s": null
}{
"prompt": "",
"tags": "heavy metal",
"mv": "chirp-v3-5",
"title": "Beijing",
"continue_clip_id": null,
"continue_at": null,
"infill_start_s": null,
"infill_end_s": null
}4. Instrumental (Inspiration Mode)
{
"gpt_description_prompt": "A national dance pop anthem about dancing all night long",
"mv": "chirp-v3-5",
"prompt": "",
"make_instrumental": true
}{
"gpt_description_prompt": "A national dance pop anthem about dancing all night long",
"mv": "chirp-v3-5",
"prompt": "",
"make_instrumental": true
}5. Extend Custom Audio
A. Upload Audio
First, use the upload API to get a clip_id with the value abcd-1234-1234-1234-abd
B. Extend Audio (with Version)
- mv can be
chirp-v4,chirp-auk, orchirp-bluejay - task must be
upload_extend
{
"prompt": "lyrics",
"tags": "",
"negative_tags": "",
"mv": "chirp-v4",
"title": "Title",
"continue_clip_id": "ca94a97d-d3f2-4a63-aeee-ba3a43384bcd",
"continue_at": 10,
"task": "upload_extend"
}{
"prompt": "lyrics",
"tags": "",
"negative_tags": "",
"mv": "chirp-v4",
"title": "Title",
"continue_clip_id": "ca94a97d-d3f2-4a63-aeee-ba3a43384bcd",
"continue_at": 10,
"task": "upload_extend"
}C. Extend Audio (Deprecated)
Note:
mvhere ischirp-v3-5-uploadorchirp-v4-upload
{
"prompt": "[Verse]\nBusy days one after another\nFiles piling up with no end in sight\nDreams tucked away in a drawer\nCoffee cup already gone cold\n\n[Verse 2]\nClock in at eight every morning\nTired eyes with no spark left\nSmall talk with colleagues feels pointless\nJust waiting for time to speed by\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true\n\n[Verse 3]\nLunch break eating a bento box\nWatching sunshine pour through the window\nLife feels so far from the dream\nAll I see is the desk and chair\n\n[Bridge]\nThe boss's footsteps sound like thunder\nHeartbeat quickening with the rhythm\nA mountain of files on the desk\nThe sound of complaints slowly fades\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true",
"tags": "heavy metal",
"mv": "chirp-v3-5-upload",
"title": "Work",
"continue_clip_id": "abcd-1234-1234-1234-abd",
"continue_at": 30.792
}{
"prompt": "[Verse]\nBusy days one after another\nFiles piling up with no end in sight\nDreams tucked away in a drawer\nCoffee cup already gone cold\n\n[Verse 2]\nClock in at eight every morning\nTired eyes with no spark left\nSmall talk with colleagues feels pointless\nJust waiting for time to speed by\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true\n\n[Verse 3]\nLunch break eating a bento box\nWatching sunshine pour through the window\nLife feels so far from the dream\nAll I see is the desk and chair\n\n[Bridge]\nThe boss's footsteps sound like thunder\nHeartbeat quickening with the rhythm\nA mountain of files on the desk\nThe sound of complaints slowly fades\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true",
"tags": "heavy metal",
"mv": "chirp-v3-5-upload",
"title": "Work",
"continue_clip_id": "abcd-1234-1234-1234-abd",
"continue_at": 30.792
}D. Concatenate Full Song
- Note:
is_infillmust befalse - After getting the replaced song ID, use the query API to check status
- Billing: cost of one song
curl --request POST \
--url https://api.openai-hk.com/sunoapi/generate/concat \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": false
}'curl --request POST \
--url https://api.openai-hk.com/sunoapi/generate/concat \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": false
}'Request body:
{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": false
}{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": false
}6. Extend Music and Get Full Song
Note: Extending official-generated music only; custom extension is not supported
A. Generate Music
Use scenarios 1, 2, or 3 to generate music and get one song's clip_id with value abcd-1234-1234-1234-abd
B. Extend Music
Returns 2 new clip_id values; one of them is newid-1234-1234-1234-one
{
"prompt": "[Verse]\nBusy days one after another\nFiles piling up with no end in sight\nDreams tucked away in a drawer\nCoffee cup already gone cold\n\n[Verse 2]\nClock in at eight every morning\nTired eyes with no spark left\nSmall talk with colleagues feels pointless\nJust waiting for time to speed by\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true\n\n[Verse 3]\nLunch break eating a bento box\nWatching sunshine pour through the window\nLife feels so far from the dream\nAll I see is the desk and chair\n\n[Bridge]\nThe boss's footsteps sound like thunder\nHeartbeat quickening with the rhythm\nA mountain of files on the desk\nThe sound of complaints slowly fades\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true",
"tags": "heavy metal",
"mv": "chirp-v3-5",
"title": "Work",
"continue_clip_id": "abcd-1234-1234-1234-abd",
"continue_at": 30,
"task": "extend"
}{
"prompt": "[Verse]\nBusy days one after another\nFiles piling up with no end in sight\nDreams tucked away in a drawer\nCoffee cup already gone cold\n\n[Verse 2]\nClock in at eight every morning\nTired eyes with no spark left\nSmall talk with colleagues feels pointless\nJust waiting for time to speed by\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true\n\n[Verse 3]\nLunch break eating a bento box\nWatching sunshine pour through the window\nLife feels so far from the dream\nAll I see is the desk and chair\n\n[Bridge]\nThe boss's footsteps sound like thunder\nHeartbeat quickening with the rhythm\nA mountain of files on the desk\nThe sound of complaints slowly fades\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true",
"tags": "heavy metal",
"mv": "chirp-v3-5",
"title": "Work",
"continue_clip_id": "abcd-1234-1234-1234-abd",
"continue_at": 30,
"task": "extend"
}C. Concatenate Full Song
- Note:
is_infillmust befalse - After getting the replaced song ID, use the query API to check status
- Billing: 100 credits (¥0.01)
curl --request POST \
--url https://api.openai-hk.com/sunoapi/generate/concat \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": false
}'curl --request POST \
--url https://api.openai-hk.com/sunoapi/generate/concat \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": false
}'Request body:
{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": false
}{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": false
}7. Cover Music: Remake / Style Modification
A. Generate Music
- Use scenarios 1, 2, or 3 to generate music and get one song's
clip_idwith valueabcd-1234-1234-1234-abd - You can also use the upload API to get a
clip_idfor covering custom audio
B. Cover Music
- Note:
mvmust bechirp-v4,chirp-auk, orchirp-bluejay taskmust becover- Cross-account usage is supported — no need to worry about account expiry
- If
cover_clip_idis an uploaded clip_id, cross-account is not supported mvno longer useschirp-v3-5-tauorchirp-v4-tau
{
"prompt": "[Verse]\nBusy days one after another\nFiles piling up with no end in sight\nDreams tucked away in a drawer\nCoffee cup already gone cold\n\n[Verse 2]\nClock in at eight every morning\nTired eyes with no spark left\nSmall talk with colleagues feels pointless\nJust waiting for time to speed by\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true\n\n[Verse 3]\nLunch break eating a bento box\nWatching sunshine pour through the window\nLife feels so far from the dream\nAll I see is the desk and chair\n\n[Bridge]\nThe boss's footsteps sound like thunder\nHeartbeat quickening with the rhythm\nA mountain of files on the desk\nThe sound of complaints slowly fades\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true",
"generation_type": "TEXT",
"tags": "rock, punk",
"negative_tags": "",
"mv": "chirp-auk",
"title": "Work (Cover)",
"continue_clip_id": null,
"continue_at": null,
"continued_aligned_prompt": null,
"infill_start_s": null,
"infill_end_s": null,
"task": "cover",
"cover_clip_id": "abcd-1234-1234-1234-abd"
}{
"prompt": "[Verse]\nBusy days one after another\nFiles piling up with no end in sight\nDreams tucked away in a drawer\nCoffee cup already gone cold\n\n[Verse 2]\nClock in at eight every morning\nTired eyes with no spark left\nSmall talk with colleagues feels pointless\nJust waiting for time to speed by\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true\n\n[Verse 3]\nLunch break eating a bento box\nWatching sunshine pour through the window\nLife feels so far from the dream\nAll I see is the desk and chair\n\n[Bridge]\nThe boss's footsteps sound like thunder\nHeartbeat quickening with the rhythm\nA mountain of files on the desk\nThe sound of complaints slowly fades\n\n[Chorus]\nWork work the boss keeps calling\nFinish up finish up then we're safe\nOvertime overtime just to earn a little\nDreams dreams when will they come true",
"generation_type": "TEXT",
"tags": "rock, punk",
"negative_tags": "",
"mv": "chirp-auk",
"title": "Work (Cover)",
"continue_clip_id": null,
"continue_at": null,
"continued_aligned_prompt": null,
"infill_start_s": null,
"infill_end_s": null,
"task": "cover",
"cover_clip_id": "abcd-1234-1234-1234-abd"
}8. Replace Section
A. Generate Music
Use scenarios 1, 2, or 3 to generate music and get one song's clip_id with value abcd-1234-1234-1234-abd
B. Replace Section
taskmust beinfill- Note:
mvmust bechirp-v4,chirp-auk, orchirp-bluejay - Reminder: the replacement lyrics should overlap with the original lyrics; ideally the timing should correspond
infill_start_sstart time,infill_end_send time,infill_dur_s=infill_end_s-infill_start_s- Cross-account usage is supported — no need to worry about account expiry
- Returns 2 new
clip_idvalues; choose one (newid-1234-1234-1234-one) for the next step mvno longer useschirp-v3-5-tauorchirp-v4-tau
{
"task": "infill",
"generation_type": "TEXT",
"title": "Scale of Longing-replace",
"tags": "Sorrow/Sad,Female Vocals,Mandarin",
"mv": "chirp-auk",
"prompt": "《Scale of Longing》 \n \nLyrics: A Guo Yi Luo\nThe rings of a tree hold the warmth of your running steps. \nEvery falling leaf calls out your name\nBut one gust of wind turns it to mist. \nTidying up your guitar in the corner \nThe case holds all the rainy seasons,\nSoaking the back of the rosewood. \nIf I wound my longing into new strings,\nI fear one touch would shatter them\nInto echoes of back then. \nTime is a rewound videotape,\nThe deeper the night, the clearer your laughter comes. \nIf tears could water a time tunnel,\nI'd cry my eyes into a sea. \nWhen every spring becomes about you,\nI learn to breathe through the wound. \nTo keep loving you,\nUsing up",
"metadata": {
"infill_lyrics": ". \nTidying up your guitar in the corner \nThe case holds all the rainy seasons,\nSoaking the back of the rosewood. \nIf I wound my longing into new strings,\nI fear one touch would shatter them\nInto echoes of back then"
},
"continue_clip_id": "8a858961-8831-4423-8ffb-2dec096aea0a",
"continued_aligned_prompt": "《Scale of Longing》 \n \nLyrics: A Guo Yi Luo\nThe rings of a tree hold the warmth of your running steps. \nEvery falling leaf calls out your name\nBut one gust of wind turns it to mist. \nTidying up your guitar in the corner \nThe case holds all the rainy seasons,\nSoaking the back of the rosewood. \nIf I wound my longing into new strings,\nI fear one touch would shatter them\nInto echoes of back then. \nTime is a rewound videotape,\nThe deeper the night, the clearer your laughter comes. \nIf tears could water a time tunnel,\nI'd cry my eyes into a sea. \nWhen every spring becomes about you,\nI learn to breathe through the wound. \nTo keep loving you,\nUsing up everything\nA heartbeat that no longer beats.\nTidying up your guitar in the corner \nThe case holds all the rainy seasons,\nSoaking the back of the rosewood. \nIf I wound my longing into new strings,\nI fear one touch would shatter them\nInto echoes of back then. \nWhen every spring becomes about you,\nI learn to breathe through the wound. \nTo keep loving you,\nUsing up everything\nA heartbeat that no longer beats.\n",
"infill_context_start_s": 3.48,
"infill_context_end_s": 109.96,
"infill_start_s": 33.48,
"infill_end_s": 79.96,
"infill_dur_s": 46.48
}{
"task": "infill",
"generation_type": "TEXT",
"title": "Scale of Longing-replace",
"tags": "Sorrow/Sad,Female Vocals,Mandarin",
"mv": "chirp-auk",
"prompt": "《Scale of Longing》 \n \nLyrics: A Guo Yi Luo\nThe rings of a tree hold the warmth of your running steps. \nEvery falling leaf calls out your name\nBut one gust of wind turns it to mist. \nTidying up your guitar in the corner \nThe case holds all the rainy seasons,\nSoaking the back of the rosewood. \nIf I wound my longing into new strings,\nI fear one touch would shatter them\nInto echoes of back then. \nTime is a rewound videotape,\nThe deeper the night, the clearer your laughter comes. \nIf tears could water a time tunnel,\nI'd cry my eyes into a sea. \nWhen every spring becomes about you,\nI learn to breathe through the wound. \nTo keep loving you,\nUsing up",
"metadata": {
"infill_lyrics": ". \nTidying up your guitar in the corner \nThe case holds all the rainy seasons,\nSoaking the back of the rosewood. \nIf I wound my longing into new strings,\nI fear one touch would shatter them\nInto echoes of back then"
},
"continue_clip_id": "8a858961-8831-4423-8ffb-2dec096aea0a",
"continued_aligned_prompt": "《Scale of Longing》 \n \nLyrics: A Guo Yi Luo\nThe rings of a tree hold the warmth of your running steps. \nEvery falling leaf calls out your name\nBut one gust of wind turns it to mist. \nTidying up your guitar in the corner \nThe case holds all the rainy seasons,\nSoaking the back of the rosewood. \nIf I wound my longing into new strings,\nI fear one touch would shatter them\nInto echoes of back then. \nTime is a rewound videotape,\nThe deeper the night, the clearer your laughter comes. \nIf tears could water a time tunnel,\nI'd cry my eyes into a sea. \nWhen every spring becomes about you,\nI learn to breathe through the wound. \nTo keep loving you,\nUsing up everything\nA heartbeat that no longer beats.\nTidying up your guitar in the corner \nThe case holds all the rainy seasons,\nSoaking the back of the rosewood. \nIf I wound my longing into new strings,\nI fear one touch would shatter them\nInto echoes of back then. \nWhen every spring becomes about you,\nI learn to breathe through the wound. \nTo keep loving you,\nUsing up everything\nA heartbeat that no longer beats.\n",
"infill_context_start_s": 3.48,
"infill_context_end_s": 109.96,
"infill_start_s": 33.48,
"infill_end_s": 79.96,
"infill_dur_s": 46.48
}C. Confirm and Concatenate Full Song
- Note:
is_infillmust betrue - After getting the replaced song ID, use the query API to check status
- Billing: 100 credits (¥0.01)
curl --request POST \
--url https://api.openai-hk.com/sunoapi/generate/concat \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": true
}'curl --request POST \
--url https://api.openai-hk.com/sunoapi/generate/concat \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": true
}'Request body:
{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": true
}{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": true
}8.V2 Replace Section: V2 Replace Segment
- Goal: Replace the lyric
just missing your presence by my sidein clip_id4cd8a76f-802a-42a5-8064-3ba9c6138072withjust missing yesterday without you by my side - Actually only replacing
by my side→yesterday
A. Get Timeline
get https://api.openai-hk.com/suno/act/timing/4cd8a76f-802a-42a5-8064-3ba9c6138072
- Timeline content parameters can be downloaded here: https://www.openai-hk.com/res/timing.json
- Search for the target word to find its
start_sfromaligned_lyrics[8].words[8]=60.6asinfill_context_start_s
{
"text": "底",
"start_s": 60.638297872340424,
"end_s": 60.71808510638298
}{
"text": "底",
"start_s": 60.638297872340424,
"end_s": 60.71808510638298
}- Search for the end context word to find
aligned_lyrics[13].words[9].end_s=90.6asinfill_context_end_s
{
"text": "回",
"start_s": 90.47872340425532,
"end_s": 90.55851063829788
}{
"text": "回",
"start_s": 90.47872340425532,
"end_s": 90.55851063829788
}- Search for the word to replace, find
aligned_lyrics[11]
{
"text": "just missing by my side,",
"words": [
......
{
"text": "by",
"start_s": 75.47872340425532, // use this as infill_start_s
"end_s": 75.55851063829788
},
{
"text": "side",
"start_s": 75.71808510638299,
"end_s": 75.79787234042553 // use this as infill_end_s
},
......
]
}{
"text": "just missing by my side,",
"words": [
......
{
"text": "by",
"start_s": 75.47872340425532, // use this as infill_start_s
"end_s": 75.55851063829788
},
{
"text": "side",
"start_s": 75.71808510638299,
"end_s": 75.79787234042553 // use this as infill_end_s
},
......
]
}B. Replace Segment
taskmust befixed_infill- Note:
mvonly supportschirp-carp - How to obtain
infill_context_start_s,infill_context_end_s,infill_start_s,infill_end_s— refer to A. Get Timeline infill_dur_s=infill_end_s-infill_start_s- Cross-account usage is supported — no need to worry about account expiry
- Returns 2 new
clip_idvalues; choose one (newid-1234-1234-1234-one) for the next step
{
"task": "fixed_infill",
"generation_type": "TEXT",
"title": "Replace 01:15-01:15 (06:25 AM Feb 04)",
"tags": "Love Song,Rock,Acoustic Guitar,Piano,Strings,R&B",
"negative_tags": "",
"mv": "chirp-carp",
"prompt": "底忘记。\n\n[Interlude]\n\n[Verse 2]\n街角的灯光依然那么熟悉,\n只是昨日再也没有你的气息,\n曾经的誓言如今变成了谜题,\n只剩下我在原地默默回",
"metadata": {
"create_mode": "custom",
"infill_lyrics": "昨日",
"is_remix": true,
"lyrics_updated": true
},
"continue_clip_id": "4cd8a76f-802a-42a5-8064-3ba9c6138072",
"continued_aligned_prompt": "底忘记。\n\n[Interlude]\n\n[Verse 2]\n街角的灯光依然那么熟悉,\n只是昨日再也没有你的气息,\n曾经的誓言如今变成了谜题,\n只剩下我在原地默默回",
"continue_at": null,
"infill_context_start_s": 60.6,
"infill_context_end_s": 90.6,
"infill_start_s": 75.44,
"infill_end_s": 75.8,
"infill_dur_s": 0.36
}{
"task": "fixed_infill",
"generation_type": "TEXT",
"title": "Replace 01:15-01:15 (06:25 AM Feb 04)",
"tags": "Love Song,Rock,Acoustic Guitar,Piano,Strings,R&B",
"negative_tags": "",
"mv": "chirp-carp",
"prompt": "底忘记。\n\n[Interlude]\n\n[Verse 2]\n街角的灯光依然那么熟悉,\n只是昨日再也没有你的气息,\n曾经的誓言如今变成了谜题,\n只剩下我在原地默默回",
"metadata": {
"create_mode": "custom",
"infill_lyrics": "昨日",
"is_remix": true,
"lyrics_updated": true
},
"continue_clip_id": "4cd8a76f-802a-42a5-8064-3ba9c6138072",
"continued_aligned_prompt": "底忘记。\n\n[Interlude]\n\n[Verse 2]\n街角的灯光依然那么熟悉,\n只是昨日再也没有你的气息,\n曾经的誓言如今变成了谜题,\n只剩下我在原地默默回",
"continue_at": null,
"infill_context_start_s": 60.6,
"infill_context_end_s": 90.6,
"infill_start_s": 75.44,
"infill_end_s": 75.8,
"infill_dur_s": 0.36
}C. Confirm and Concatenate Full Song
- Note:
is_infillmust betrue - After getting the replaced song ID, use the query API to check status
- Billing: 100 credits (¥0.01)
curl --request POST \
--url https://api.openai-hk.com/sunoapi/generate/concat \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": true
}'curl --request POST \
--url https://api.openai-hk.com/sunoapi/generate/concat \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": true
}'Request body:
{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": true
}{
"clip_id": "newid-1234-1234-1234-one",
"is_infill": true
}9. Persona: Singer Style
A. Generate Music
Use scenarios 1, 2, or 3 to generate music and get one song's clip_id with value 4cd8a76f-802a-42a5-8064-3ba9c6138072
B. Create Persona
clip_idmust exist in the system and cannot be an uploaded clip- Cross-account not supported — may be unavailable if account expires
- To prevent abuse, 100 credits will be deducted
Request body:
{
"root_clip_id": "54834687-5e79-4f08-8e14-cf188f15b598",
"name": "Persona Title",
"description": "Persona Description",
"clips": ["54834687-5e79-4f08-8e14-cf188f15b598"],
"is_public": true
}{
"root_clip_id": "54834687-5e79-4f08-8e14-cf188f15b598",
"name": "Persona Title",
"description": "Persona Description",
"clips": ["54834687-5e79-4f08-8e14-cf188f15b598"],
"is_public": true
}Response: the key id value fd213afd-ac1c-4822-9802-c1c0ea45e77b is the persona_id for the next step
{
"id": "fd213afd-ac1c-4822-9802-c1c0ea45e77b",
"name": "food",
"description": "123",
"root_clip_id": "54834687-5e79-4f08-8e14-cf188f15b598",
"clip": {
"id": "54834687-5e79-4f08-8e14-cf188f15b598",
"video_url": "https://cdn1.suno.ai/54834687-5e79-4f08-8e14-cf188f15b598.mp4",
"audio_url": "https://cdn1.suno.ai/54834687-5e79-4f08-8e14-cf188f15b598.mp3",
"image_url": "https://cdn2.suno.ai/image_54834687-5e79-4f08-8e14-cf188f15b598.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_54834687-5e79-4f08-8e14-cf188f15b598.jpeg",
"major_model_version": "v4",
"model_name": "chirp-v4",
"metadata": {
"tags": "electronic pop, tropical house fusion",
"prompt": "",
"type": "gen",
"duration": 190,
"refund_credits": false,
"stream": true
},
"is_liked": false,
"user_id": "21de6d0f-398c-467c-9957-8fa9065f3ca6",
"display_name": "SensoryRecorders4685",
"handle": "sensoryrecorders4685",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-23T10:34:30.144Z",
"status": "complete",
"title": "noks noko wane",
"play_count": 0,
"upvote_count": 0,
"is_public": false
},
"user_display_name": "SensoryRecorders4685",
"user_handle": "sensoryrecorders4685",
"user_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"persona_clips": [
{
"clip": {
"id": "54834687-5e79-4f08-8e14-cf188f15b598",
"video_url": "https://cdn1.suno.ai/54834687-5e79-4f08-8e14-cf188f15b598.mp4",
"audio_url": "https://cdn1.suno.ai/54834687-5e79-4f08-8e14-cf188f15b598.mp3",
"image_url": "https://cdn2.suno.ai/image_54834687-5e79-4f08-8e14-cf188f15b598.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_54834687-5e79-4f08-8e14-cf188f15b598.jpeg",
"major_model_version": "v4",
"model_name": "chirp-v4",
"metadata": {
"tags": "electronic pop, tropical house fusion",
"prompt": "",
"type": "gen",
"duration": 190,
"refund_credits": false,
"stream": true
},
"is_liked": false,
"user_id": "21de6d0f-398c-467c-9957-8fa9065f3ca6",
"display_name": "SensoryRecorders4685",
"handle": "sensoryrecorders4685",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-23T10:34:30.144Z",
"status": "complete",
"title": "noks noko wane",
"play_count": 0,
"upvote_count": 0,
"is_public": false
},
"id": 11288925
}
]
}{
"id": "fd213afd-ac1c-4822-9802-c1c0ea45e77b",
"name": "food",
"description": "123",
"root_clip_id": "54834687-5e79-4f08-8e14-cf188f15b598",
"clip": {
"id": "54834687-5e79-4f08-8e14-cf188f15b598",
"video_url": "https://cdn1.suno.ai/54834687-5e79-4f08-8e14-cf188f15b598.mp4",
"audio_url": "https://cdn1.suno.ai/54834687-5e79-4f08-8e14-cf188f15b598.mp3",
"image_url": "https://cdn2.suno.ai/image_54834687-5e79-4f08-8e14-cf188f15b598.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_54834687-5e79-4f08-8e14-cf188f15b598.jpeg",
"major_model_version": "v4",
"model_name": "chirp-v4",
"metadata": {
"tags": "electronic pop, tropical house fusion",
"prompt": "",
"type": "gen",
"duration": 190,
"refund_credits": false,
"stream": true
},
"is_liked": false,
"user_id": "21de6d0f-398c-467c-9957-8fa9065f3ca6",
"display_name": "SensoryRecorders4685",
"handle": "sensoryrecorders4685",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-23T10:34:30.144Z",
"status": "complete",
"title": "noks noko wane",
"play_count": 0,
"upvote_count": 0,
"is_public": false
},
"user_display_name": "SensoryRecorders4685",
"user_handle": "sensoryrecorders4685",
"user_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"persona_clips": [
{
"clip": {
"id": "54834687-5e79-4f08-8e14-cf188f15b598",
"video_url": "https://cdn1.suno.ai/54834687-5e79-4f08-8e14-cf188f15b598.mp4",
"audio_url": "https://cdn1.suno.ai/54834687-5e79-4f08-8e14-cf188f15b598.mp3",
"image_url": "https://cdn2.suno.ai/image_54834687-5e79-4f08-8e14-cf188f15b598.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_54834687-5e79-4f08-8e14-cf188f15b598.jpeg",
"major_model_version": "v4",
"model_name": "chirp-v4",
"metadata": {
"tags": "electronic pop, tropical house fusion",
"prompt": "",
"type": "gen",
"duration": 190,
"refund_credits": false,
"stream": true
},
"is_liked": false,
"user_id": "21de6d0f-398c-467c-9957-8fa9065f3ca6",
"display_name": "SensoryRecorders4685",
"handle": "sensoryrecorders4685",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-23T10:34:30.144Z",
"status": "complete",
"title": "noks noko wane",
"play_count": 0,
"upvote_count": 0,
"is_public": false
},
"id": 11288925
}
]
}C. Create Using persona_id
- Note:
mvmust bechirp-v4,chirp-auk, orchirp-bluejay taskmust beartist_consistencypersona_idis the value obtained from Step Bartist_clip_idis the clip_id from Step A- Cross-account supported
mvno longer useschirp-v3-5-tauorchirp-v4-tau
{
"prompt": "[Verse]\nFrom dawn to dusk you've been by my side so warm\nRain or shine I'm not afraid\nHolding hands we'll never part\n\n[Verse 2]\nWith you I'm never alone\nLike stars shining in the night\nNo road feels too long\nBecause you are my light\n\n[Chorus]\nDarling darling I love you\nYou're the only one in my world\nNo matter where we roam\nOur hearts will always follow\n\n[Verse 3]\nYou're my safe harbor\nEvery night my dreams are of you\nEven if the road ahead is hard\nWith you everything's beautiful\n\n[Chorus]\nDarling darling I love you\nYou're the only one in my world\nNo matter where we roam\nOur hearts will always follow\n\n[Bridge]\nEvery moment in this life\nWith you to share and feel\nAll tomorrows will be better\nBecause with you I'm invincible",
"generation_type": "TEXT",
"tags": "electronic, pop",
"negative_tags": "",
"mv": "chirp-v4",
"title": "Darling",
"task": "artist_consistency",
"persona_id": "0f6e8077-a7ba-4fc8-8f60-de02c66e56ce",
"artist_clip_id": "a5fa604c-18b8-4e7f-8d25-9412d4ba8163"
}{
"prompt": "[Verse]\nFrom dawn to dusk you've been by my side so warm\nRain or shine I'm not afraid\nHolding hands we'll never part\n\n[Verse 2]\nWith you I'm never alone\nLike stars shining in the night\nNo road feels too long\nBecause you are my light\n\n[Chorus]\nDarling darling I love you\nYou're the only one in my world\nNo matter where we roam\nOur hearts will always follow\n\n[Verse 3]\nYou're my safe harbor\nEvery night my dreams are of you\nEven if the road ahead is hard\nWith you everything's beautiful\n\n[Chorus]\nDarling darling I love you\nYou're the only one in my world\nNo matter where we roam\nOur hearts will always follow\n\n[Bridge]\nEvery moment in this life\nWith you to share and feel\nAll tomorrows will be better\nBecause with you I'm invincible",
"generation_type": "TEXT",
"tags": "electronic, pop",
"negative_tags": "",
"mv": "chirp-v4",
"title": "Darling",
"task": "artist_consistency",
"persona_id": "0f6e8077-a7ba-4fc8-8f60-de02c66e56ce",
"artist_clip_id": "a5fa604c-18b8-4e7f-8d25-9412d4ba8163"
}Response:
{
"id": "2d453a5f-c539-4fe0-9a66-24058c5dfb6a",
"clips": [
{
"id": "0e6937df-64d8-41f9-82c6-b6dadc4426a8",
"video_url": "",
"audio_url": "",
"major_model_version": "v4",
"model_name": "chirp-v4",
"metadata": {
"tags": "electronic, pop",
"prompt": "...(lyrics)...",
"type": "gen",
"stream": true,
"has_vocal": false,
"artist_clip_id": "a5fa604c-18b8-4e7f-8d25-9412d4ba8163",
"persona_id": "0f6e8077-a7ba-4fc8-8f60-de02c66e56ce",
"task": "artist_consistency"
},
"is_liked": false,
"user_id": "a3da04d5-0442-4bd3-b837-4c73ff600914",
"display_name": "TwinklingVenue1595",
"handle": "twinklingvenue1595",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-23T10:37:43.596Z",
"status": "submitted",
"title": "Darling",
"play_count": 0,
"upvote_count": 0,
"is_public": false
},
{
"id": "fff58de4-7ccc-4b95-937b-3b66ec07cc65",
"video_url": "",
"audio_url": "",
"major_model_version": "v4",
"model_name": "chirp-v4",
"metadata": {
"tags": "electronic, pop",
"prompt": "...(lyrics)...",
"type": "gen",
"stream": true,
"has_vocal": false,
"artist_clip_id": "a5fa604c-18b8-4e7f-8d25-9412d4ba8163",
"persona_id": "0f6e8077-a7ba-4fc8-8f60-de02c66e56ce",
"task": "artist_consistency"
},
"is_liked": false,
"user_id": "a3da04d5-0442-4bd3-b837-4c73ff600914",
"display_name": "TwinklingVenue1595",
"handle": "twinklingvenue1595",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-23T10:37:43.596Z",
"status": "submitted",
"title": "Darling",
"play_count": 0,
"upvote_count": 0,
"is_public": false
}
],
"metadata": {
"tags": "electronic, pop",
"prompt": "...(lyrics)...",
"type": "gen",
"stream": true,
"has_vocal": false,
"artist_clip_id": "a5fa604c-18b8-4e7f-8d25-9412d4ba8163",
"persona_id": "0f6e8077-a7ba-4fc8-8f60-de02c66e56ce",
"task": "artist_consistency"
},
"major_model_version": "v4",
"status": "complete",
"created_at": "2024-12-23T10:37:43.581Z",
"batch_size": 1
}{
"id": "2d453a5f-c539-4fe0-9a66-24058c5dfb6a",
"clips": [
{
"id": "0e6937df-64d8-41f9-82c6-b6dadc4426a8",
"video_url": "",
"audio_url": "",
"major_model_version": "v4",
"model_name": "chirp-v4",
"metadata": {
"tags": "electronic, pop",
"prompt": "...(lyrics)...",
"type": "gen",
"stream": true,
"has_vocal": false,
"artist_clip_id": "a5fa604c-18b8-4e7f-8d25-9412d4ba8163",
"persona_id": "0f6e8077-a7ba-4fc8-8f60-de02c66e56ce",
"task": "artist_consistency"
},
"is_liked": false,
"user_id": "a3da04d5-0442-4bd3-b837-4c73ff600914",
"display_name": "TwinklingVenue1595",
"handle": "twinklingvenue1595",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-23T10:37:43.596Z",
"status": "submitted",
"title": "Darling",
"play_count": 0,
"upvote_count": 0,
"is_public": false
},
{
"id": "fff58de4-7ccc-4b95-937b-3b66ec07cc65",
"video_url": "",
"audio_url": "",
"major_model_version": "v4",
"model_name": "chirp-v4",
"metadata": {
"tags": "electronic, pop",
"prompt": "...(lyrics)...",
"type": "gen",
"stream": true,
"has_vocal": false,
"artist_clip_id": "a5fa604c-18b8-4e7f-8d25-9412d4ba8163",
"persona_id": "0f6e8077-a7ba-4fc8-8f60-de02c66e56ce",
"task": "artist_consistency"
},
"is_liked": false,
"user_id": "a3da04d5-0442-4bd3-b837-4c73ff600914",
"display_name": "TwinklingVenue1595",
"handle": "twinklingvenue1595",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-23T10:37:43.596Z",
"status": "submitted",
"title": "Darling",
"play_count": 0,
"upvote_count": 0,
"is_public": false
}
],
"metadata": {
"tags": "electronic, pop",
"prompt": "...(lyrics)...",
"type": "gen",
"stream": true,
"has_vocal": false,
"artist_clip_id": "a5fa604c-18b8-4e7f-8d25-9412d4ba8163",
"persona_id": "0f6e8077-a7ba-4fc8-8f60-de02c66e56ce",
"task": "artist_consistency"
},
"major_model_version": "v4",
"status": "complete",
"created_at": "2024-12-23T10:37:43.581Z",
"batch_size": 1
}10. stems: Vocals/Instrumental Separation
- After separation: Vocals (vocals track)
- After separation: Instrumental (backing track / pure music)
A. Generate Music
Use scenarios 1, 2, or 3 to generate music and get one song's clip_id with value a624123d-22cc-4d4d-bf28-78d312f61597
B. Separate Vocals/Instrumental (Deprecated)
Official API deprecated, please use the new API below
get https://api.openai-hk.com/sunoapi/act/stems/a624123d-22cc-4d4d-bf28-78d312f61597
To prevent abuse,
100credits will be deductedResponse returns clip_1 and clip_2
Cross-account not supported; unavailable if account expires
B. Separate Vocals/Instrumental (New)
Request body:
- Note:
mvmust bechirp-auk taskmust begen_stemstem_taskmust betwostem_type_group_namemust beTwocontinue_clip_idis the clip_id from Step A- Cross-account supported
- Billing: cost of one generation
{
"task": "gen_stem",
"generation_type": "TEXT",
"title": "Safety String",
"mv": "chirp-auk",
"prompt": "",
"make_instrumental": true,
"continue_clip_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"continued_aligned_prompt": null,
"continue_at": null,
"stem_type_id": 91,
"stem_type_group_name": "Two",
"stem_task": "two"
}{
"task": "gen_stem",
"generation_type": "TEXT",
"title": "Safety String",
"mv": "chirp-auk",
"prompt": "",
"make_instrumental": true,
"continue_clip_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"continued_aligned_prompt": null,
"continue_at": null,
"stem_type_id": 91,
"stem_type_group_name": "Two",
"stem_task": "two"
}- Response:
{
"clips": [
{
"id": "5f3587e2-75fb-4c36-84b3-3ec113897a4c",
"video_url": "",
"audio_url": "",
"major_model_version": "",
"model_name": "",
"metadata": {
"tags": "Chinese",
"prompt": "...(lyrics)...",
"stem_from_id": "a624123d-22cc-4d4d-bf28-78d312f61597",
"type": "stem",
"duration": 217.24
},
"is_liked": false,
"user_id": "58387c47-dc80-466f-a7b1-a2eed61c24fb",
"display_name": "FluidXylophone2289",
"handle": "fluidxylophone2289",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-25T16:51:36.619Z",
"status": "queued",
"title": "Riding the Dream Dragon - Vocals",
"play_count": 0,
"upvote_count": 0,
"is_public": false
},
{
"id": "9c85d619-4cac-4561-8fa3-604c116fa1c5",
"video_url": "",
"audio_url": "",
"major_model_version": "",
"model_name": "",
"metadata": {
"tags": "Chinese",
"prompt": "",
"stem_from_id": "a624123d-22cc-4d4d-bf28-78d312f61597",
"type": "stem",
"duration": 217.24
},
"is_liked": false,
"user_id": "58387c47-dc80-466f-a7b1-a2eed61c24fb",
"display_name": "FluidXylophone2289",
"handle": "fluidxylophone2289",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-25T16:51:36.625Z",
"status": "queued",
"title": "Riding the Dream Dragon - Instrumental",
"play_count": 0,
"upvote_count": 0,
"is_public": false
}
]
}{
"clips": [
{
"id": "5f3587e2-75fb-4c36-84b3-3ec113897a4c",
"video_url": "",
"audio_url": "",
"major_model_version": "",
"model_name": "",
"metadata": {
"tags": "Chinese",
"prompt": "...(lyrics)...",
"stem_from_id": "a624123d-22cc-4d4d-bf28-78d312f61597",
"type": "stem",
"duration": 217.24
},
"is_liked": false,
"user_id": "58387c47-dc80-466f-a7b1-a2eed61c24fb",
"display_name": "FluidXylophone2289",
"handle": "fluidxylophone2289",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-25T16:51:36.619Z",
"status": "queued",
"title": "Riding the Dream Dragon - Vocals",
"play_count": 0,
"upvote_count": 0,
"is_public": false
},
{
"id": "9c85d619-4cac-4561-8fa3-604c116fa1c5",
"video_url": "",
"audio_url": "",
"major_model_version": "",
"model_name": "",
"metadata": {
"tags": "Chinese",
"prompt": "",
"stem_from_id": "a624123d-22cc-4d4d-bf28-78d312f61597",
"type": "stem",
"duration": 217.24
},
"is_liked": false,
"user_id": "58387c47-dc80-466f-a7b1-a2eed61c24fb",
"display_name": "FluidXylophone2289",
"handle": "fluidxylophone2289",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"is_trashed": false,
"created_at": "2024-12-25T16:51:36.625Z",
"status": "queued",
"title": "Riding the Dream Dragon - Instrumental",
"play_count": 0,
"upvote_count": 0,
"is_public": false
}
]
}C. Get Results
Response:
[
{
"audio_url": "https://cdn1.suno.ai/5f3587e2-75fb-4c36-84b3-3ec113897a4c.mp3",
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"created_at": "2024-12-25T16:51:36.619Z",
"display_name": "FluidXylophone2289",
"handle": "fluidxylophone2289",
"id": "5f3587e2-75fb-4c36-84b3-3ec113897a4c",
"image_large_url": "https://cdn2.suno.ai/image_large_5f3587e2-75fb-4c36-84b3-3ec113897a4c.jpeg",
"image_url": "https://cdn2.suno.ai/image_5f3587e2-75fb-4c36-84b3-3ec113897a4c.jpeg",
"is_handle_updated": false,
"is_liked": false,
"is_public": false,
"is_trashed": false,
"major_model_version": "",
"metadata": {
"duration": 217.24,
"prompt": "...(lyrics)...",
"stem_from_id": "a624123d-22cc-4d4d-bf28-78d312f61597",
"tags": "Chinese",
"type": "stem"
},
"model_name": "",
"play_count": 0,
"status": "complete",
"title": "Riding the Dream Dragon - Vocals",
"upvote_count": 0,
"video_url": "https://cdn1.suno.ai/5f3587e2-75fb-4c36-84b3-3ec113897a4c.mp4"
},
{
"audio_url": "https://cdn1.suno.ai/9c85d619-4cac-4561-8fa3-604c116fa1c5.mp3",
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"created_at": "2024-12-25T16:51:36.625Z",
"display_name": "FluidXylophone2289",
"handle": "fluidxylophone2289",
"id": "9c85d619-4cac-4561-8fa3-604c116fa1c5",
"image_large_url": "https://cdn2.suno.ai/image_large_9c85d619-4cac-4561-8fa3-604c116fa1c5.jpeg",
"image_url": "https://cdn2.suno.ai/image_9c85d619-4cac-4561-8fa3-604c116fa1c5.jpeg",
"is_handle_updated": false,
"is_liked": false,
"is_public": false,
"is_trashed": false,
"major_model_version": "",
"metadata": {
"duration": 217.24,
"prompt": "",
"stem_from_id": "a624123d-22cc-4d4d-bf28-78d312f61597",
"tags": "Chinese",
"type": "stem"
},
"model_name": "",
"play_count": 0,
"status": "complete",
"title": "Riding the Dream Dragon - Instrumental",
"upvote_count": 0,
"video_url": "https://cdn1.suno.ai/9c85d619-4cac-4561-8fa3-604c116fa1c5.mp4"
}
][
{
"audio_url": "https://cdn1.suno.ai/5f3587e2-75fb-4c36-84b3-3ec113897a4c.mp3",
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"created_at": "2024-12-25T16:51:36.619Z",
"display_name": "FluidXylophone2289",
"handle": "fluidxylophone2289",
"id": "5f3587e2-75fb-4c36-84b3-3ec113897a4c",
"image_large_url": "https://cdn2.suno.ai/image_large_5f3587e2-75fb-4c36-84b3-3ec113897a4c.jpeg",
"image_url": "https://cdn2.suno.ai/image_5f3587e2-75fb-4c36-84b3-3ec113897a4c.jpeg",
"is_handle_updated": false,
"is_liked": false,
"is_public": false,
"is_trashed": false,
"major_model_version": "",
"metadata": {
"duration": 217.24,
"prompt": "...(lyrics)...",
"stem_from_id": "a624123d-22cc-4d4d-bf28-78d312f61597",
"tags": "Chinese",
"type": "stem"
},
"model_name": "",
"play_count": 0,
"status": "complete",
"title": "Riding the Dream Dragon - Vocals",
"upvote_count": 0,
"video_url": "https://cdn1.suno.ai/5f3587e2-75fb-4c36-84b3-3ec113897a4c.mp4"
},
{
"audio_url": "https://cdn1.suno.ai/9c85d619-4cac-4561-8fa3-604c116fa1c5.mp3",
"avatar_image_url": "https://cdn1.suno.ai/defaultPink.webp",
"created_at": "2024-12-25T16:51:36.625Z",
"display_name": "FluidXylophone2289",
"handle": "fluidxylophone2289",
"id": "9c85d619-4cac-4561-8fa3-604c116fa1c5",
"image_large_url": "https://cdn2.suno.ai/image_large_9c85d619-4cac-4561-8fa3-604c116fa1c5.jpeg",
"image_url": "https://cdn2.suno.ai/image_9c85d619-4cac-4561-8fa3-604c116fa1c5.jpeg",
"is_handle_updated": false,
"is_liked": false,
"is_public": false,
"is_trashed": false,
"major_model_version": "",
"metadata": {
"duration": 217.24,
"prompt": "",
"stem_from_id": "a624123d-22cc-4d4d-bf28-78d312f61597",
"tags": "Chinese",
"type": "stem"
},
"model_name": "",
"play_count": 0,
"status": "complete",
"title": "Riding the Dream Dragon - Instrumental",
"upvote_count": 0,
"video_url": "https://cdn1.suno.ai/9c85d619-4cac-4561-8fa3-604c116fa1c5.mp4"
}
]11. Timing: Lyrics & Audio Timeline
A. Generate Music
Use scenarios 1, 2, or 3 to generate music and get one song's clip_id with value 54834687-5e79-4f08-8e14-cf188f15b598
B. Get Lyrics
- Cross-account supported
get https://api.openai-hk.com/sunoapi/act/timing/a624123d-22cc-4d4d-bf28-78d312f61597
Response:
{
"aligned_words": [
{
"word": "[Verse]\nWinter ",
"success": true,
"start_s": 8.38,
"end_s": 8.78,
"p_align": 0.982
},
{
"word": "winds ",
"success": true,
"start_s": 8.78,
"end_s": 9.54,
"p_align": 0.961
},
{
"word": "they ",
"success": true,
"start_s": 9.54,
"end_s": 9.93,
"p_align": 0.99
},
{
"word": "cut ",
"success": true,
"start_s": 9.93,
"end_s": 10.41,
"p_align": 0.998
},
{
"word": "so ",
"success": true,
"start_s": 10.41,
"end_s": 10.93,
"p_align": 0.996
},
{
"word": "deep\n",
"success": true,
"start_s": 10.93,
"end_s": 11.93,
"p_align": 0.997
},
....
],
"waveform_data": [
0.001, 0.00109, 0.04219, 0.03597, ....
],
"hoot_cer": 0.03556771545827633,
"is_streamed": false
}{
"aligned_words": [
{
"word": "[Verse]\nWinter ",
"success": true,
"start_s": 8.38,
"end_s": 8.78,
"p_align": 0.982
},
{
"word": "winds ",
"success": true,
"start_s": 8.78,
"end_s": 9.54,
"p_align": 0.961
},
{
"word": "they ",
"success": true,
"start_s": 9.54,
"end_s": 9.93,
"p_align": 0.99
},
{
"word": "cut ",
"success": true,
"start_s": 9.93,
"end_s": 10.41,
"p_align": 0.998
},
{
"word": "so ",
"success": true,
"start_s": 10.41,
"end_s": 10.93,
"p_align": 0.996
},
{
"word": "deep\n",
"success": true,
"start_s": 10.93,
"end_s": 11.93,
"p_align": 0.997
},
....
],
"waveform_data": [
0.001, 0.00109, 0.04219, 0.03597, ....
],
"hoot_cer": 0.03556771545827633,
"is_streamed": false
}12. WAV: Get WAV Format File
A. Generate Music
Use scenarios 1, 2, or 3 to generate music and get one song's clip_id with value a624123d-22cc-4d4d-bf28-78d312f61597
B. Get WAV File
get https://api.openai-hk.com/sunoapi/act/wav/a624123d-22cc-4d4d-bf28-78d312f61597
- If
wav_file_urlin the response isnull, try requesting again - To prevent abuse,
100credits will be deducted - Cross-account not supported; unavailable if account expires
- Response:
{
"wav_file_url": "https://cdn1.suno.ai/a624123d-22cc-4d4d-bf28-78d312f61597.wav"
}{
"wav_file_url": "https://cdn1.suno.ai/a624123d-22cc-4d4d-bf28-78d312f61597.wav"
}13. MP4: Generate MP4 MV Video
A. Generate Music
Use scenarios 1, 2, or 3 to generate music and get one song's clip_id with value a624123d-22cc-4d4d-bf28-78d312f61597
B. Get MP4 File
get https://api.openai-hk.com/sunoapi/act/mp4/a624123d-22cc-4d4d-bf28-78d312f61597
- The song must have status
completefor this to work - After execution, wait ~30 seconds before the URL becomes accessible
- To prevent abuse,
100credits will be deducted - Cross-account not supported; unavailable if account expires
- Response:
{
"mp4": "https://cdn1.suno.ai/a624123d-22cc-4d4d-bf28-78d312f61597.mp4"
}{
"mp4": "https://cdn1.suno.ai/a624123d-22cc-4d4d-bf28-78d312f61597.mp4"
}14. all-stems: Full Track Separation
A. Generate Music
Use scenarios 1, 2, or 3 to generate music and get one song's clip_id with value a624123d-22cc-4d4d-bf28-78d312f61597
B. Full Track Separation
- Note:
mvmust bechirp-auk taskmust begen_stemstem_taskmust betwelvestem_type_group_namemust beTwelvecontinue_clip_idis the clip_id from Step A- Cross-account supported
- Billing: 5× base price — cost of 5 requests / 10 songs
{
"task": "gen_stem",
"generation_type": "TEXT",
"title": "Safety String",
"mv": "chirp-auk",
"prompt": "",
"make_instrumental": true,
"continue_clip_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"continued_aligned_prompt": null,
"continue_at": null,
"stem_type_id": 91,
"stem_type_group_name": "Twelve",
"stem_task": "twelve"
}{
"task": "gen_stem",
"generation_type": "TEXT",
"title": "Safety String",
"mv": "chirp-auk",
"prompt": "",
"make_instrumental": true,
"continue_clip_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"continued_aligned_prompt": null,
"continue_at": null,
"stem_type_id": 91,
"stem_type_group_name": "Twelve",
"stem_task": "twelve"
}Returns 24 clip_ids
Query all 24 clip_ids at once
Response example:
{
"id": "b19ee87f-574d-42c7-9761-df6aafc0fd9c",
"clips": [
{
"id": "0e5be1db-4834-4890-acfb-2fea7fd24eb9",
"entity_type": "song_schema",
"video_url": "",
"audio_url": "",
"major_model_version": "",
"model_name": "chirp-stem",
"metadata": {
"prompt": "",
"history": [
{
"id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"type": "gen",
"source": "web",
"infill": false,
"stem_type_id": 91,
"stem_type_group_name": "Twelve",
"stem_task": "twelve",
"stem_from_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc"
}
],
"stem_from_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"stem_task": "twelve",
"stem_type_id": 91,
"stem_type_group_name": "Vocals",
"edited_clip_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"type": "gen",
"stream": true,
"infill": false,
"task": "gen_stem",
"can_remix": true,
"is_remix": false,
"priority": 10
},
"is_liked": false,
"user_id": "a8a4d117-d5aa-4a9f-ab5b-88cc2c2eb79d",
"display_name": "ugknurymt91r",
"handle": "ugknurymt91r",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/sAura20.jpg",
"is_trashed": false,
"flag_count": 0,
"created_at": "2025-06-06T11:22:30.753Z",
"status": "submitted",
"title": "Safety String (Vocals)",
"play_count": 0,
"upvote_count": 0,
"is_public": false,
"allow_comments": true
},
{
"more": "24 similar items in total"
}
],
"metadata": {
"prompt": "",
"history": [
{
"id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"type": "gen",
"source": "web",
"infill": false,
"stem_type_id": 91,
"stem_type_group_name": "Twelve",
"stem_task": "twelve",
"stem_from_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc"
}
],
"stem_from_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"stem_task": "twelve",
"stem_type_id": 91,
"stem_type_group_name": "Twelve",
"edited_clip_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"type": "gen",
"stream": true,
"infill": false,
"task": "gen_stem",
"can_remix": true,
"is_remix": false,
"priority": 10
},
"major_model_version": "",
"status": "complete",
"created_at": "2025-06-06T11:22:30.737Z",
"batch_size": 1
}{
"id": "b19ee87f-574d-42c7-9761-df6aafc0fd9c",
"clips": [
{
"id": "0e5be1db-4834-4890-acfb-2fea7fd24eb9",
"entity_type": "song_schema",
"video_url": "",
"audio_url": "",
"major_model_version": "",
"model_name": "chirp-stem",
"metadata": {
"prompt": "",
"history": [
{
"id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"type": "gen",
"source": "web",
"infill": false,
"stem_type_id": 91,
"stem_type_group_name": "Twelve",
"stem_task": "twelve",
"stem_from_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc"
}
],
"stem_from_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"stem_task": "twelve",
"stem_type_id": 91,
"stem_type_group_name": "Vocals",
"edited_clip_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"type": "gen",
"stream": true,
"infill": false,
"task": "gen_stem",
"can_remix": true,
"is_remix": false,
"priority": 10
},
"is_liked": false,
"user_id": "a8a4d117-d5aa-4a9f-ab5b-88cc2c2eb79d",
"display_name": "ugknurymt91r",
"handle": "ugknurymt91r",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/sAura20.jpg",
"is_trashed": false,
"flag_count": 0,
"created_at": "2025-06-06T11:22:30.753Z",
"status": "submitted",
"title": "Safety String (Vocals)",
"play_count": 0,
"upvote_count": 0,
"is_public": false,
"allow_comments": true
},
{
"more": "24 similar items in total"
}
],
"metadata": {
"prompt": "",
"history": [
{
"id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"type": "gen",
"source": "web",
"infill": false,
"stem_type_id": 91,
"stem_type_group_name": "Twelve",
"stem_task": "twelve",
"stem_from_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc"
}
],
"stem_from_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"stem_task": "twelve",
"stem_type_id": 91,
"stem_type_group_name": "Twelve",
"edited_clip_id": "4720ad51-6d31-417c-a3a7-346b0b99abbc",
"type": "gen",
"stream": true,
"infill": false,
"task": "gen_stem",
"can_remix": true,
"is_remix": false,
"priority": 10
},
"major_model_version": "",
"status": "complete",
"created_at": "2025-06-06T11:22:30.737Z",
"batch_size": 1
}C. Get Results
- Concatenate all 24 clip_ids into one request
15. Advanced Parameters
- In June 2025, Suno added 3 new advanced parameters
- Parameters:
weirdness_constraint,style_weight,audio_weight audio_weightonly appears duringcover,Add Instrumental, andAdd Vocals- All values range from 0 to 1
- In September 2025,
vocal_genderwas added: femalef, malem
A. Standard Generation
{
"prompt": "[Verse]\nI got a plate of dreams piled high\nA world of flavors I wanna try\nSpices dancing under the sky\nTaste buds soaring I won't deny\n\n[Chorus]\nCrunch and sizzle sweet and sour\nEvery bite holds a little power\nBite by bite I'm feeling bold\nLife's a buffet can't be controlled\n\n[Verse 2]\nFrom tacos wrapped so tight with love\nTo noodles swimming skies above\nPizza slices like a dove\nFlying straight to my tastebud glove\n\n[Bridge]\nOh the crunch of chips so loud\nPopcorn popping in a cloud\nChocolate melting makes me proud\nIn this feast I'm unbowed\n\n[Chorus]\nCrunch and sizzle sweet and sour\nEvery bite holds a little power\nBite by bite I'm feeling bold\nLife's a buffet can't be controlled\n\n[Verse 3]\nSaucy rivers on a plate\nFlavors whispering don't be late\nEvery meal's a twist of fate\nI'll devour till it's too great",
"generation_type": "TEXT",
"tags": "house, tight drums",
"negative_tags": "modern",
"mv": "chirp-auk",
"title": "Savor the Flavor",
"metadata": {
"create_mode": "custom",
"control_sliders": {
"style_weight": 0.4,
"weirdness_constraint": 0.7
},
"can_control_sliders": ["weirdness_constraint", "style_weight"],
"vocal_gender": "f"
}
}{
"prompt": "[Verse]\nI got a plate of dreams piled high\nA world of flavors I wanna try\nSpices dancing under the sky\nTaste buds soaring I won't deny\n\n[Chorus]\nCrunch and sizzle sweet and sour\nEvery bite holds a little power\nBite by bite I'm feeling bold\nLife's a buffet can't be controlled\n\n[Verse 2]\nFrom tacos wrapped so tight with love\nTo noodles swimming skies above\nPizza slices like a dove\nFlying straight to my tastebud glove\n\n[Bridge]\nOh the crunch of chips so loud\nPopcorn popping in a cloud\nChocolate melting makes me proud\nIn this feast I'm unbowed\n\n[Chorus]\nCrunch and sizzle sweet and sour\nEvery bite holds a little power\nBite by bite I'm feeling bold\nLife's a buffet can't be controlled\n\n[Verse 3]\nSaucy rivers on a plate\nFlavors whispering don't be late\nEvery meal's a twist of fate\nI'll devour till it's too great",
"generation_type": "TEXT",
"tags": "house, tight drums",
"negative_tags": "modern",
"mv": "chirp-auk",
"title": "Savor the Flavor",
"metadata": {
"create_mode": "custom",
"control_sliders": {
"style_weight": 0.4,
"weirdness_constraint": 0.7
},
"can_control_sliders": ["weirdness_constraint", "style_weight"],
"vocal_gender": "f"
}
}B. Cover Generation
- During a cover, there is an additional
audio_weightparameter
{
"prompt": "[Verse]\nNew Year's bell is ringing\nFireworks light up the night\nLaughter spreading everywhere\nGood fortune by your side\n\n[Chorus]\nHappy New Year joy and cheer\nRed lanterns glow along the street\nFamily reunion happiness blooms\nMay wishes come true and blessings meet\n\n[Verse 2]\nSpring breeze gently blowing\nBringing luck and flowers in bloom\nNew clothes new shoes new expectations\nDreams begin to unfold\n\n[Chorus]\nHappy New Year joy and cheer\nRed lanterns glow along the street\nFamily reunion happiness blooms\nMay wishes come true and blessings meet\n\n[Bridge]\nFirecracker sounds exploding\nWelcoming new opportunities\nEvery household filled with joy\nThe spirit of the new year spreading\n\n[Chorus]\nHappy New Year joy and cheer\nRed lanterns glow along the street\nFamily reunion happiness blooms\nMay wishes come true and blessings meet",
"generation_type": "TEXT",
"tags": "",
"negative_tags": "",
"mv": "chirp-auk",
"title": "Happy New Year (Remix)",
"task": "cover",
"cover_clip_id": "f31754fc-2c83-4fc1-8a07-70ae218dd0a6",
"metadata": {
"create_mode": "custom",
"control_sliders": {
"style_weight": 0.68,
"audio_weight": 0.48,
"weirdness_constraint": 0.37
},
"can_control_sliders": [
"weirdness_constraint",
"style_weight",
"audio_weight"
],
"is_remix": true
}
}{
"prompt": "[Verse]\nNew Year's bell is ringing\nFireworks light up the night\nLaughter spreading everywhere\nGood fortune by your side\n\n[Chorus]\nHappy New Year joy and cheer\nRed lanterns glow along the street\nFamily reunion happiness blooms\nMay wishes come true and blessings meet\n\n[Verse 2]\nSpring breeze gently blowing\nBringing luck and flowers in bloom\nNew clothes new shoes new expectations\nDreams begin to unfold\n\n[Chorus]\nHappy New Year joy and cheer\nRed lanterns glow along the street\nFamily reunion happiness blooms\nMay wishes come true and blessings meet\n\n[Bridge]\nFirecracker sounds exploding\nWelcoming new opportunities\nEvery household filled with joy\nThe spirit of the new year spreading\n\n[Chorus]\nHappy New Year joy and cheer\nRed lanterns glow along the street\nFamily reunion happiness blooms\nMay wishes come true and blessings meet",
"generation_type": "TEXT",
"tags": "",
"negative_tags": "",
"mv": "chirp-auk",
"title": "Happy New Year (Remix)",
"task": "cover",
"cover_clip_id": "f31754fc-2c83-4fc1-8a07-70ae218dd0a6",
"metadata": {
"create_mode": "custom",
"control_sliders": {
"style_weight": 0.68,
"audio_weight": 0.48,
"weirdness_constraint": 0.37
},
"can_control_sliders": [
"weirdness_constraint",
"style_weight",
"audio_weight"
],
"is_remix": true
}
}16. Add Instrumental
- Version must be
v4.5+or higher - Introduced by Suno in August 2025
- Upload an a cappella (vocals-only, no music) track, and let Suno add the instrumentation
taskmust beunderpaintingunderpainting_clip_idis theupload_clip_idunderpainting_end_smust be less than or equal to the upload'sduration- Billing: cost of one song generation
- Cross-account not allowed
A. Upload A Cappella Track
curl --request POST \
--url https://api.openai-hk.com/suno/uploads/audio-url \
--header 'Authorization: Bearer hk-your-key' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--data '{
"url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}'curl --request POST \
--url https://api.openai-hk.com/suno/uploads/audio-url \
--header 'Authorization: Bearer hk-your-key' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--data '{
"url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}'Returns clip_id as upload_clip_id:
{
"clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"code": "success",
"data": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"message": ""
}{
"clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"code": "success",
"data": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"message": ""
}B. Get Song Duration and Parameters
get http://api.openai-hk.com/suno/feed/9b1d2e8d-a365-4bfd-8a18-8989e159b29f
- Use the feed API to get
metadata.duration
C. Execute Add Instrumental
taskmust beunderpaintingunderpainting_clip_idis theupload_clip_idunderpainting_end_smust be less than or equal to the upload'sduration- It's best to leave the lyrics empty since this is for adding music
- Request body:
{
"mv": "chirp-bluejay",
"tags": "Pop rap, uplifting, magnetic male vocals, piano, synth, electric guitar, driving bass, clear structure",
"title": "Hi Instrumental",
"underpainting_clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"underpainting_start_s": 0,
"underpainting_end_s": 57.9,
"task": "underpainting",
"prompt": "",
"override_fields": ["prompt", "tags"]
}{
"mv": "chirp-bluejay",
"tags": "Pop rap, uplifting, magnetic male vocals, piano, synth, electric guitar, driving bass, clear structure",
"title": "Hi Instrumental",
"underpainting_clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"underpainting_start_s": 0,
"underpainting_end_s": 57.9,
"task": "underpainting",
"prompt": "",
"override_fields": ["prompt", "tags"]
}17. Add Vocals
- Version must be
v4.5+or higher - Introduced by Suno in August 2025
- Upload an instrumental track and let Suno write lyrics and add vocals
taskmust beoverpaintingoverpainting_clip_idis theupload_clip_idoverpainting_end_smust be less than or equal to the upload'sduration- Billing: cost of one song generation
- Cross-account not allowed
A. Upload Instrumental Track
curl --request POST \
--url https://api.openai-hk.com/suno/uploads/audio-url \
--header 'Authorization: Bearer hk-your-key' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--data '{
"url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}'curl --request POST \
--url https://api.openai-hk.com/suno/uploads/audio-url \
--header 'Authorization: Bearer hk-your-key' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--data '{
"url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}'Returns clip_id as upload_clip_id:
{
"clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"code": "success",
"data": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"message": ""
}{
"clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"code": "success",
"data": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"message": ""
}B. Get Song Duration and Parameters
get http://api.openai-hk.com/suno/feed/9b1d2e8d-a365-4bfd-8a18-8989e159b29f
- Use the feed API to get
metadata.duration - Also retrieve
metadata.tags(Tags)
C. Execute Add Vocals
taskmust beoverpaintingoverpainting_clip_idis theupload_clip_idoverpainting_end_smust be less than or equal to the upload'smetadata.durationtagsshould match the upload'smetadata.tags- Request body:
{
"mv": "chirp-bluejay",
"tags": "A smooth, soulful R&B track with a moderate tempo and a relaxed, laid-back feel. The instrumentation features a clean electric guitar playing arpeggiated chords, a prominent bass guitar providing a walking bass line, and a drum kit with a soft, brushed snare sound. The male lead vocal is smooth and melodic, with a baritone range and a slightly melancholic tone. The song is in a minor key, contributing to its introspective mood. Production elements include a subtle reverb on the vocals and guitar, creating a spacious and intimate atmosphere. The song structure follows a typical verse-chorus format with a clear melodic progression.",
"title": "Hi Vocal",
"overpainting_clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"overpainting_start_s": 0,
"overpainting_end_s": 57.9,
"task": "overpainting",
"prompt": "Write the lyrics yourself",
"override_fields": ["prompt", "tags"]
}{
"mv": "chirp-bluejay",
"tags": "A smooth, soulful R&B track with a moderate tempo and a relaxed, laid-back feel. The instrumentation features a clean electric guitar playing arpeggiated chords, a prominent bass guitar providing a walking bass line, and a drum kit with a soft, brushed snare sound. The male lead vocal is smooth and melodic, with a baritone range and a slightly melancholic tone. The song is in a minor key, contributing to its introspective mood. Production elements include a subtle reverb on the vocals and guitar, creating a spacious and intimate atmosphere. The song structure follows a typical verse-chorus format with a clear melodic progression.",
"title": "Hi Vocal",
"overpainting_clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"overpainting_start_s": 0,
"overpainting_end_s": 57.9,
"task": "overpainting",
"prompt": "Write the lyrics yourself",
"override_fields": ["prompt", "tags"]
}18. Get MIDI
A. Full-Track Separated clip_id
- Obtain a
clip_idfrom 14. all-stems: Full Track Separation with valuea624123d-22cc-4d4d-bf28-78d312f61597 - Note: regular music
clip_idcan also be used, but on the official site only full-track separated clips have this feature - Billing: 100 credits
- Cross-account not supported; unavailable if account expires
B. Get MIDI
get https://api.openai-hk.com/suno/act/midi/c5bffd3a-96ad-4e83-9fbe-4720a5b9a664
- While still processing:
{ "state": "running" }{ "state": "running" }- On completion:
{
"state": "complete",
"instruments": [
{
"name": "String Ensembles 1",
"notes": [
{
"pitch": 60,
"start": 1.1041666666666667,
"end": 1.9583333333333333,
"velocity": 0.7165354330708661
},
......
]
},
......
]
}{
"state": "complete",
"instruments": [
{
"name": "String Ensembles 1",
"notes": [
{
"pitch": 60,
"start": 1.1041666666666667,
"end": 1.9583333333333333,
"velocity": 0.7165354330708661
},
......
]
},
......
]
}19. Expand Style Tags
- Tags are the same as style
- If you don't know how to write a style, use this API
- Billing: 100 credits
curl --request POST \
--url https://api.openai-hk.com/suno/act/tags \
--header 'Authorization: Bearer hk-your-key' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'myuid: 123' \
--data '{"original_tags":"student"}'curl --request POST \
--url https://api.openai-hk.com/suno/act/tags \
--header 'Authorization: Bearer hk-your-key' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'myuid: 123' \
--data '{"original_tags":"student"}'original_tags: pass in a relevant prompt keywordResponse:
{
"upsampled_tags": "Laid-back indie pop driven by a clean guitar riff, tight bass, and crisp drums. Verses feature subtle synth textures and gentle background vocals. A catchy chorus lifts with layered harmonies and handclaps. Bridge introduces a bright Rhodes piano before a dynamic final chorus.",
"request_id": "507acd16-8b84-4e55-be2b-4329d82efb26"
}{
"upsampled_tags": "Laid-back indie pop driven by a clean guitar riff, tight bass, and crisp drums. Verses feature subtle synth textures and gentle background vocals. A catchy chorus lifts with layered harmonies and handclaps. Bridge introduces a bright Rhodes piano before a dynamic final chorus.",
"request_id": "507acd16-8b84-4e55-be2b-4329d82efb26"
}20. Remaster
model_name:chirp-carpfor v5,chirp-bassfor v4.5+clip_id: the ID to remastervariation_categoryis only supported on v5+, and has only 3 values:high,normal,subtleCross-account not allowed
Billing: cost of one generation
Request body:
{
"clip_id": "e8bd1ba8-63cd-45f9-b340-7d00f5cfd25b",
"model_name": "chirp-carp",
"variation_category": "high"
}{
"clip_id": "e8bd1ba8-63cd-45f9-b340-7d00f5cfd25b",
"model_name": "chirp-carp",
"variation_category": "high"
}21. Persona-v2-vox: Singer Style
A. Generate Music
Use scenarios 1, 2, or 3 to generate music and get one song's clip_id with value 7b5a87af-d567-4444-97c2-387ba5c816d5
B. Get Vox
- Cross-account not supported — may be unavailable if account expires
- To prevent abuse, 100 credits will be deducted
vocal_end_s-vocal_start_smust be less than 30post https://api.openai-hk.com/suno/act/vox/7b5a87af-d567-4444-97c2-387ba5c816d5
{
"vocal_start_s": 45,
"vocal_end_s": 74
}{
"vocal_start_s": 45,
"vocal_end_s": 74
}Response: the id field is vox_audio_id = e044ac0d-7eb1-4014-b134-3ff7656886be
{
"id": "e044ac0d-7eb1-4014-b134-3ff7656886be",
"source_clip_id": "7b5a87af-d567-4444-97c2-387ba5c816d5",
"status": "complete",
"vocal_audio_url": "https://cdn1.suno.ai/processed_e044ac0d-7eb1-4014-b134-3ff7656886be_vocals.m4a",
"vocal_end_s": 74,
"vocal_start_s": 45,
"wave_response": {
"waveform_aggregates": [
{
"data": [
[
-54,
60,
-146,
...
]
]
}
]
}
}{
"id": "e044ac0d-7eb1-4014-b134-3ff7656886be",
"source_clip_id": "7b5a87af-d567-4444-97c2-387ba5c816d5",
"status": "complete",
"vocal_audio_url": "https://cdn1.suno.ai/processed_e044ac0d-7eb1-4014-b134-3ff7656886be_vocals.m4a",
"vocal_end_s": 74,
"vocal_start_s": 45,
"wave_response": {
"waveform_aggregates": [
{
"data": [
[
-54,
60,
-146,
...
]
]
}
]
}
}C. Create Persona
root_clip_idmust exist in the system and cannot be an uploaded clip; obtained from Step A- Cross-account not supported — may be unavailable if account expires
- To prevent abuse, 100 credits will be deducted
vocal_end_s-vocal_start_smust be less than 30persona_typemust bevox
Request body:
{
"root_clip_id": "7b5a87af-d567-4444-97c2-387ba5c816d5",
"name": "food",
"description": "123",
"is_public": true,
"persona_type": "vox",
"vox_audio_id": "e044ac0d-7eb1-4014-b134-3ff7656886be",
"vocal_start_s": 66.3,
"vocal_end_s": 95.3,
"user_input_styles": "Style: Verse—Chinese Folk narrative + Chorus—explosive rock + Hook—catchy, repetitive loop. A breezy guitar riff kicks in with building drum intensity, blended with \"keyboard typing sounds + faint vocal samples,\" followed by electronic effects layering after 15 seconds. The intro cuts abruptly into the verse with a sharp, punchy \"Lao Xu!\" to instantly grab attention."
}{
"root_clip_id": "7b5a87af-d567-4444-97c2-387ba5c816d5",
"name": "food",
"description": "123",
"is_public": true,
"persona_type": "vox",
"vox_audio_id": "e044ac0d-7eb1-4014-b134-3ff7656886be",
"vocal_start_s": 66.3,
"vocal_end_s": 95.3,
"user_input_styles": "Style: Verse—Chinese Folk narrative + Chorus—explosive rock + Hook—catchy, repetitive loop. A breezy guitar riff kicks in with building drum intensity, blended with \"keyboard typing sounds + faint vocal samples,\" followed by electronic effects layering after 15 seconds. The intro cuts abruptly into the verse with a sharp, punchy \"Lao Xu!\" to instantly grab attention."
}Response: the key id value fd213afd-ac1c-4822-9802-c1c0ea45e77b is the persona_id for the next step
{
"id": "fd213afd-ac1c-4822-9802-c1c0ea45e77b",
"name": "food",
"description": "123",
"root_clip_id": "54834687-5e79-4f08-8e14-cf188f15b598",
"clip": {
"id": "54834687-5e79-4f08-8e14-cf188f15b598"
}
}{
"id": "fd213afd-ac1c-4822-9802-c1c0ea45e77b",
"name": "food",
"description": "123",
"root_clip_id": "54834687-5e79-4f08-8e14-cf188f15b598",
"clip": {
"id": "54834687-5e79-4f08-8e14-cf188f15b598"
}
}D. Create Using persona_id
taskmust bevox(previouslyartist_consistency)- Note:
mvonly supportschirp-crow(v5+) persona_idis obtained from Step Cartist_clip_idis the clip_id from Step A- Cross-account supported
- To use
chirp-v4-tau,chirp-auk, orchirp-bluejay,taskmust beartist_consistency
{
"prompt": "[Verse]\nThe noise finally steps aside,\nMoonlight quietly climbs the window frame.\nWeary soul, put down your disguise,\nHide in the soft world of dreams.\n[Chorus] (recommend soft breathy vocals, extremely gentle)\nGoodnight, starlight by the pillow,\nTake you drifting through the Milky Way.\nForget the panic of the daylight,\nSleep now, the night is long.",
"generation_type": "TEXT",
"tags": "Ethereal Lullaby, Acoustic Piano, Ambient, Healing, Slow Tempo",
"negative_tags": "",
"mv": "chirp-crow",
"title": "Goodnight",
"task": "vox",
"persona_id": "88cca736-7263-4794-8480-360c0123b6fc",
"artist_clip_id": "6c983654-7ee9-4e1f-b195-47259a5bed48"
}{
"prompt": "[Verse]\nThe noise finally steps aside,\nMoonlight quietly climbs the window frame.\nWeary soul, put down your disguise,\nHide in the soft world of dreams.\n[Chorus] (recommend soft breathy vocals, extremely gentle)\nGoodnight, starlight by the pillow,\nTake you drifting through the Milky Way.\nForget the panic of the daylight,\nSleep now, the night is long.",
"generation_type": "TEXT",
"tags": "Ethereal Lullaby, Acoustic Piano, Ambient, Healing, Slow Tempo",
"negative_tags": "",
"mv": "chirp-crow",
"title": "Goodnight",
"task": "vox",
"persona_id": "88cca736-7263-4794-8480-360c0123b6fc",
"artist_clip_id": "6c983654-7ee9-4e1f-b195-47259a5bed48"
}22. Mashup
A. Generate Music
Use scenarios 1, 2, or 3 to generate music and get two songs: clip_id_1 = 9f102969-0024-479e-b38f-c0c5db21383dclip_id_2 = 6aebb715-701c-433f-b976-a7ff5cf16255
B. Generate Mashup
taskmust bemashup_conditionmashup_clip_idsis the array['clip_id_1', 'clip_id_2']from Step Apromptis the lyrics; if you want to mix lyrics from both songs, refer to 23. Lyrics Mashup- Billing: base cost of one song generation
{
"task": "mashup_condition",
"generation_type": "TEXT",
"title": "Banban83 vs bluespawn x Orphan of Guangzhou (Mashup)",
"tags": "",
"negative_tags": "",
"mv": "chirp-crow",
"prompt": "You keep turning back inside the station\nI can't bring myself to leave outside\nI have an ominous feeling\nToday's farewell feels like a breakup\n \nYou disappear into the crowd\nLike a dream scattered by the wind\nGuangzhou South Station, crowds surging\nWho cares about the pain in my heart\n \nI'm like an orphan of Guangzhou\nI'm like a superfluous orphan\nI'm like a helpless orphan\nAlone again now\n \nSafe travels my loved one\nTake care my loved one\nSafe travels the one who left\nTake care the one gone far away",
"mashup_clip_ids": [
"9f102969-0024-479e-b38f-c0c5db21383d",
"6aebb715-701c-433f-b976-a7ff5cf16255"
]
}{
"task": "mashup_condition",
"generation_type": "TEXT",
"title": "Banban83 vs bluespawn x Orphan of Guangzhou (Mashup)",
"tags": "",
"negative_tags": "",
"mv": "chirp-crow",
"prompt": "You keep turning back inside the station\nI can't bring myself to leave outside\nI have an ominous feeling\nToday's farewell feels like a breakup\n \nYou disappear into the crowd\nLike a dream scattered by the wind\nGuangzhou South Station, crowds surging\nWho cares about the pain in my heart\n \nI'm like an orphan of Guangzhou\nI'm like a superfluous orphan\nI'm like a helpless orphan\nAlone again now\n \nSafe travels my loved one\nTake care my loved one\nSafe travels the one who left\nTake care the one gone far away",
"mashup_clip_ids": [
"9f102969-0024-479e-b38f-c0c5db21383d",
"6aebb715-701c-433f-b976-a7ff5cf16255"
]
}23. Lyrics Mashup: Lyrics Mashup
lyrics_a: lyrics set 1lyrics_b: lyrics set 2- Billing: 100 credits/request
{
"lyrics_a": "Sambuy come back bluespawn greenspawn are making you a spawn",
"lyrics_b": "You keep turning back inside the station\nI can't bring myself to leave outside\nI have an ominous feeling\nToday's farewell feels like a breakup\n \nYou disappear into the crowd\nLike a dream scattered by the wind\nGuangzhou South Station, crowds surging\nWho cares about the pain in my heart\n \nI'm like an orphan of Guangzhou\nI'm like a superfluous orphan\nI'm like a helpless orphan\nAlone again now\n \nSafe travels my loved one\nTake care my loved one\nSafe travels the one who left\nTake care the one gone far away"
}{
"lyrics_a": "Sambuy come back bluespawn greenspawn are making you a spawn",
"lyrics_b": "You keep turning back inside the station\nI can't bring myself to leave outside\nI have an ominous feeling\nToday's farewell feels like a breakup\n \nYou disappear into the crowd\nLike a dream scattered by the wind\nGuangzhou South Station, crowds surging\nWho cares about the pain in my heart\n \nI'm like an orphan of Guangzhou\nI'm like a superfluous orphan\nI'm like a helpless orphan\nAlone again now\n \nSafe travels my loved one\nTake care my loved one\nSafe travels the one who left\nTake care the one gone far away"
}Result:
{
"lyrics_request_id": "04edfa84-290e-4a08-bd35-73906079b26e",
"mashup_id": "1c250665-a7c9-4852-97d1-3d291ebb9565",
"response": {
"error_message": "",
"status": "complete",
"tags": [],
"text": "You keep turning back inside the station \nI can't bring myself to leave outside \nI have an ominous feeling \nToday's farewell feels like a breakup \n\nSambuy come back \nbluespawn greenspawn are making you a spawn \nSambuy come back \nbluespawn greenspawn are making you a spawn \n\nYou disappear into the crowd \nLike a dream scattered by the wind \nGuangzhou South Station, crowds surging \nWho cares about the pain in my heart \n\nSambuy come back \nbluespawn greenspawn \nare making you a spawn \n\nI'm like an orphan of Guangzhou \nI'm like a superfluous orphan \nI'm like a helpless orphan \nAlone again now \n\nSafe travels my loved one \nTake care my loved one \nSafe travels the one who left \nTake care the one gone far away \n\nSambuy come back \nbluespawn greenspawn are making you a spawn \nSambuy don't go \nbluespawn greenspawn are making you a spawn",
"title": "Lyrics Mashup"
}
}{
"lyrics_request_id": "04edfa84-290e-4a08-bd35-73906079b26e",
"mashup_id": "1c250665-a7c9-4852-97d1-3d291ebb9565",
"response": {
"error_message": "",
"status": "complete",
"tags": [],
"text": "You keep turning back inside the station \nI can't bring myself to leave outside \nI have an ominous feeling \nToday's farewell feels like a breakup \n\nSambuy come back \nbluespawn greenspawn are making you a spawn \nSambuy come back \nbluespawn greenspawn are making you a spawn \n\nYou disappear into the crowd \nLike a dream scattered by the wind \nGuangzhou South Station, crowds surging \nWho cares about the pain in my heart \n\nSambuy come back \nbluespawn greenspawn \nare making you a spawn \n\nI'm like an orphan of Guangzhou \nI'm like a superfluous orphan \nI'm like a helpless orphan \nAlone again now \n\nSafe travels my loved one \nTake care my loved one \nSafe travels the one who left \nTake care the one gone far away \n\nSambuy come back \nbluespawn greenspawn are making you a spawn \nSambuy don't go \nbluespawn greenspawn are making you a spawn",
"title": "Lyrics Mashup"
}
}24. Samples: Sample-Based Song Generation
A. Generate Music
- Use scenarios 1, 2, or 3 to generate music and get one song's
clip_idwith value0fa07665-6b8e-4a8b-8bd3-7e0cfcdada88 - Or obtain a
clip_idvia the upload API
B. Generate Samples
taskmust bechop_sample_conditionchop_sample_clip_idis theclip_idfrom Step Achop_sample_start_s: sample start timechop_sample_end_s: sample end time- Billing: base cost of one song generation
- Cross-account allowed
{
"task": "chop_sample_condition",
"generation_type": "TEXT",
"title": "Breaking My Own News",
"tags": "",
"negative_tags": "",
"mv": "chirp-crow",
"prompt": "[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)",
"chop_sample_clip_id": "0fa07665-6b8e-4a8b-8bd3-7e0cfcdada88",
"chop_sample_start_s": 59.88,
"chop_sample_end_s": 102.16
}{
"task": "chop_sample_condition",
"generation_type": "TEXT",
"title": "Breaking My Own News",
"tags": "",
"negative_tags": "",
"mv": "chirp-crow",
"prompt": "[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)",
"chop_sample_clip_id": "0fa07665-6b8e-4a8b-8bd3-7e0cfcdada88",
"chop_sample_start_s": 59.88,
"chop_sample_end_s": 102.16
}25. Sound: Sound Tasks
tasktype issoundmvcurrently only supportschirp-crow- Parameters are placed in
tags, e.g. loop, BPM 60 becomes tempo: 60, G# becomes key: G# - Billing: base cost of one song generation
{
"task": "sound",
"generation_type": "TEXT",
"title": "Ready To Drop Into Anything.",
"tags": "loop, key: G#, tempo: 60, effects, loops, and one-shots. Ready to drop into anything.",
"negative_tags": "",
"mv": "chirp-crow",
"prompt": "",
"make_instrumental": true,
"metadata": {
"create_mode": "custom"
}
}{
"task": "sound",
"generation_type": "TEXT",
"title": "Ready To Drop Into Anything.",
"tags": "loop, key: G#, tempo: 60, effects, loops, and one-shots. Ready to drop into anything.",
"negative_tags": "",
"mv": "chirp-crow",
"prompt": "",
"make_instrumental": true,
"metadata": {
"create_mode": "custom"
}
}26. Inspo: Inspiration Creation
tasktype isplaylist_conditionorvox_playlist_conditionplaylist_idisinspirationplaylist_clip_idsare reference songclip_idvalues, up to 4 songs can be selected- Cross-account not allowed,
clip_idvalues inplaylist_clip_idsmust be from the same account - To unify
playlist_clip_idsunder one account, use "specified clip_id" upload - When
taskisvox_playlist_condition,persona_idmust not be empty - Billing: base cost of one song generation
{
"task": "playlist_condition",
"generation_type": "TEXT",
"title": "Dad, Are You Listening?",
"tags": "deepstep, harmonizing vocals, improvisation",
"negative_tags": "",
"mv": "chirp-crow",
"prompt": "[Verse 1]\nYou missed my birthday\nSaid you got the days all wrong\nI laughed and said it's okay\nBut it stung all day long\nYou call me \"kiddo\"\nLike I'm still eight years old\nI'm standing in the doorway\nYou're already grabbing your coat\n\n[Chorus]\nDad\nAre you listening?\nOr just hearing me talk?\nI'm standing right beside you\nStill feel across the block\nI'd trade every story\nYou tell about what you did\nFor five quiet minutes\nWhere you ask me how I am\n\n[Verse 2]\nYou fix the hallway light\nAsk if my car's been tuned\nYou never touch the photos\nStacked in the spare room\nYou say you're proud of me\nLike it's something to get through\nI keep saving all my questions\nFor a softer version of you\n\n[Chorus]\nDad\nAre you listening?\nOr just hearing me talk?\nI'm standing right beside you\nStill feel across the block\nI'd trade every story\nYou tell about what you did\nFor five quiet minutes\nWhere you ask me how I am\n\n[Bridge]\nWhat was it like to be your age?\nWho broke your heart\nWho slammed your door?\nDid you ever feel this small\nIn your own kitchen floor? (yeah)\n\n[Chorus]\nDad\nAre you listening?\nI'm not asking you to change\nJust sit here at this table\nSay my name like it's my name\nI'd trade every silence\nEvery shrug and every laugh\nFor one honest moment\nWhere you let me love you back",
"make_instrumental": false,
"metadata": {
"create_mode": "custom"
},
"playlist_id": "inspiration",
"playlist_clip_ids": [
"150ff04a-496e-4425-9ad7-d878354129de",
"b09ed072-04c2-485f-a925-9f0cc9db4e26"
]
}{
"task": "playlist_condition",
"generation_type": "TEXT",
"title": "Dad, Are You Listening?",
"tags": "deepstep, harmonizing vocals, improvisation",
"negative_tags": "",
"mv": "chirp-crow",
"prompt": "[Verse 1]\nYou missed my birthday\nSaid you got the days all wrong\nI laughed and said it's okay\nBut it stung all day long\nYou call me \"kiddo\"\nLike I'm still eight years old\nI'm standing in the doorway\nYou're already grabbing your coat\n\n[Chorus]\nDad\nAre you listening?\nOr just hearing me talk?\nI'm standing right beside you\nStill feel across the block\nI'd trade every story\nYou tell about what you did\nFor five quiet minutes\nWhere you ask me how I am\n\n[Verse 2]\nYou fix the hallway light\nAsk if my car's been tuned\nYou never touch the photos\nStacked in the spare room\nYou say you're proud of me\nLike it's something to get through\nI keep saving all my questions\nFor a softer version of you\n\n[Chorus]\nDad\nAre you listening?\nOr just hearing me talk?\nI'm standing right beside you\nStill feel across the block\nI'd trade every story\nYou tell about what you did\nFor five quiet minutes\nWhere you ask me how I am\n\n[Bridge]\nWhat was it like to be your age?\nWho broke your heart\nWho slammed your door?\nDid you ever feel this small\nIn your own kitchen floor? (yeah)\n\n[Chorus]\nDad\nAre you listening?\nI'm not asking you to change\nJust sit here at this table\nSay my name like it's my name\nI'd trade every silence\nEvery shrug and every laugh\nFor one honest moment\nWhere you let me love you back",
"make_instrumental": false,
"metadata": {
"create_mode": "custom"
},
"playlist_id": "inspiration",
"playlist_clip_ids": [
"150ff04a-496e-4425-9ad7-d878354129de",
"b09ed072-04c2-485f-a925-9f0cc9db4e26"
]
}tasktype isvox_playlist_condition
{
"task": "vox_playlist_condition",
"generation_type": "TEXT",
"title": "Wind and Rain",
"tags": "dark orchestral, heavy dense percussion, suspenseful, intense, dynamic tempo, brass, strings, synths, D minor, 120 BPM, massive soundstage, no distortion",
"mv": "chirp-fenix",
"prompt": "[Verse 1]\nWater marks still on the windowsill\nYou left and I never wiped them dry\nI kept the umbrella by the door\nLike words taken back halfway\n\nThe tree on the corner keeps swaying\nLeaves answer for me first\nIf you're also on the road\nWould you look up at me?\n\n[Pre-Chorus]\nWind blows old letters open\nRain soaks the names\nI stand in place\nListening to thoughts drip one by one\n\n[Chorus]\nWind and rain, wind and rain\nBoth searching for you\nWind and rain, wind and rain\nTurning silence into memory\nIf you turn back and see me\nDon't hide in the past again\nWind and rain, wind and rain\nI'm still here",
"make_instrumental": false,
"metadata": {
"create_mode": "custom"
},
"persona_id": "eaa7f82b-c617-4f1f-a5ec-5ce241b8845a",
"playlist_clip_ids": [
"b5af4274-52f9-44c7-b1a7-0fad16da7649",
"bf6cb6a3-b71a-4680-8a1c-87361036b7b4"
]
}{
"task": "vox_playlist_condition",
"generation_type": "TEXT",
"title": "Wind and Rain",
"tags": "dark orchestral, heavy dense percussion, suspenseful, intense, dynamic tempo, brass, strings, synths, D minor, 120 BPM, massive soundstage, no distortion",
"mv": "chirp-fenix",
"prompt": "[Verse 1]\nWater marks still on the windowsill\nYou left and I never wiped them dry\nI kept the umbrella by the door\nLike words taken back halfway\n\nThe tree on the corner keeps swaying\nLeaves answer for me first\nIf you're also on the road\nWould you look up at me?\n\n[Pre-Chorus]\nWind blows old letters open\nRain soaks the names\nI stand in place\nListening to thoughts drip one by one\n\n[Chorus]\nWind and rain, wind and rain\nBoth searching for you\nWind and rain, wind and rain\nTurning silence into memory\nIf you turn back and see me\nDon't hide in the past again\nWind and rain, wind and rain\nI'm still here",
"make_instrumental": false,
"metadata": {
"create_mode": "custom"
},
"persona_id": "eaa7f82b-c617-4f1f-a5ec-5ce241b8845a",
"playlist_clip_ids": [
"b5af4274-52f9-44c7-b1a7-0fad16da7649",
"bf6cb6a3-b71a-4680-8a1c-87361036b7b4"
]
}27. Voice: Voice Cloning
- Voice cloning essentially creates a personal voice library (persona), which can be used to generate songs
- Persona only needs one audio file containing the user's voice, must have text or lyrics
- No secondary verification required
A. Generate Persona
- No secondary verification required
- Billing: 500 credits/request
singer_skill_leveloptions:AdvancedIntermediateBeginnerProfessionalurluser's recording, must read some text or sing, supports formatsmp3wav
{
"url": "http://cos.aitutu.cc/mp4/ru-user-voice.mp3",
"singer_skill_level": "Intermediate",
"name": "mytitle",
"vocal_end_s": 120,
"vocal_start_s": 0
}{
"url": "http://cos.aitutu.cc/mp4/ru-user-voice.mp3",
"singer_skill_level": "Intermediate",
"name": "mytitle",
"vocal_end_s": 120,
"vocal_start_s": 0
}- Returns
idaspersona_id
{
"id": "5d8772c3-f901-48b4-a966-96e360930351",
"name": "mytitle",
"description": "",
"image_s3_id": "https://cdn1.suno.ai/d41a1c49.jpeg",
"is_suno_persona": false,
"is_trashed": false,
"is_hidden": false,
"is_owned": true,
"is_public": false,
"is_public_approved": false,
"is_loved": false,
"upvote_count": 0,
"clip_count": 0,
"is_following": false,
"follower_count": 0,
"persona_type": "vox",
"source": "recording",
"user_input_styles": "pop",
"vocal_start_s": 0,
"vocal_end_s": 120,
"vocal_clip_id": "60c14c78-3aec-436e-b0bf-c8007c2653e9"
}{
"id": "5d8772c3-f901-48b4-a966-96e360930351",
"name": "mytitle",
"description": "",
"image_s3_id": "https://cdn1.suno.ai/d41a1c49.jpeg",
"is_suno_persona": false,
"is_trashed": false,
"is_hidden": false,
"is_owned": true,
"is_public": false,
"is_public_approved": false,
"is_loved": false,
"upvote_count": 0,
"clip_count": 0,
"is_following": false,
"follower_count": 0,
"persona_type": "vox",
"source": "recording",
"user_input_styles": "pop",
"vocal_start_s": 0,
"vocal_end_s": 120,
"vocal_clip_id": "60c14c78-3aec-436e-b0bf-c8007c2653e9"
}B. Use persona_id to Generate Music
persona_idobtained from Step A- Cross-account not allowed
{
"task": "vox",
"generation_type": "TEXT",
"title": "New Year",
"tags": "",
"negative_tags": "",
"mv": "chirp-fenix",
"prompt": "[Verse 1]\nRed paper on the old door frame\nSteam rising white from the pot\nMessages pouring into my phone\n'Coming back?' just like before, so eager\n\n[Chorus]\nHappy New Year joy all around\nRed lanterns hanging bright downtown\nFamily reunion happiness blooms\nWishes coming true blessings abound\nHappy New Year\n\n[Verse 2]\nSpring breeze gently blowing in\nBringing lucky flowers to bloom\nNew clothes new shoes new hopes\nDreams unfold from this room",
"make_instrumental": false,
"metadata": {
"create_mode": "custom"
},
"persona_id": "5d8772c3-f901-48b4-a966-96e360930351"
}{
"task": "vox",
"generation_type": "TEXT",
"title": "New Year",
"tags": "",
"negative_tags": "",
"mv": "chirp-fenix",
"prompt": "[Verse 1]\nRed paper on the old door frame\nSteam rising white from the pot\nMessages pouring into my phone\n'Coming back?' just like before, so eager\n\n[Chorus]\nHappy New Year joy all around\nRed lanterns hanging bright downtown\nFamily reunion happiness blooms\nWishes coming true blessings abound\nHappy New Year\n\n[Verse 2]\nSpring breeze gently blowing in\nBringing lucky flowers to bloom\nNew clothes new shoes new hopes\nDreams unfold from this room",
"make_instrumental": false,
"metadata": {
"create_mode": "custom"
},
"persona_id": "5d8772c3-f901-48b4-a966-96e360930351"
}27. Voice: Voice Cloning - Requires Secondary Verification
- Voice cloning essentially creates a personal voice library (persona), which can be used to generate songs
- Persona requires 2 audio files: one with user's voice, one verification voice
- Verification: read a passage of text to register your voice
A. Upload Song
{
"url": "http://cos.aitutu.cc/mp4/c4818ce3-37d6-4b45-8e01-58b750e5fe57.mp3",
"vocal_end_s": 23.24,
"vocal_start_s": 0
}{
"url": "http://cos.aitutu.cc/mp4/c4818ce3-37d6-4b45-8e01-58b750e5fe57.mp3",
"vocal_end_s": 23.24,
"vocal_start_s": 0
}- Returns:
{
"id": "9e196fa1-20f3-43c1-8066-06a2a6b6bea9",
"status": "submitted",
"voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768"
}{
"id": "9e196fa1-20f3-43c1-8066-06a2a6b6bea9",
"status": "submitted",
"voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768"
}- The returned
idisvox_audio_idfor the next step - Billing: 100 credits/request
B. Get Sample Sentence
languageoptions:zhenesfrptdejakohiruvoice_recording_idfrom Step A return- Cross-account not allowed
- Billing: 100 credits/request
curl --request POST \
--url https://api.openai-hk.com/suno/act/phrase \
--header 'Authorization: Bearer sk-youkey' \
--header 'Content-Type: application/json' \
--data '{
"language":"zh","voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768"
}
'curl --request POST \
--url https://api.openai-hk.com/suno/act/phrase \
--header 'Authorization: Bearer sk-youkey' \
--header 'Content-Type: application/json' \
--data '{
"language":"zh","voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768"
}
'- Body:
{
"language": "zh",
"voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768"
}{
"language": "zh",
"voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768"
}- Returns
phrase_idsentence ID for next step (can only be used once)
{
"phrase_id": "45d639aa-ad8a-41cd-a356-f81207491d3a",
"phrase_text": "轻快的歌声在空气中自由飘扬"
}{
"phrase_id": "45d639aa-ad8a-41cd-a356-f81207491d3a",
"phrase_text": "轻快的歌声在空气中自由飘扬"
}C. Voice Verification
urluser's recording, ask user to record the text fromphrase_textand upload as url, supports formatsmp3wavvoice_recording_idfrom Step A returnphrase_idfrom Step B return- Cross-account not allowed
- Note: this request can only be used once; if it fails, you need to get a new
phrase - Billing: 100 credits/request
{
"url": "https://cdn1.suno.ai/28fc2b84-07d3-45d7-85f3-3db6684801aa.mp3",
"phrase_id": "45d639aa-ad8a-41cd-a356-f81207491d3a",
"voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768"
}{
"url": "https://cdn1.suno.ai/28fc2b84-07d3-45d7-85f3-3db6684801aa.mp3",
"phrase_id": "45d639aa-ad8a-41cd-a356-f81207491d3a",
"voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768"
}- Returns
idasverification_id
{
"id": "979282b1-8968-46bc-b599-ea14946be48e",
"status": "approved",
"voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768",
"verification_recording_id": "286df4b3-c10d-42ab-b757-f6381ae34853",
"verification_prompt_text": "轻快的歌声在空气中自由飘扬",
"rejection_reason": "",
"created_at": "2026-03-29T12:51:51.030983Z",
"updated_at": "2026-03-29T12:51:52.016067Z"
}{
"id": "979282b1-8968-46bc-b599-ea14946be48e",
"status": "approved",
"voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768",
"verification_recording_id": "286df4b3-c10d-42ab-b757-f6381ae34853",
"verification_prompt_text": "轻快的歌声在空气中自由飘扬",
"rejection_reason": "",
"created_at": "2026-03-29T12:51:51.030983Z",
"updated_at": "2026-03-29T12:51:52.016067Z"
}D. Create Persona
vox_audio_idfrom Step A returnvoice_recording_idfrom Step A returnverification_idfrom Step C returnsinger_skill_leveloptions:AdvancedIntermediateBeginnerProfessionalimage_s3_idmust be base64 format of the image- Note: regardless of
is_publicbeingtrueorfalse, it will automatically be set tofalse is_publicbeingfalsemeans the created persona_id cannot be used cross-account- Cross-account not allowed
- Billing: 100 credits/request
{
"name": "mytitle",
"description": "god",
"image_s3_id": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/ base64 image....",
"is_public": true,
"persona_type": "vox",
"vocal_start_s": 0,
"vocal_end_s": 23.24,
"user_input_styles": "pop",
"source": "random_song",
"singer_skill_level": "Intermediate",
"is_voice_recording": true,
"vox_audio_id": "9e196fa1-20f3-43c1-8066-06a2a6b6bea9",
"voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768",
"verification_id": "979282b1-8968-46bc-b599-ea14946be48e"
}{
"name": "mytitle",
"description": "god",
"image_s3_id": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/ base64 image....",
"is_public": true,
"persona_type": "vox",
"vocal_start_s": 0,
"vocal_end_s": 23.24,
"user_input_styles": "pop",
"source": "random_song",
"singer_skill_level": "Intermediate",
"is_voice_recording": true,
"vox_audio_id": "9e196fa1-20f3-43c1-8066-06a2a6b6bea9",
"voice_recording_id": "575023b1-b071-4dbd-9f0d-176665c60768",
"verification_id": "979282b1-8968-46bc-b599-ea14946be48e"
}- Returns
idaspersona_id
{
"id": "dde0be60-5280-4bd2-89a0-4020ddd3db52",
"name": "mytitle",
"description": "god",
"image_s3_id": "https://cdn1.suno.ai/d81b5898.jpeg",
"is_suno_persona": false,
"is_trashed": false,
"is_hidden": false,
"is_owned": true,
"is_public": false,
"is_public_approved": false,
"is_loved": false,
"upvote_count": 0,
"clip_count": 0,
"is_following": false,
"follower_count": 0,
"persona_type": "vox",
"source": "recording",
"user_input_styles": "pop",
"vocal_start_s": 0,
"vocal_end_s": 23.24,
"vocal_clip_id": "9e196fa1-20f3-43c1-8066-06a2a6b6bea9"
}{
"id": "dde0be60-5280-4bd2-89a0-4020ddd3db52",
"name": "mytitle",
"description": "god",
"image_s3_id": "https://cdn1.suno.ai/d81b5898.jpeg",
"is_suno_persona": false,
"is_trashed": false,
"is_hidden": false,
"is_owned": true,
"is_public": false,
"is_public_approved": false,
"is_loved": false,
"upvote_count": 0,
"clip_count": 0,
"is_following": false,
"follower_count": 0,
"persona_type": "vox",
"source": "recording",
"user_input_styles": "pop",
"vocal_start_s": 0,
"vocal_end_s": 23.24,
"vocal_clip_id": "9e196fa1-20f3-43c1-8066-06a2a6b6bea9"
}E. Use persona_id to Generate Music
persona_idobtained from Step D- Cross-account not allowed
{
"task": "vox",
"generation_type": "TEXT",
"title": "New Year",
"tags": "",
"negative_tags": "",
"mv": "chirp-fenix",
"prompt": "[Verse 1]\nRed paper on the old door frame\nSteam rising white from the pot\nMessages pouring into my phone\n'Coming back?' just like before, so eager",
"make_instrumental": false,
"metadata": {
"create_mode": "custom"
},
"persona_id": "dde0be60-5280-4bd2-89a0-4020ddd3db52"
}{
"task": "vox",
"generation_type": "TEXT",
"title": "New Year",
"tags": "",
"negative_tags": "",
"mv": "chirp-fenix",
"prompt": "[Verse 1]\nRed paper on the old door frame\nSteam rising white from the pot\nMessages pouring into my phone\n'Coming back?' just like before, so eager",
"make_instrumental": false,
"metadata": {
"create_mode": "custom"
},
"persona_id": "dde0be60-5280-4bd2-89a0-4020ddd3db52"
}28. Custom-Model: Custom Model
- 2026.03.28 Suno introduced
custom-model - Upload at least 6 of your own songs to build a custom model
- Limit: one account can only build 3 models
A. Upload Music
- Body:
{
"url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}{
"url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}First, get clip_id value
7173c086-844d-4b9e-9cee-e771f7ded3ebvia upload APIStarting from the second upload, need to include clip_id to unify under one account
Body for second upload onwards:
{
"url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3",
"clip_id": "7173c086-844d-4b9e-9cee-e771f7ded3eb"
}{
"url": "http://cdnimg.exbapp.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3",
"clip_id": "7173c086-844d-4b9e-9cee-e771f7ded3eb"
}- Upload at least 6 songs
B. Create Custom-Model
clip_idsare uploaded songclip_idvalues, must be under the same account, at least 6 uploads, optimally 24- Billing: 10× song generation cost
- Body:
{
"clip_ids": [
"7173c086-844d-4b9e-9cee-e771f7ded3eb",
"c87451ec-8e09-4358-b93b-99a0f59374b3",
"9c58ae41-4364-4995-827c-8033109abb5d",
"92022750-af59-44e1-a559-74d6f2503f5e",
"06215aa7-7725-4741-91d2-cc316e2454fe",
"f7a1e392-e659-4376-8b24-f267ba4f6e30"
],
"name": "Your Model Name"
}{
"clip_ids": [
"7173c086-844d-4b9e-9cee-e771f7ded3eb",
"c87451ec-8e09-4358-b93b-99a0f59374b3",
"9c58ae41-4364-4995-827c-8033109abb5d",
"92022750-af59-44e1-a559-74d6f2503f5e",
"06215aa7-7725-4741-91d2-cc316e2454fe",
"f7a1e392-e659-4376-8b24-f267ba4f6e30"
],
"name": "Your Model Name"
}- Returns
idasmodel_id
{
"id": "3f788ae1-4646-4d20-aa76-c33035bf12e6",
"status": "pending"
}{
"id": "3f788ae1-4646-4d20-aa76-c33035bf12e6",
"status": "pending"
}C. Query Custom-Model Task
get https://api.openai-hk.com/suno/custom-model/feed/{model_id}
model_idis the returnedidfrom above- Returns on success:
{
"id": "3f788ae1-4646-4d20-aa76-c33035bf12e6",
"status": "complete"
}{
"id": "3f788ae1-4646-4d20-aa76-c33035bf12e6",
"status": "complete"
}D. Use Custom-Model
mvischirp-custom:{model_id}, i.e.chirp-custom:3f788ae1-4646-4d20-aa76-c33035bf12e6- Cross-account not supported, will query account based on
model_id - Body:
{
"generation_type": "TEXT",
"title": "Dook",
"tags": "dungeon neo soul, bass music",
"negative_tags": "",
"mv": "chirp-custom:3f788ae1-4646-4d20-aa76-c33035bf12e6",
"prompt": "[Verse]\nSunrise creepin' up again\nAnother day another spin\nMy head is buzzin' like a wire\nFuelin' up this inner fire",
"metadata": {
"create_mode": "custom"
}
}{
"generation_type": "TEXT",
"title": "Dook",
"tags": "dungeon neo soul, bass music",
"negative_tags": "",
"mv": "chirp-custom:3f788ae1-4646-4d20-aa76-c33035bf12e6",
"prompt": "[Verse]\nSunrise creepin' up again\nAnother day another spin\nMy head is buzzin' like a wire\nFuelin' up this inner fire",
"metadata": {
"create_mode": "custom"
}
}29. Speed: Speed Change
- Get a clip_id through creation or upload
A. Create Speed Change
speed_multiplieris speed multiplier, value range0.25~4.0keep_pitchwhentruemaintains pitch, whenfalsechanges pitchtitleis the title after speed change
curl --request POST \
--url https://api.openai-hk.com/suno/act/speed/6718cf1e-fa9f-433f-b859-a71f994cd3b8 \
--header 'Accept: */*' \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"speed_multiplier": 0.9439,
"keep_pitch": false,
"title": "Good News (0.94x)"
}'curl --request POST \
--url https://api.openai-hk.com/suno/act/speed/6718cf1e-fa9f-433f-b859-a71f994cd3b8 \
--header 'Accept: */*' \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"speed_multiplier": 0.9439,
"keep_pitch": false,
"title": "Good News (0.94x)"
}'Returns an id as the new clip_id for later queries:
{
"id": "01a4c72b-db63-4be2-a0db-008fe0f105a4",
"status": "processing",
"title": "Good News (0.94x)",
"play_count": 0,
"upvote_count": 0
}{
"id": "01a4c72b-db63-4be2-a0db-008fe0f105a4",
"status": "processing",
"title": "Good News (0.94x)",
"play_count": 0,
"upvote_count": 0
}B. Query Speed Change
curl --request GET \
--url https://api.openai-hk.com/suno/feed/01a4c72b-db63-4be2-a0db-008fe0f105a4 \
--header 'Accept: */*' \
--header 'Authorization: Bearer hk-your-key'curl --request GET \
--url https://api.openai-hk.com/suno/feed/01a4c72b-db63-4be2-a0db-008fe0f105a4 \
--header 'Accept: */*' \
--header 'Authorization: Bearer hk-your-key'30. Add Stem: Add Instrument
{
"task": "stem_condition",
"generation_type": "TEXT",
"title": "Good News",
"tags": "Pop with bright four-on-the-floor drums",
"negative_tags": "",
"mv": "chirp-fenix",
"prompt": "[Verse 1]\nI got a note in my hand",
"make_instrumental": false,
"metadata": {
"create_mode": "custom",
"is_remix": true
},
"stem_condition_clip_id": "d4b0af45-c974-4197-abdf-d51f6619ab6d",
"stem_control_tags": "add Drums",
"batch_size": 2
}{
"task": "stem_condition",
"generation_type": "TEXT",
"title": "Good News",
"tags": "Pop with bright four-on-the-floor drums",
"negative_tags": "",
"mv": "chirp-fenix",
"prompt": "[Verse 1]\nI got a note in my hand",
"make_instrumental": false,
"metadata": {
"create_mode": "custom",
"is_remix": true
},
"stem_condition_clip_id": "d4b0af45-c974-4197-abdf-d51f6619ab6d",
"stem_control_tags": "add Drums",
"batch_size": 2
}Cross-account allowed
Parameter notes:
make_instrumentalmust betrueif it's instrumental musictaskmust bestem_conditionstem_condition_clip_idis uploaded or regular Suno generatedclip_idstem_control_tagsisadd Strings, alsoadd Drumsadd Bassetc., refer to suno-studiobatch_sizeis2
Billing: 1.2× base cost due to Suno risk control on stem_condition
Returns standard create API data
{
"id": "8fb0a232-aef3-4f8a-82ad-72a3fde0bcc6",
"clips": [
{
"id": "clipsId1"
},
{
"id": "clipsId2"
}
]
}{
"id": "8fb0a232-aef3-4f8a-82ad-72a3fde0bcc6",
"clips": [
{
"id": "clipsId1"
},
{
"id": "clipsId2"
}
]
}31. Extract Stems and MIDI: Extract Stems and MIDI
- Cross-account not allowed
- Parameter notes:
taskmust begen_stemstem_taskmust beextractstem_type_idmust be91stem_type_group_nameandstem_namehave same value, reference values:Lead VocalDrum KitKickSnareRisersBassBacking VocalsPianoElectric GuitarPercussionString SectionSynthAcoustic GuitarSound EffectsSynth PadSynth BassGuitarBrass SectionOrganElectronic Drum KitLead Electric GuitarSynth KeysRhythm Electric GuitarElectric PianoUpright BassKeyboardsDistorted Electric GuitarSynth StringsSynth LeadWoodwindsRhythm Acoustic GuitarFluteHarpTambourineTrumpetArpeggiatorAccordionFiddlePedal Steel GuitarSynth VoiceViolinDigital PianoSynth BrassMandolinChoirBanjoBellsClarinetTenor SaxophoneTromboneShakerFrench HornGlockenspielElectric BassCelloTimpaniHarmonicaMarimbaVibraphoneLap Steel GuitarSaxophoneOrchestraHornsCymbalsHand ClapOboeCelestaCongasDroneAlto SaxophoneDouble BassUkuleleHarpsichordBaritone SaxophoneXylophoneTubaBass GuitarWhistleLead GuitarRhodes808BongosBassoonCowbellViolaSitarSteel DrumsPiccoloThereminBagpipesHi-HatMusic BoxMelodicaTablaKotoDjembeTaikoDidgeridoo
- Billing: 1× base cost
{
"task": "gen_stem",
"generation_type": "TEXT",
"title": "my title",
"tags": "pop",
"negative_tags": "",
"mv": "chirp-v3-0",
"prompt": "",
"make_instrumental": true,
"metadata": {
"create_mode": "custom",
"is_remix": true
},
"continue_clip_id": "fcd7be5e-f907-4fce-a47f-f0784a139be3",
"stem_type_id": 91,
"stem_type_group_name": "Piano",
"stem_task": "extract",
"stem_name": "Piano"
}{
"task": "gen_stem",
"generation_type": "TEXT",
"title": "my title",
"tags": "pop",
"negative_tags": "",
"mv": "chirp-v3-0",
"prompt": "",
"make_instrumental": true,
"metadata": {
"create_mode": "custom",
"is_remix": true
},
"continue_clip_id": "fcd7be5e-f907-4fce-a47f-f0784a139be3",
"stem_type_id": 91,
"stem_type_group_name": "Piano",
"stem_task": "extract",
"stem_name": "Piano"
}- Returns 4 clip_ids
- Use these 4 clip_ids to get MIDI, refer to 18. Get MIDI
32. Duration Parameter
durationis10~360seconds- Only supported on v5.5+,
mvmust bechirp-fenix
{
"generation_type": "TEXT",
"title": "Good news",
"tags": "syncopated basslines, modal",
"negative_tags": "",
"mv": "chirp-fenix",
"prompt": "[Verse]\nSunrise creepin\nGold on the floor",
"make_instrumental": false,
"metadata": {
"create_mode": "custom"
},
"duration": 330
}{
"generation_type": "TEXT",
"title": "Good news",
"tags": "syncopated basslines, modal",
"negative_tags": "",
"mv": "chirp-fenix",
"prompt": "[Verse]\nSunrise creepin\nGold on the floor",
"make_instrumental": false,
"metadata": {
"create_mode": "custom"
},
"duration": 330
}33. Nice Upload
- To solve copyright issues with uploaded songs, you can use the nice upload API
- After upload, you can cover/remix across accounts without worrying about account expiry
- Duration: takes over 2 minutes, implemented as async task
- Billing: 10,000 credits/request
- Shorter duration has higher success rate
- Generated clip_id currently supports:
- cover cross-account allowed
- Extract Stems and MIDI cross-account not allowed
- Full Track Separation cross-account not allowed
- Vocals/Instrumental Separation cross-account not allowed
- samples cross-account allowed
- mashup cross-account allowed
A. Create Upload Task
namesong name, requiredurlsong link, required
curl --request POST \
--url https://api.openai-hk.com/suno/uploads/nice \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://myfile.aibeke.com/dong-feng-po.mp3",
"name":"Dong Feng Po"
} 'curl --request POST \
--url https://api.openai-hk.com/suno/uploads/nice \
--header 'Authorization: Bearer hk-your-key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://myfile.aibeke.com/dong-feng-po.mp3",
"name":"Dong Feng Po"
} '- Returns:
{
"clip_id": "",
"id": "hkfc3337-8e41-4d30-9fd9-55bfe352876c",
"message": "",
"status": "submitted"
}{
"clip_id": "",
"id": "hkfc3337-8e41-4d30-9fd9-55bfe352876c",
"message": "",
"status": "submitted"
}B. Get Upload Task Status
curl --request GET \
--url https://api.openai-hk.com/suno/uploads/nice/hkfc3337-8e41-4d30-9fd9-55bfe352876c \
--header 'Authorization: Bearer hk-your-key'curl --request GET \
--url https://api.openai-hk.com/suno/uploads/nice/hkfc3337-8e41-4d30-9fd9-55bfe352876c \
--header 'Authorization: Bearer hk-your-key'- Success response:
clip_idis the Suno song ID
{
"id": "hkfc3337-8e41-4d30-9fd9-55bfe352876c",
"status": "complete",
"clip_id": "e5021b7a-6f9f-4eed-8690-448126593d1f",
"message": ""
}{
"id": "hkfc3337-8e41-4d30-9fd9-55bfe352876c",
"status": "complete",
"clip_id": "e5021b7a-6f9f-4eed-8690-448126593d1f",
"message": ""
}- Failure response:
{
"id": "hkfc3337-8e41-4d30-9fd9-55bfe352876c",
"status": "error",
"clip_id": "",
"message": "Song download failed: HTTP Error 404: Not Found"
}{
"id": "hkfc3337-8e41-4d30-9fd9-55bfe352876c",
"status": "error",
"clip_id": "",
"message": "Song download failed: HTTP Error 404: Not Found"
}C. Use clip_id for Cover/Remix
cover_clip_idis the cover clip_idpromptlyrics need Chinese-to-Pinyin conversion, otherwise may have copyright issuestagscan control different styles- Payload:
{
"prompt": "[Intro]\n[arpeggiated clean electric guitar riff, piano chords]\n\n[Verse 1]\n[breathy male vocals]\nyī zhǎn lí chóu gū dān zhù lì zài chuāng kǒu\nwǒ zài mén hòu jiǎ zhuāng nǐ rén hái méi zǒu\njiù dì rú zhòng yóu yuè yuán gèng jì mò\nyè bàn qīng xǐng de zhú huǒ bù rěn kē zé wǒ\nyī hú piāo pō làng jī tiān yá nán rù hóu\nnǐ zǒu zhī hòu jiǔ nuǎn huí yì sī niàn shòu\nshuǐ xiàng dōng liú shí jiān zěn me tōu\nhuā kāi jiù yī cì chéng shú wǒ què cuò guò\n\n[Chorus]\n[drums and bass enter, full band arrangement]\nshuí zài yòng pí pá dàn zòu yī qū dōng fēng pò\nfēng yè jiāng gù shì rǎn sè jié jú wǒ kàn tòu\nlí bā wài de gǔ dào wǒ qiān zhù nǐ zǒu guò\nhuāng yān màn cǎo de nián tóu jiù lián fēn shǒu dōu hěn shěn mò\nshuí zài yòng pí pá dàn zòu yī qū dōng fēng pò\nfēng yè jiāng gù shì rǎn sè jié jú wǒ kàn tòu\nlí bā wài de gǔ dào wǒ qiān zhù nǐ zǒu guò\nhuāng yān màn cǎo de nián tóu jiù lián fēn shǒu dōu hěn shěn mò",
"generation_type": "TEXT",
"tags": "rock, punk",
"negative_tags": "",
"mv": "chirp-fenix",
"title": "My Dong Feng Po",
"continue_clip_id": null,
"continue_at": null,
"continued_aligned_prompt": null,
"infill_start_s": null,
"infill_end_s": null,
"task": "cover",
"cover_clip_id": "e5021b7a-6f9f-4eed-8690-448126593d1f"
}{
"prompt": "[Intro]\n[arpeggiated clean electric guitar riff, piano chords]\n\n[Verse 1]\n[breathy male vocals]\nyī zhǎn lí chóu gū dān zhù lì zài chuāng kǒu\nwǒ zài mén hòu jiǎ zhuāng nǐ rén hái méi zǒu\njiù dì rú zhòng yóu yuè yuán gèng jì mò\nyè bàn qīng xǐng de zhú huǒ bù rěn kē zé wǒ\nyī hú piāo pō làng jī tiān yá nán rù hóu\nnǐ zǒu zhī hòu jiǔ nuǎn huí yì sī niàn shòu\nshuǐ xiàng dōng liú shí jiān zěn me tōu\nhuā kāi jiù yī cì chéng shú wǒ què cuò guò\n\n[Chorus]\n[drums and bass enter, full band arrangement]\nshuí zài yòng pí pá dàn zòu yī qū dōng fēng pò\nfēng yè jiāng gù shì rǎn sè jié jú wǒ kàn tòu\nlí bā wài de gǔ dào wǒ qiān zhù nǐ zǒu guò\nhuāng yān màn cǎo de nián tóu jiù lián fēn shǒu dōu hěn shěn mò\nshuí zài yòng pí pá dàn zòu yī qū dōng fēng pò\nfēng yè jiāng gù shì rǎn sè jié jú wǒ kàn tòu\nlí bā wài de gǔ dào wǒ qiān zhù nǐ zǒu guò\nhuāng yān màn cǎo de nián tóu jiù lián fēn shǒu dōu hěn shěn mò",
"generation_type": "TEXT",
"tags": "rock, punk",
"negative_tags": "",
"mv": "chirp-fenix",
"title": "My Dong Feng Po",
"continue_clip_id": null,
"continue_at": null,
"continued_aligned_prompt": null,
"infill_start_s": null,
"infill_end_s": null,
"task": "cover",
"cover_clip_id": "e5021b7a-6f9f-4eed-8690-448126593d1f"
}- Result: My Dong Feng Po My Dong Feng Po 2
OpenAi-HK