Create
POST
https://api.sunoapi.com/api/v2/suno/v3.5/extend
The core API to expand songs, you can extend suno v3 and v3.5 songs.
POST /api/v2/suno/v3.5/extend
Sample Request
{
"prompt": "[Verse]\nTesla riding\nBatteries flying\nElon Musk\nHe's got the future on his mind\nSolar panels shining\nRockets reaching for the skies\nInnovation's flowing\nHe's the tech wizard of our times\n\n[Verse]\nNeuralink connecting minds\nAI running wild\nMars colonization\nHe's making it his style\nFrom PayPal he came and shook the world with his touch\nElon Musk\nThe eccentric genius\nHe's too much\n\n[Chorus]\nElon Musk\nHe's the man with electric dreams\nChanging the world with his technology schemes\nFrom PayPal to SpaceX\nHe's a force to be seen\nElectric cars and rockets\nHe's living the dream",
"tags": "epic reggae",
"title": "Electric Dreams",
"continue_clip_id": "2e584f32-7ae3-4b2d-93f6-391f65a01f15",
"continue_at": 48.762
}
Request Body
Name | Type | Required | Default |
---|---|---|---|
prompt | string | true | "" |
tags | string | true | "" |
title | string | false | "" |
continue_clip_id | string | true | "" |
continue_at | number | true | "" |
prompt
The lyrics of the song.
tags
Style of Music. e.g. "heavy metal", "gospel", "jazz", etc.
title
The title of the song.
continue_clip_id
the clip_id of last create music task.
continue_at
Extended time, in seconds.for example, if the duration of the song you want to expand is 240 seconds, and you want to start expanding from 238 seconds, the value of continue_at is 238. If you want to smoothly extend the previous music, you need to use the tags and title of the previous music.
Sample Response
{
"id": "3d5f0ee4-1d7b-410a-bafd-60a3978284d1",
"clips": [
{
"id": "7070ec00-462e-42ac-9b9f-1074977f473f",
"video_url": "",
"audio_url": "",
"image_url": null,
"image_large_url": null,
"is_video_pending": false,
"major_model_version": "v3.5",
"model_name": "chirp-v3",
"metadata": {
"tags": "heavy metal",
"prompt": "[Verse]\nStars they shine above me\nMoonlight softly glows\nWhispers in the night sky\nDreams that only grow\n\n[Verse 2]\nMidnight winds are calling\nCarrying a tune\nHeartbeats echo softly\nDancing with the moon\n\n[Chorus]\nStarry night starry night\nLet your light ignite ignite\nBright as day bright as day\nGuide my way guide my way\n\n[Verse 3]\nShadows move and twinkle\nNighttime come alive\nMystery in the heavens\nStories that survive\n\n[Bridge]\nMagic fills the darkness\nWonder in the air\nEvery star a secret\nIn the sky I stare\n\n[Chorus]\nStarry night starry night\nLet your light ignite ignite\nBright as day bright as day\nGuide my way guide my way",
"gpt_description_prompt": null,
"audio_prompt_id": "m_2e584f32-7ae3-4b2d-93f6-391f65a01f15",
"history": [
{
"id": "m_2e584f32-7ae3-4b2d-93f6-391f65a01f15",
"continue_at": 48.762,
"type": "upload",
"source": "web",
"infill": false
}
],
"concat_history": null,
"type": "gen",
"duration": null,
"refund_credits": null,
"stream": true,
"infill": false,
"has_vocal": true,
"is_audio_upload_tos_accepted": true,
"error_type": null,
"error_message": null
},
"is_liked": false,
"user_id": "4ed4f182-0b5a-4cde-bffe-44fb5237a3aa",
"display_name": "AmbientLens971",
"handle": "ambientlens971",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultOrange.jpg",
"is_trashed": false,
"reaction": null,
"created_at": "2024-07-22T07:56:36.710Z",
"status": "submitted",
"title": "Starry ",
"play_count": 0,
"upvote_count": 0,
"is_public": false
},
{
"id": "00e6b9e4-c29c-4cfe-8d7a-5b3f06ff5b90",
"video_url": "",
"audio_url": "",
"image_url": null,
"image_large_url": null,
"is_video_pending": false,
"major_model_version": "v3",
"model_name": "chirp-v3",
"metadata": {
"tags": "heavy metal",
"prompt": "[Verse]\nStars they shine above me\nMoonlight softly glows\nWhispers in the night sky\nDreams that only grow\n\n[Verse 2]\nMidnight winds are calling\nCarrying a tune\nHeartbeats echo softly\nDancing with the moon\n\n[Chorus]\nStarry night starry night\nLet your light ignite ignite\nBright as day bright as day\nGuide my way guide my way\n\n[Verse 3]\nShadows move and twinkle\nNighttime come alive\nMystery in the heavens\nStories that survive\n\n[Bridge]\nMagic fills the darkness\nWonder in the air\nEvery star a secret\nIn the sky I stare\n\n[Chorus]\nStarry night starry night\nLet your light ignite ignite\nBright as day bright as day\nGuide my way guide my way",
"gpt_description_prompt": null,
"audio_prompt_id": "m_2e584f32-7ae3-4b2d-93f6-391f65a01f15",
"history": [
{
"id": "m_2e584f32-7ae3-4b2d-93f6-391f65a01f15",
"continue_at": 48.762,
"type": "upload",
"source": "web",
"infill": false
}
],
"concat_history": null,
"type": "gen",
"duration": null,
"refund_credits": null,
"stream": true,
"infill": false,
"has_vocal": true,
"is_audio_upload_tos_accepted": true,
"error_type": null,
"error_message": null
},
"is_liked": false,
"user_id": "4ed4f182-0b5a-4cde-bffe-44fb5237a3aa",
"display_name": "AmbientLens971",
"handle": "ambientlens971",
"is_handle_updated": false,
"avatar_image_url": "https://cdn1.suno.ai/defaultOrange.jpg",
"is_trashed": false,
"reaction": null,
"created_at": "2024-07-22T07:56:36.711Z",
"status": "submitted",
"title": "Starry ",
"play_count": 0,
"upvote_count": 0,
"is_public": false
}
],
"metadata": {
"tags": "heavy metal",
"prompt": "[Verse]\nStars they shine above me\nMoonlight softly glows\nWhispers in the night sky\nDreams that only grow\n\n[Verse 2]\nMidnight winds are calling\nCarrying a tune\nHeartbeats echo softly\nDancing with the moon\n\n[Chorus]\nStarry night starry night\nLet your light ignite ignite\nBright as day bright as day\nGuide my way guide my way\n\n[Verse 3]\nShadows move and twinkle\nNighttime come alive\nMystery in the heavens\nStories that survive\n\n[Bridge]\nMagic fills the darkness\nWonder in the air\nEvery star a secret\nIn the sky I stare\n\n[Chorus]\nStarry night starry night\nLet your light ignite ignite\nBright as day bright as day\nGuide my way guide my way",
"gpt_description_prompt": null,
"audio_prompt_id": "m_2e584f32-7ae3-4b2d-93f6-391f65a01f15",
"history": [
{
"id": "m_2e584f32-7ae3-4b2d-93f6-391f65a01f15",
"continue_at": 48.762,
"type": "upload",
"source": "web",
"infill": false
}
],
"concat_history": null,
"type": "gen",
"duration": null,
"refund_credits": null,
"stream": true,
"infill": false,
"has_vocal": true,
"is_audio_upload_tos_accepted": true,
"error_type": null,
"error_message": null
},
"major_model_version": "v3",
"status": "complete",
"created_at": "2024-07-22T07:56:36.699Z",
"batch_size": 1
}
Response Body
Name | Type | Description |
---|---|---|
id | string | the id of this task |
clips | array | the two generated music data |
status | string | the status of this task |
created_at | string | the created time of this task |
major_model_version | string | —— |
batch_size | number | —— |
clips
Name | Type | Description |
---|---|---|
clips.id | string | the clip_id or continue_clip_id uesd for get generated music or expand music. |
clips.video_url | string | the video URL of the clip |
clips.audio_url | string | the audio URL of the clip |
clips.image_url | string | the image URL of the clip |
clips.image_large_url | string | the large image URL of the clip |
clips.is_video_pending | boolean | whether the video is pending to be generated |
clips.major_model_version | string | the major model version used to generate the clips |
clips.model_name | string | the model name used to generate the clips |
clips.metadata | object | the metadata of the clips, including tags, prompt, audio prompt ID, history, concat history, type, duration, refund credits, stream, error type, error message, etc. |
clips.is_liked | boolean | whether the clip is liked |
clips.user_id | string | the user ID of the clip |
clips.display_name | string | the display name of the clip |
clips.handle | string | the handle of the clip |
clips.is_handle_updated | boolean | whether the handle is updated |
clips.is_trashed | boolean | whether the clip is trashed |
clips.reaction | object | the reaction of the clip, including upvote count, like count, and dislike count |
clips.created_at | string | the created at of the clip |
clips.status | string | the status of the clip |
clips.title | string | the title of the clip |
clips.play_count | number | the play count of the clip |
clips.upvote_count | number | the upvote count of the clip |
clips.is_public | boolean | whether the clip is public |
Examples
const axios = require("axios")
const config = {
method: "post",
url: "https://api.sunoapi.com/api/v2/suno/v3.5/extend",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer <your-token>",
},
data: {
prompt:
"[Verse]\nTesla riding\nBatteries flying\nElon Musk\nHe's got the future on his mind\nSolar panels shining\nRockets reaching for the skies\nInnovation's flowing\nHe's the tech wizard of our times\n\n[Verse]\nNeuralink connecting minds\nAI running wild\nMars colonization\nHe's making it his style\nFrom PayPal he came and shook the world with his touch\nElon Musk\nThe eccentric genius\nHe's too much\n\n[Chorus]\nElon Musk\nHe's the man with electric dreams\nChanging the world with his technology schemes\nFrom PayPal to SpaceX\nHe's a force to be seen\nElectric cars and rockets\nHe's living the dream",
tags: "epic reggae",
title: "Electric Dreams",
continue_clip_id: "2e584f32-7ae3-4b2d-93f6-391f65a01f15",
continue_at: 48.762,
},
}
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data))
})
.catch(function (error) {
console.log(error)
})