---
title: "upload and cover music"
method: POST
path: "/api/v1/sonic/upload-cover"
tags: ["sonic"]
---

# upload and cover music

`POST /api/v1/sonic/upload-cover`

## Request

- Base URL: `https://api.musicapi.ai`
- URL: `https://api.musicapi.ai/api/v1/sonic/upload-cover`
- Auth: HTTP bearer

One-stop API to upload an audio file and create a cover version. This combines the upload and cover operations into a single request.

**Credits cost: 20** on every model.

## Request body

- object
  - `url` string, required: The online audio URL to upload. Must be a valid audio file URL.Max 8 min.
  - `mv` 'sonic-v6' | 'sonic-v6-wild' | 'sonic-v6-mini', required: Music model version. Suno retired v3.5 through v5.5 on 2026-09-09 and maps every retired id onto v6, so `sonic-v3-5`, `sonic-v4`, `sonic-v4-5`, `sonic-v4-5-plus`, `sonic-v5` and `sonic-v5-5` are still accepted and run v6 — existing integrations need no change.
  - `custom_mode` boolean, required: Set to true for custom lyrics mode (requires prompt), or false for AI description mode (requires gpt_description_prompt)
  - `prompt` string: Song lyrics. Required when custom_mode is true. Max 5000 chars
  - `gpt_description_prompt` string: AI description of the desired music style. Required when custom_mode is false
  - `title` string: Song title. Max 80 characters
  - `tags` string: Music style tags. Max 1000 chars
  - `negative_tags` string: Tags to avoid in the generated music
  - `make_instrumental` boolean: Set to true to generate instrumental music without vocals
  - `style_weight` number: Style weight between 0 and 1
  - `weirdness_constraint` number: Weirdness constraint between 0 and 1
  - `vocal_gender` 'f' | 'm': Vocal gender: 'f' for female, 'm' for male. Supported on every current model
  - `audio_weight` number: Audio weight between 0 and 1
  - `webhook_url` string: HTTPS URL to receive webhook notifications when the task completes
  - `webhook_secret` string: Secret key for webhook signature verification
  - `duration` integer: Target song length in seconds. Range 10-360. The generated track lands close to the requested length rather than exactly on it.

## Response `200`

Success

- object
  - `code` integer, required: Response code
  - `message` string, required: Response message
  - `task_id` string, required: Task ID for polling the result
  - `steps` object, required: Step-by-step execution results
    - `upload` object
      - `success` boolean
      - `clip_id` string
    - `cover` object
      - `success` boolean
      - `task_id` string

---

[API](https://skmtc.dev/musicapi/apis/musicapi-docs-suno-style-ai-music-generation-api.md) - [All operations](https://skmtc.dev/musicapi/apis/musicapi-docs-suno-style-ai-music-generation-api/llms.txt) - [OpenAPI document](https://skmtc.dev/musicapi/apis/musicapi-docs-suno-style-ai-music-generation-api/revisions/f94a2c7ed4a1?raw)
