Music GenerationtaskType: upload_and_cover_audio30 Credits / Task

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.

POST/api/v1/createTask

How Audio Covering Works

Melodic Extraction

Deeply analyzes pitch curves, tempo cadence, and song structure from your uploaded audio file.

Acoustic Transformation

Reimagines the composition into any targeted genre, from orchestral acoustic to heavy synthwave or pop-punk.

Vocals or Instrumental

Synthesize expressive singing vocals with custom lyrics, or set instrumental: true for pure backing covers.

Supported AI Models

V6, V6_WILD, V6_MINI, V4
V6DEFAULT

Flagship model featuring richer instrumentation, natural vocals, and studio-grade mastering.

V6_WILDEXPERIMENTAL

Pushes creative boundaries with bolder sonic transformations and radical genre reinventions.

V6_MINIFAST

Lightweight and swift execution, ideal for drafting multiple cover variations rapidly.

Validation Rules & Constraints

Source Audio Requirements

  • upload_url is 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 pass lyrics or vocal_gender.
  • If instrumental: false: uses lyrics (or falls back to prompt) 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

HeaderRequirementDescription
Authorizationrequired

Bearer YOUR_API_KEY

Secret API Key obtained from your Suno API dashboard.

Content-Typerequired

application/json

Request payload format.

Request Body Schema

18 fields
upload_urlstringrequired

Publicly accessible URL of the source audio file to cover (MP3, WAV, AAC). Maximum audio duration is 8 minutes (480 seconds).

modelstringoptional
default:V6

Suno AI model version: "V6" (Default, refined details & natural vocals), "V6_WILD" (experimental deviation), "V6_MINI" (fast & lightweight), or "V4".

instrumentalbooleanoptional
default:false

Whether the generated cover track should be purely instrumental without vocals. When true, vocal parameters (lyrics, prompt, vocal_gender) are omitted.

taskTypestringoptional
default:upload_and_cover_audio

Task routing identifier. Explicitly set to "upload_and_cover_audio".

promptstringoptional

Description of desired audio, genre, or lyrical direction for generation. Max 5,000 characters for V6, max 3,000 for V4.

stylestringoptional

Musical genre, style tags, or instrumentation keywords (e.g. "Rock, Synthwave, Jazz Piano, 120 BPM"). Max 1,000 characters for V6, max 200 for V4.

titlestringoptional

Title for the generated cover track (max 100 characters for V6, max 80 for V4).

lyricsstringoptional

Custom lyrics for the cover version. Takes priority over prompt as lyrics. Max 5,000 characters for V6.

negative_tagsstringoptional

Genres, instruments, or acoustic traits to exclude from generation.

vocal_genderstringoptional

Vocal gender preference: "m" for male, "f" for female (increases probability; ignored when instrumental is true).

style_weightnumberoptional
default:0.65

Strength of adherence to specified style tags (range 0.0 to 1.0, up to 2 decimal places).

weirdness_constraintnumberoptional
default:0.65

Creative/experimental deviation control (range 0.0 to 1.0, up to 2 decimal places).

audio_weightnumberoptional
default:0.65

Relative weight of source audio melodic structure vs newly synthesized arrangement (range 0.0 to 1.0).

varietynumberoptional
default:1

Diversity and stylistic variation: 0 (exact style), 1 (normal / balanced, default), 2 (high diversity), 3 (extra exploration), 4 (max variation).

persona_idstringoptional

Persona ID or Suno Voice ID to apply consistent vocal character to the cover song.

persona_modelstringoptional
default:style_persona

Persona model type: "style_persona" for Persona IDs, or "voice_persona" for Voice IDs.

custom_modebooleanoptional
default:false

Enable custom mode for explicit control over lyrics and acoustic tags.

callBackUrlstringoptional

Public 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

Response Body(200 status)
{
  "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

FieldTypeDescription
codeintegerStatus code (200: Success, 400: Validation error, 408: Timeout, 500: Server error, 501: Synthesis failed).
msgstringExecution message ("All generated successfully." or specific error reason).
data.callbackTypestringGeneration progress stage: "text" (cue parse), "first" (track 1 ready), or "complete" (all tracks ready).
data.task_idstringUnique task identifier corresponding to the taskId returned upon creation.
data.data[]arrayArray of 2 generated cover audio objects containing MP3 download URLs, HLS stream URLs, and metadata.
data.data[].audio_urlstringDirect high-fidelity MP3 download and streaming URL for the generated cover.
data.data[].durationnumberExact duration of the generated cover track in seconds.

Receiver Implementation Example

Webhook Receiver
// 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.

Request Sample
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"
  }'
Response Body(200 status)
{
  "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.

Generate Secret Key