curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "upload-and-cover-audio",
"callback_url": "https://your-domain.com/callback",
"input": {
"upload_url": "https://example.com/audio/my-track.mp3",
"prompt": "Transform into an upbeat electronic dance version",
"style": "EDM, Electronic",
"title": "Dance Remix",
"custom_mode": true,
"instrumental": false,
"mv": "V5_5",
"negative_tags": "Slow, Sad",
"style_weight": 0.8
}
}
'{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2025-11-12T10:30:00"
}
}Suno AI
Upload and Cover Audio
Transform audio tracks into new styles while preserving the original melody
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-cover-audio",
"callback_url": "https://your-domain.com/callback",
"input": {
"upload_url": "https://example.com/audio/my-track.mp3",
"prompt": "Transform into an upbeat electronic dance version",
"style": "EDM, Electronic",
"title": "Dance Remix",
"custom_mode": true,
"instrumental": false,
"mv": "V5_5",
"negative_tags": "Slow, Sad",
"style_weight": 0.8
}
}
'{
"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 (style_persona or voice_persona) with persona_id only in Custom Mode on V5/V5_5. It also supports integer duration from 10–360 only when custom_mode: true and mv: V5_5.
Usage Guide
- This endpoint transforms an uploaded audio track into a new style while preserving the original melody
- Upload your audio file and specify the desired transformation style
- The original melody and structure are maintained while applying new musical characteristics
Parameter Details
-
Audio Upload Requirement:
- The uploaded audio must not exceed 8 minutes in length
- Note: For the V4_5ALL model, the uploaded audio must not exceed 1 minute in length
-
Provide a valid URL pointing to your audio file via
upload_url
-
In Custom Mode (
custom_mode: true):-
styleandtitleare required -
promptis required ifinstrumentalisfalse -
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:
-
-
In Non-custom Mode (
custom_mode: false):-
promptis required to describe the desired transformation (max 500 characters) -
styleandtitleshould be left empty
-
Developer Notes
- Ensure your audio URL is publicly accessible and the file is under 8 minutes (1 minute for V4_5ALL)
- For best results, use high-quality source audio with clear melody lines
-
The
audio_weightparameter can help balance between preserving the original and applying the new style
Optional parameters
-
negative_tags(string): Music styles or characteristics to exclude from the cover. -
vocal_gender(string): Vocal gender preference. Usemfor male,ffor female. Note: This parameter increases the probability but cannot guarantee adherence. -
style_weight(number): Strength of adherence to the new 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 preserving original audio features. Range 0-1, up to 2 decimals. -
persona_id(string): Persona ID to apply to the covered track. Only available whencustom_mode: truewith V5/V5_5. How to generate persona_id, visit generate-persona. -
persona_model(string):style_personaorvoice_persona. Requirespersona_id,custom_mode: true, and V5/V5_5.
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-cover-audio for this endpoint.
Available options:
upload-and-cover-audio Example:
"upload-and-cover-audio"
Input parameters for audio cover generation
Show child attributes
Show child attributes
Webhook callback URL for result notifications.
Endpoint that receives task completion updates.
Example:
"https://your-domain.com/callback"
