curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "upload-and-extend-audio",
"callback_url": "https://your-domain.com/callback",
"input": {
"upload_url": "https://storage.example.com/audio.mp3",
"default_param_flag": true,
"instrumental": true,
"continue_at": 60,
"mv": "V5_5"
}
}
'{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2025-11-12T10:30:00"
}
}Suno AI
Upload and Extend Audio
Extend audio tracks while preserving the original style
POST
/
api
/
generate
/
submit
curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "upload-and-extend-audio",
"callback_url": "https://your-domain.com/callback",
"input": {
"upload_url": "https://storage.example.com/audio.mp3",
"default_param_flag": true,
"instrumental": true,
"continue_at": 60,
"mv": "V5_5"
}
}
'{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2025-11-12T10:30:00"
}
}- After submission, a
task_idwill be returned. If you provided acallback_url, when the task status becomesfinishedorfailed, a POST request will be sent to thecallback_url. - Regardless of whether
callback_urlis provided, you can retrieve the response result through the unified Query Music Detail endpoint.
persona_model accepts style_persona or voice_persona, requires persona_id, and is supported only when default_param_flag: true with V5/V5_5.
Usage Guide
- This endpoint extends uploaded audio files while preserving the original style
- Upload an existing audio track and specify where to continue from
- The AI generates additional content that seamlessly blends with the original
- Uploaded audio files must not exceed 8 minutes in length (Note: For V4_5ALL model, max 1 minute)
Parameter Details
-
When
default_param_flag: true(Custom Parameters Mode):- Full control over style, title, and other parameters
-
If
instrumental: true:upload_url,mv,style,title, andcontinue_atare required -
If
instrumental: false:upload_url,mv,style,title, andcontinue_atare required.promptis optional and is used when provided -
Character limits vary by model:
-
V4:
prompt3000 characters,style200 characters,title80 characters -
V4_5 & V4_5PLUS:
prompt5000 characters,style1000 characters,title100 characters -
V4_5ALL:
prompt5000 characters,style1000 characters,title80 characters -
V5:
prompt5000 characters,style1000 characters,title100 characters -
V5_5:
prompt5000 characters,style1000 characters,title100 characters
-
V4:
-
When
default_param_flag: false:- Only
upload_urlis required;promptis optional. Ifinstrumental: falseandpromptis omitted, lyrics will be automatically generated
- Only
Developer Notes
- Recommendation: Use
default_param_flag: falsefor quick extensions that maintain the original style - The
continue_atparameter determines where the extension begins - set it to the point where you want new content to start
Optional parameters
-
prompt(string): Optional description or lyrics for the extended audio. If omitted for vocal output, lyrics are generated automatically. -
style(string): Music style specification. Required whendefault_param_flagistrue. -
title(string): Track title for the extended audio. Character limits vary by model (V4: 80, V4_5 & V4_5PLUS & V5: 100, V4_5ALL: 80). -
negative_tags(string): Music styles to exclude from generation. -
vocal_gender(string): Vocal gender preference. Usemfor male,ffor female. Note: This parameter can only increase the probability but cannot guarantee the specified gender. -
style_weight(number): Strength of adherence to style. Range 0-1, up to 2 decimals. -
weirdness_constraint(number): Controls creative deviation. Range 0-1, up to 2 decimals. -
audio_weight(number): Balance weight for audio features. Range 0-1, up to 2 decimals. -
persona_id(string): Persona ID to apply to the generated music. Only available whendefault_param_flag: truewith V5/V5_5. How to generate persona_id, visit generate-persona.
Authorizations
All API endpoints require Bearer Token authentication
Get your API Key:
Visit the API Key Management Page to get your API Key
Add it to the request header:
Authorization: Bearer PoYo_API_KEY
Body
application/json
API model identifier.
Must be upload-and-extend-audio for this endpoint.
Available options:
upload-and-extend-audio Example:
"upload-and-extend-audio"
Input parameters for audio extension
Show child attributes
Show child attributes
Webhook callback URL for result notifications
Example:
"https://your-domain.com/callback"
