EXTEND
Extend a previously generated song or an uploaded audio.
POST
https://api.apiframe.pro/suno-extend
Headers
Content-Type
application/json
Authorization*
Your APIFRAME API Key
Body
parent_task_id
*
string
the id of the original suno task
song_id
*
string
the song_id of one of the two generated songs to extend
continue_at
float
The timestamp from where the song should be extended
from_upload
boolean
Set to true if you are extending an audio you uploaded.
prompt
string
the text prompt for Suno AI, just describe the song.
lyrics
string
lyrics for the song to generate
title
string
a title for the song
tags
string
style tags for the song, ex: 'rap pop'
webhook_url
string
The final results of this task and updates will be posted at this URL.
webhook_secret
string
Will be passed as x-webhook-secret
in the webhook call headers for authentication.
Response
// Success, the task has been submitted
{
"task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a"
}
This endpoint doesn't generate the songs instantly; you can use the Fetch endpoint to fetch the result or use webhooks.
The result (posted to the webhook_url
or retrieved with the Fetch endpoint) looks like this:
{
"task_id": "29e983ca-7e86-4017-a9e3-xxxxxxxxx",
"task_type": "suno",
"status": "finished",
"video_url": "https://...........xxxx.mp4",
"songs": [
{
"lyrics": "....",
"song_id": "ea6813ad-03ce-4a0b-a616-xxxxxxxxx",
"audio_url": "https://....xxxxxxxxx.mp3",
"image_url": "https://....xxxxxxxxx.jpeg",
"video_url": "https://....xxxxxxxxx.mp4"
},
{
"lyrics": "...",
"song_id": "21ad7efc-4954-4ae4-ae2a-xxxxxxxx",
"audio_url": "https://....xxxxxxxxx.mp3",
"image_url": "https://....xxxxxxxxx.jpeg",
"video_url": "https://....xxxxxxxxx.mp4"
}
]
}
If the job is not completed, you will get a result like this:
{
"task_id": "29e983ca-7e86-4017-a9e3-xxxxxxxxx",
"task_type": "suno",
"status": "processing",
"percentage": 56,
"video_url": "https://...........xxxx.mp4",
"songs": [
{
"lyrics": "....",
"song_id": "ea6813ad-03ce-4a0b-a616-xxxxxxxxx",
"audio_url": "https://....xxxxxxxxx.mp3",
"image_url": "https://....xxxxxxxxx.jpeg",
"video_url": "https://....xxxxxxxxx.mp4"
},
{
"lyrics": "...",
"song_id": "21ad7efc-4954-4ae4-ae2a-xxxxxxxx",
"audio_url": "https://....xxxxxxxxx.mp3",
"image_url": "https://....xxxxxxxxx.jpeg",
"video_url": "https://....xxxxxxxxx.mp4"
}
]
}
Code samples
const axios = require('axios');
const data = JSON.stringify({
"parent_task_id": "xxxxxxxxx",
"song_id": "xxxxxxxxxx",
"webhook_url": "https://........",
"webhook_secret": "abc123"
});
const config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.apiframe.pro/suno-extend',
headers: {
'Content-Type': 'application/json',
'Authorization': 'YOUR_API_KEY'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Last updated
Was this helpful?