{
"uploadUrlList": [
"https://example.com/audio1.mp3",
"https://example.com/audio2.mp3"
],
"lyrics": "[Chorus] Brighter lights, we keep going on",
"prompt": "[Verse] City hums under neon rain",
"style": "Electronic Dance Music",
"title": "Mashup Work",
"model": "V6",
"callBackUrl": "https://example.com/callback",
"vocalGender": "m",
"styleWeight": 0.65,
"weirdnessConstraint": 0.72,
"audioWeight": 0.65,
"variety": 1
}
{
"code": 200,
"msg": "success",
"data": {
"taskId": "5c79****be8e"
}
}Generate Mashup
Mix two audio files to generate a new mashup work using AI models.
{
"uploadUrlList": [
"https://example.com/audio1.mp3",
"https://example.com/audio2.mp3"
],
"lyrics": "[Chorus] Brighter lights, we keep going on",
"prompt": "[Verse] City hums under neon rain",
"style": "Electronic Dance Music",
"title": "Mashup Work",
"model": "V6",
"callBackUrl": "https://example.com/callback",
"vocalGender": "m",
"styleWeight": 0.65,
"weirdnessConstraint": 0.72,
"audioWeight": 0.65,
"variety": 1
}
{
"code": 200,
"msg": "success",
"data": {
"taskId": "5c79****be8e"
}
}Model Versions
- Current models:
V6(default),V6_WILD,V6_MINI - Deprecated models:
V5_5,V5,V4_5PLUS,V4_5ALL,V4_5,V4 - Deprecated values remain available only for backward compatibility. New integrations should use a V6-series model.
Usage Guide
- This endpoint always uses custom parameters. Simple mode is not available.
- This endpoint creates mashup music from 2 uploaded audio files
- Combines elements from multiple tracks into a cohesive new composition
Parameter Details
uploadUrlListis required and must contain exactly 2 audio file URLs; only the first 2 are used- model (string, required):
V6,V6_WILD,V6_MINI. Deprecated:V4,V4_5,V4_5PLUS,V4_5ALL,V5,V5_5. styleandtitleare requiredpromptis optional and is treated as lyrics. Whenlyricsis also provided,lyricstakes priority andpromptis not used as lyricslyricsis optional. It takes priority overpromptas the lyrics. Iflyricsis omitted,promptis used as the lyrics- Character limits (based on model):
- V4, V4_5, V4_5PLUS, V4_5ALL, V5 & V5_5 (Deprecated):
prompt3000–5000 characters andstyle200–1000 characters according to the legacy model. - V6, V6_WILD & V6_MINI:
promptandlyricsmax 5000 characters,stylemax 1000 characters titlelength limit: 80 characters (all models)
- V4, V4_5, V4_5PLUS, V4_5ALL, V5 & V5_5 (Deprecated):
Optional parameters
- lyrics (string): Lyrics for the mashup. Takes priority over
prompt. If omitted,promptis used as the lyrics. For V6, V6_WILD, and V6_MINI: maximum 5000 characters. - vocalGender (string): Preferred vocal gender. Allowed values:
m(male),f(female) - styleWeight (number): Style adherence weight in range 0–1 (recommended two decimals)
- weirdnessConstraint (number): Creativity/novelty constraint in range 0–1 (recommended two decimals)
- audioWeight (number): Relative weight of audio consistency in range 0–1 (recommended two decimals)
- duration (number): Duration in seconds, range 10–360. Only effective with
V5_5(Deprecated),V6,V6_WILD, orV6_MINI. - variety (integer): Diversity of generated results. Integer from 0–4, default 1.
0off,1normal (default),2high,3extra,4max. - personaId (string): Persona ID or Suno Voice
voiceIdto apply to the generated music. If you use a Voice-generated ID, setpersonaModeltovoice_persona. - personaModel (string): Persona type, default
style_persona. Usestyle_personafor Generate Persona IDs, orvoice_personafor Suno Voice IDs.
{
"uploadUrlList": [
"https://example.com/audio1.mp3",
"https://example.com/audio2.mp3"
],
"lyrics": "[Chorus] Brighter lights, we keep going on",
"prompt": "[Verse] City hums under neon rain",
"style": "Electronic Dance Music",
"title": "Mashup Work",
"model": "V6",
"callBackUrl": "https://example.com/callback",
"vocalGender": "m",
"styleWeight": 0.65,
"weirdnessConstraint": 0.72,
"audioWeight": 0.65,
"variety": 1
}
Developer Notes
- This endpoint always uses custom parameters;
styleandtitlemust be provided along with the two source audio URLs - Generated files are retained for 14 days
- Callback process has three stages:
text(text generation),first(first track complete),complete(all tracks complete) - The two audio files in
uploadUrlListmust be valid and accessible URLs - Audio files should be in supported formats (MP3, WAV, etc.)
Authorizations
🔑 API Authentication
All endpoints require authentication using Bearer Token.
Get API Key
- Visit the API Key Management Page to obtain your API Key
Usage
Add to request headers:
Authorization: Bearer YOUR_API_KEY
⚠️ Note:
- Keep your API Key secure and do not share it with others
- If you suspect your API Key has been compromised, reset it immediately from the management page
Body
Array of audio file URLs to mashup. Required. Provide exactly 2 URLs; only the first 2 are used. Each URL must be publicly accessible.
2 elements[ "https://example.com/audio1.mp3", "https://example.com/audio2.mp3" ]
The music style or genre. Required. Examples: "Jazz", "Classical", "Electronic".
- For V4 (Deprecated): Maximum 200 characters.
- For V4_5, V4_5PLUS, V5, V5_5 & V4_5ALL (Deprecated): Maximum 1000 characters.
- For V6, V6_WILD & V6_MINI: Maximum 1000 characters.
"Jazz"
Title for the generated music track. Required.
- Max length: 80 characters.
- Will be displayed in player interfaces and filenames.
"Relaxing Piano"
AI model version. Default: V6.
V6: Current standard model and recommended default.V6_WILD: Current model for more experimental and creative results.V6_MINI: Current lightweight model.- Deprecated:
V5_5,V5,V4_5PLUS,V4_5ALL,V4_5, andV4. These values remain listed only for backward compatibility; use a V6-series model for new integrations.
V6, V6_WILD, V6_MINI, V5_5, V5, V4_5PLUS, V4_5ALL, V4_5, V4 "V6"
The URL to receive music generation task completion updates. Required for all music generation requests.
- System will POST task status and results to this URL when generation completes
- Callback process has three stages:
text(text generation),first(first track complete),complete(all tracks complete) - Note: Some cases may skip
textandfirststages and returncompletedirectly - Your callback endpoint should accept POST requests with JSON payload containing task results and audio URLs
- For detailed callback format and implementation guide, see Music Generation Callbacks
- Alternatively, use the Get Music Details endpoint to poll task status
"https://example.com/callback"
Lyrics for the mashup. Optional. The prompt is used strictly as lyrics and sung in the generated track. When lyrics is also provided, lyrics takes priority and prompt is not used as lyrics. Character limits by model:
- V4 (Deprecated): Maximum 3000 characters
- V4_5, V4_5PLUS, V5, V5_5 & V4_5ALL (Deprecated): Maximum 5000 characters
- V6, V6_WILD & V6_MINI: Maximum 5000 characters
"[Verse] City hums under neon rain"
Lyrics for the mashup. Optional. Takes priority over prompt as the lyrics. If omitted, prompt is used as the lyrics.
- V6, V6_WILD & V6_MINI: Maximum 5000 characters
"[Chorus] Brighter lights, we keep going on"
Vocal gender preference for the singing voice. Optional. Use 'm' for male and 'f' for female. Based on practice, this parameter can only increase the probability but cannot guarantee adherence to male/female voice instructions.
m, f "m"
Strength of adherence to the specified style. Optional. Range 0–1, up to 2 decimal places.
0 <= x <= 1Must be a multiple of 0.010.61
Controls experimental/creative deviation. Optional. Range 0–1, up to 2 decimal places.
0 <= x <= 1Must be a multiple of 0.010.72
Balance weight for audio features vs. other factors. Optional. Range 0–1, up to 2 decimal places.
0 <= x <= 1Must be a multiple of 0.010.65
Duration in seconds. Optional. Range 10–360. Only effective when model is V5_5 (Deprecated), V6, V6_WILD, or V6_MINI.
10 <= x <= 36020
Diversity of generated results. Optional. Integer from 0 to 4. Default: 1.
0: off — variety off, strictly the same style1: normal — default, balances stability and diversity2: high — results with clearly different styles3: extra — higher variation, bolder exploration4: max — maximum variation
0 <= x <= 4Must be a multiple of 11
Persona ID to apply to the generated music. Optional. You can use either:
- A Persona ID generated by the Generate Persona endpoint. Use
personaModel: style_personaor omitpersonaModelto use the default. - A
voiceIdgenerated by the Suno Voice workflow. When using a voice-generated ID, you must setpersonaModel: voice_persona.
"persona_123"
Persona model type to apply when using personaId. Optional.
style_persona(default): Use this for Persona IDs generated by the Generate Persona endpoint.voice_persona: Required whenpersonaIdis avoiceIdgenerated by Suno Voice. This option is only available with V5 (Deprecated), V5_5 (Deprecated), V6, V6_WILD, and V6_MINI models.
style_persona, voice_persona "style_persona"
Callbacks
POST{request.body#/callBackUrl}audioGenerated
Body
Response
Callback received successfully
Response status code
- 200: Success - Request has been processed successfully
- 400: Validation Error - Lyrics contained copyrighted material.
- 408: Rate Limited - Timeout.
- 413: Conflict - Uploaded audio matches existing work of art.
- 500: Server Error - An unexpected error occurred while processing the request
- 501: Audio generation failed.
- 531: Server Error - Sorry, the generation failed due to an issue. Your credits have been refunded. Please try again.
200, 400, 408, 413, 500, 501, 531 Error message when code != 200
"success"
Response
Request successful
Response Status Codes
- 200: Success - Request has been processed successfully
- 401: Unauthorized - Authentication credentials are missing or invalid
- 402: Insufficient Credits - Account does not have enough credits to perform the operation
- 404: Not Found - The requested resource or endpoint does not exist
- 409: Conflict - WAV record already exists
- 422: Validation Error - The request parameters failed validation checks
- 429: Rate Limited - Request limit has been exceeded for this resource
- 451: Unauthorized - Failed to fetch the image. Kindly verify any access limits set by you or your service provider
- 455: Service Unavailable - System is currently undergoing maintenance
- 500: Server Error - An unexpected error occurred while processing the request
200, 401, 402, 404, 409, 422, 429, 451, 455, 500 Error message when code != 200
"success"
Show child attributes
Show child attributes
