Upload and Cover Audio
Upload your own audio file and create an AI-powered cover version of it. The uploaded audio is analyzed for core melody, rhythm, and structure, then reinterpreted with Suno AI vocal and instrumental generation in entirely new genres.
How Audio Covering Works
Deeply analyzes pitch curves, tempo cadence, and song structure from your uploaded audio file.
Reimagines the composition into any targeted genre, from orchestral acoustic to heavy synthwave or pop-punk.
Synthesize expressive singing vocals with custom lyrics, or set instrumental: true for pure backing covers.
Supported AI Models
V6, V6_WILD, V6_MINI, V4Flagship model featuring richer instrumentation, natural vocals, and studio-grade mastering.
Pushes creative boundaries with bolder sonic transformations and radical genre reinventions.
Lightweight and swift execution, ideal for drafting multiple cover variations rapidly.
Validation Rules & Constraints
Source Audio Requirements
upload_urlis required and must be publicly accessible via HTTP/HTTPS.- Supported audio formats include MP3, WAV, and AAC.
- Maximum source audio file duration is 8 minutes (480 seconds).
- Do not pass image URLs; cover mode does not support simple reference images.
- Generated output tracks are stored on high-speed CDN and retained for 14 days.
Instrumental vs Vocal Mode
- If
instrumental: true: produces pure instrumental covers without vocals. Do not passlyricsorvocal_gender. - If
instrumental: false: useslyrics(or falls back toprompt) to synthesize vocal tracks. - V6 / V6_WILD / V6_MINI: Prompt / Lyrics ≤ 5,000 chars, Style ≤ 1,000 chars, Title ≤ 100 chars.
- V4: Prompt ≤ 3,000 chars, Style ≤ 200 chars, Title ≤ 80 chars.
Variety & Stylistic Controls (0 - 4)
0: Off
Strict adherence to exact original tags and rhythm.
1: Balanced (Default)
Harmonizes stability with fresh musical variations.
2: High
Pronounced variation in instrumental energy and hooks.
3: Extra
Bold departure from previous melodies and dynamics.
4: Max
Maximum divergence; radically reinterprets the track.
Authentication & Headers
| Header | Requirement | Description |
|---|---|---|
| Authorization | required | Bearer YOUR_API_KEY Secret API Key obtained from your Suno API dashboard. |
| Content-Type | required | application/json Request payload format. |
Request Body Schema
18 fieldsupload_urlstringrequiredPublicly accessible URL of the source audio file to cover (MP3, WAV, AAC). Maximum audio duration is 8 minutes (480 seconds).
modelstringoptionalSuno AI model version: "V6" (Default, refined details & natural vocals), "V6_WILD" (experimental deviation), "V6_MINI" (fast & lightweight), or "V4".
instrumentalbooleanoptionalWhether the generated cover track should be purely instrumental without vocals. When true, vocal parameters (lyrics, prompt, vocal_gender) are omitted.
taskTypestringoptionalTask routing identifier. Explicitly set to "upload_and_cover_audio".
promptstringoptionalDescription of desired audio, genre, or lyrical direction for generation. Max 5,000 characters for V6, max 3,000 for V4.
stylestringoptionalMusical genre, style tags, or instrumentation keywords (e.g. "Rock, Synthwave, Jazz Piano, 120 BPM"). Max 1,000 characters for V6, max 200 for V4.
titlestringoptionalTitle for the generated cover track (max 100 characters for V6, max 80 for V4).
lyricsstringoptionalCustom lyrics for the cover version. Takes priority over prompt as lyrics. Max 5,000 characters for V6.
negative_tagsstringoptionalGenres, instruments, or acoustic traits to exclude from generation.
vocal_genderstringoptionalVocal gender preference: "m" for male, "f" for female (increases probability; ignored when instrumental is true).
style_weightnumberoptionalStrength of adherence to specified style tags (range 0.0 to 1.0, up to 2 decimal places).
weirdness_constraintnumberoptionalCreative/experimental deviation control (range 0.0 to 1.0, up to 2 decimal places).
audio_weightnumberoptionalRelative weight of source audio melodic structure vs newly synthesized arrangement (range 0.0 to 1.0).
varietynumberoptionalDiversity and stylistic variation: 0 (exact style), 1 (normal / balanced, default), 2 (high diversity), 3 (extra exploration), 4 (max variation).
persona_idstringoptionalPersona ID or Suno Voice ID to apply consistent vocal character to the cover song.
persona_modelstringoptionalPersona model type: "style_persona" for Persona IDs, or "voice_persona" for Voice IDs.
custom_modebooleanoptionalEnable custom mode for explicit control over lyrics and acoustic tags.
callBackUrlstringoptionalPublic HTTPS webhook URL to receive asynchronous completion notifications across text, first, and complete generation stages.
When Callbacks Are Sent
The SongMesh API automatically triggers an HTTP POST request to your designated callBackUrl under these events:
- Source audio acoustic structure analyzed (callbackType: "text")
- First cover variation generated & streaming ready (callbackType: "first")
- All cover variations completed (callbackType: "complete")
- Task failed, audio unreadable, or file exceeds 8 minutes (code: 400, 408, 500, 501)
Webhook Payload Format
{
"code": 200,
"msg": "All generated successfully.",
"data": {
"callbackType": "complete",
"task_id": "8c4d12ef90ab34567812cdef90123456",
"data": [
{
"id": "c123bcde-5678-4901-abcd-ef0123456789",
"audio_url": "https://cdn.example.com/audio/cover_variation_1.mp3",
"stream_audio_url": "https://cdn.example.com/audio/cover_stream_1.m3u8",
"image_url": "https://cdn.example.com/cover/cover_art_1.jpeg",
"prompt": "Pop-Punk, Distorted Guitars, Energetic Drums, 160 BPM",
"model_name": "chirp-v4-5",
"title": "Acoustic Dreams (Pop Punk AI Cover)",
"createTime": 1786347000000,
"duration": 182.5,
"tags": "pop-punk, distorted guitars, energetic drums, 160 bpm",
"source_audio_url": "https://example.com/audio/source_acoustic_demo.mp3",
"source_image_url": "https://cdn.example.com/cover/source_cover.jpeg",
"source_stream_audio_url": "https://cdn.example.com/audio/source_stream"
},
{
"id": "c234cdef-6789-5012-bcde-f0123456789a",
"audio_url": "https://cdn.example.com/audio/cover_variation_2.mp3",
"stream_audio_url": "https://cdn.example.com/audio/cover_stream_2.m3u8",
"image_url": "https://cdn.example.com/cover/cover_art_2.jpeg",
"prompt": "Pop-Punk, Distorted Guitars, Energetic Drums, 160 BPM",
"model_name": "chirp-v4-5",
"title": "Acoustic Dreams (Pop Punk AI Cover)",
"createTime": 1786347000000,
"duration": 182.5,
"tags": "pop-punk, distorted guitars, energetic drums, 160 bpm",
"source_audio_url": "https://example.com/audio/source_acoustic_demo.mp3",
"source_image_url": "https://cdn.example.com/cover/source_cover.jpeg",
"source_stream_audio_url": "https://cdn.example.com/audio/source_stream"
}
]
}
}Callback Payload Fields
| Field | Type | Description |
|---|---|---|
code | integer | Status code (200: Success, 400: Validation error, 408: Timeout, 500: Server error, 501: Synthesis failed). |
msg | string | Execution message ("All generated successfully." or specific error reason). |
data.callbackType | string | Generation progress stage: "text" (cue parse), "first" (track 1 ready), or "complete" (all tracks ready). |
data.task_id | string | Unique task identifier corresponding to the taskId returned upon creation. |
data.data[] | array | Array of 2 generated cover audio objects containing MP3 download URLs, HLS stream URLs, and metadata. |
data.data[].audio_url | string | Direct high-fidelity MP3 download and streaming URL for the generated cover. |
data.data[].duration | number | Exact duration of the generated cover track in seconds. |
Receiver Implementation Example
// Next.js App Router Webhook Receiver (/api/webhook/suno/route.ts)
import { NextRequest, NextResponse } from 'next/server';
export async function POST(req: NextRequest) {
const payload = await req.json();
const { code, msg, data } = payload;
if (code === 200 && data) {
const { callbackType, task_id, data: tracks } = data;
console.log(`Received ${callbackType} callback for upload-and-cover task ${task_id}`);
if (callbackType === 'complete' && Array.isArray(tracks)) {
tracks.forEach((track, index) => {
console.log(`Cover ${index + 1}: ${track.title} - ${track.audio_url}`);
// Store finished cover songs in your database...
});
}
} else {
console.error(`Cover generation failed (${code}): ${msg}`);
}
return NextResponse.json({ received: true });
}Webhook Security Recommendation
Always verify incoming webhook payloads on your server. Respond with a 200 OK immediately after parsing the payload to prevent redundant delivery retries from the webhook dispatcher.
curl -X POST "https://api.sunoapi.top/api/v1/createTask" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"taskType": "upload_and_cover_audio",
"upload_url": "https://example.com/audio/source_acoustic_demo.mp3",
"title": "Acoustic Dreams (Pop Punk AI Cover)",
"style": "Pop-Punk, Distorted Guitars, Energetic Drums, 160 BPM",
"model": "V6",
"instrumental": false,
"vocal_gender": "f",
"variety": 1,
"callBackUrl": "https://api.yourdomain.com/webhook/suno"
}'{
"code": 200,
"msg": "success",
"data": {
"taskId": "8c4d12ef90ab34567812cdef90123456"
}
}Ready to integrate Upload and Cover Audio?
Create your account, obtain your API key, and begin generating AI covers of your custom audio files.