Skip to content

Upload And Cover Audio

POST

/api/v1/generate/upload-cover

This API creates a cover version of an audio track by transforming it into a new style while retaining its core melody. It incorporates Suno's upload capability, enabling users to upload an audio file for processing. The expected result is a refreshed audio track with a new style, keeping the original melody intact.

Parameter Usage Guide #

Character Limits

Character limits vary depending on the model version:

Model V5_5 and V5: style (max 1000 chars), title (max 100 chars), prompt (max 5000 chars)

Models V4.5PLUS and V4.5: style (max 1000 chars), title (max 100 chars), prompt (max 5000 chars)

Model V4.5ALL: style (max 1000 chars), title (max 80 chars), prompt (max 5000 chars)

Model V4: style (max 200 chars), title (max 80 chars), prompt (max 3000 chars)

When customMode is true (Custom Mode):

If instrumental is true: style, title, and uploadUrl are required.

If instrumental is false: style, prompt, title, and uploadUrl are required.

Character limits vary by model version (see note above).

uploadUrl is used to specify the upload location of the audio file; ensure the uploaded audio does not exceed 8 minutes in length.

When customMode is false (Non-custom Mode):

Only prompt and uploadUrl are required, regardless of the instrumental setting.

prompt length limit: 500 characters.

Other parameters should be left empty.

Developer Notes #

Quick Start for New Users: Set customMode to false, instrumental to false, and provide only prompt and uploadUrl. This is the simplest configuration to quickly test the API and experience the results.

Generated files will be deleted after 15 days.

Ensure all required parameters are provided based on the customMode and instrumental settings to avoid errors.

Pay attention to character limits for prompt, style, and title to ensure successful processing.

Callback Process Stages: The callback process has three stages: text (text generation complete), first (first track complete), and complete (all tracks complete).

Active Status Check: You can use the Get Music Generation Details endpoint to actively check the task status instead of waiting for callbacks.

The uploadUrl parameter is used to specify the upload location of the audio file; please provide a valid URL.

Optional Parameters #

vocalGender (string): Vocal gender preference. Use m for male, f for female.

styleWeight (number): Strength of adherence to style. Range 0-1, up to 2 decimal places. Example: 0.65.

weirdnessConstraint (number): Controls creative deviation. Range 0-1, up to 2 decimal places. Example: 0.65.

audioWeight (number): Balance weight for audio features. Range 0-1, up to 2 decimal places. Example: 0.65.

personaId (string): Persona ID to apply to the generated music. Only available when Custom Mode is enabled (i.e., customMode is true). To create one, use Generate Persona.

Callbacks

audioGenerated

POST

Request

Authorization

Bearer Token

Provide your bearer token in the Authorization header when making requests to protected resources.

Example:

Authorization: Bearer ********************

or

Body Params application/jsonRequired

Generate Code

uploadUrl

string<uri>

required

The URL for uploading audio files, required regardless of whether customMode and instrumental are true or false. Ensure the uploaded audio does not exceed 8 minutes in length.

Example: https://storage.example.com/upload

prompt

string

required

A description of the desired audio content.

In Custom Mode (customMode: true): Required if instrumental is false. The prompt will be strictly used as the lyrics and sung in the generated track. Character limits by model:

V5_5 & V5: Maximum 5000 characters

V4_5PLUS & V4_5: Maximum 5000 characters

V4_5ALL: Maximum 5000 characters

V4: Maximum 3000 characters

Example: "A calm and relaxing piano track with soft melodies"

In Non-custom Mode (customMode: false): Always required. The prompt serves as the core idea, and lyrics will be automatically generated based on it (not strictly matching the input). Max length: 500 characters.

Example: "A short relaxing piano tune"

Example: A calm and relaxing piano track with soft melodies

style

string

optional

The music style or genre for the audio.

Required in Custom Mode (customMode: true). Examples: "Jazz", "Classical", "Electronic". Character limits by model:

V5_5 & V5: Maximum 1000 characters

V4_5PLUS & V4_5: Maximum 1000 characters

V4_5ALL: Maximum 1000 characters

V4: Maximum 200 characters

Example: "Classical"

In Non-custom Mode (customMode: false): Leave empty.

Example: Classical

title

string

optional

The title of the generated music track.

Required in Custom Mode (customMode: true). Character limits by model:

V5_5 & V5: Maximum 100 characters

V4_5PLUS & V4_5: Maximum 100 characters

V4_5ALL: Maximum 80 characters

V4: Maximum 80 characters

Example: "Peaceful Piano Meditation"

In Non-custom Mode (customMode: false): Leave empty.

Example: Peaceful Piano Meditation

customMode

boolean

required

Enables Custom Mode for advanced audio generation settings.

Set to true to use Custom Mode (requires style and title; prompt required if instrumental is false). The prompt will be strictly used as lyrics if instrumental is false.

Set to false for Non-custom Mode (only prompt is required). Lyrics will be auto-generated based on the prompt.

Example: true

instrumental

boolean

required

Determines if the audio should be instrumental (no lyrics).

In Custom Mode (customMode: true):

If true: Only style and title are required.

If false: style, title, and prompt are required (with prompt used as the exact lyrics).

In Non-custom Mode (customMode: false): No impact on required fields (prompt only). Lyrics are auto-generated if instrumental is false.

Example: true

model

enum<string>

required

The AI model version to use for generation.

Required for all requests.

Available options:

V5_5:Custom Models Tailored to Your Unique Taste.

V5: Superior musical expression, faster generation.

V4_5PLUS: V4.5+ delivers richer sound, new ways to create, max 8 min.

V4_5: V4.5 enables smarter prompts, faster generations, max 8 min.

V4_5ALL: V4.5ALL enables smarter prompts, faster generations, max 8 min.

V4: V4 improves vocal quality, max 4 min.

Allowed values: V4V4_5V4_5PLUSV4_5ALLV5V5_5

Example: V4

negativeTags

string

optional

Music styles or traits to exclude from the generated audio.

Optional. Use to avoid specific styles.

Example: "Heavy Metal, Upbeat Drums"

Example: Heavy Metal, Upbeat Drums

callBackUrl

string<uri>

required

The URL to receive audio covering task completion updates. Required for all audio covering requests.

System will POST task status and results to this URL when audio covering completes

Callback includes generated covered audio files with new style while preserving original melody

Your callback endpoint should accept POST requests with JSON payload containing covered track results and audio URLs

For detailed callback format and implementation guide, see Audio Covering Callbacks

Alternatively, use the Get Music Details endpoint to poll task status

To ensure callback security, see Webhook Verification Guide for signature verification implementation

Example: https://api.example.com/callback

vocalGender

enum<string>

optional

Vocal gender preference for the singing voice. Optional. Use 'm' for male and 'f' for female. Note: This parameter is only effective when customMode is true. Based on practice, this parameter can only increase the probability but cannot guarantee adherence to male/female voice instructions.

Allowed values: mf

Example: m

styleWeight

number

optional

Strength of adherence to the specified style. Optional. Range 0-1, up to 2 decimal places.

= 0<= 1

Example: 0.65

Multiple of: 0.01

weirdnessConstraint

number

optional

Controls experimental/creative deviation. Optional. Range 0-1, up to 2 decimal places.

= 0<= 1

Example: 0.65

Multiple of: 0.01

audioWeight

number

optional

Balance weight for audio features vs. other factors. Optional. Range 0-1, up to 2 decimal places.

= 0<= 1

Example: 0.65

Multiple of: 0.01

personaId

string

optional

Only available when Custom Mode (customMode: true) is enabled. Persona ID or Voice ID to apply to the generated music. Optional. Use this to apply a specific persona style to your music generation.To generate a persona ID, use the Generate Persona endpoint to create a personalized music Persona based on generated music.To generate a Voice ID, use the Generate Voice endpoint

Example: persona_123

personaModel

enum<string>

optional

The persona model is only available for models version 5 and 5.5.

Allowed values: voice_personastyle_persona

Examples

Responses

🟢200

application/json

Request successful

Bodyapplication/json

Generate Code

code

enum<integer>

optional

Response status code

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

Allowed values: 200401402404409422429451455500

msg

string

optional

Error message when code != 200

Example: success

data

object

optional

taskId

string

optional

Task ID for tracking task status

Example: 5c79****be8e

🔴500Error

Request Request Example

Shell

JavaScript

Java

Swift

Go

PHP

Python

HTTP

C

C#

Objective-C

Ruby

OCaml

Dart

R

cURLcURL-WindowsHttpiewgetPowerShell

curl --location 'https://api.kie.ai/api/v1/generate/upload-cover' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
  "uploadUrl": "https://storage.example.com/upload",
  "prompt": "A calm and relaxing piano track with soft melodies",
  "customMode": true,
  "instrumental": true,
  "model": "V4",
  "callBackUrl": "https://api.example.com/callback",
  "style": "Classical",
  "title": "Peaceful Piano Meditation",
  "negativeTags": "Heavy Metal, Upbeat Drums",
  "vocalGender": "m",
  "styleWeight": 0.65,
  "weirdnessConstraint": 0.65,
  "audioWeight": 0.65,
  "personaId": "persona_123",
  "personaModel": "style_persona"
}'

Response Response Example

200 - Example 1

{
    "code": 200,
    "msg": "success",
    "data": {
        "taskId": "5c79****be8e"
    }
}

Self-contained reference. Not affiliated with kie.ai.