---
title: "Cover an existing music track"
method: POST
path: "/api/v1/producer/create"
tags: ["producer", "Producer"]
---

# Cover an existing music track

`POST /api/v1/producer/create`

## Request

- Base URL: `https://api.musicapi.ai`
- URL: `https://api.musicapi.ai/api/v1/producer/create`
- Auth: HTTP bearer

Reinterpret a previously generated or uploaded clip in a new style. The cover keeps the source clip's structural skeleton and re-records it according to your `instruction`. The `strength` parameter (0–1) controls how strongly the cover diverges from the original.

**Auto-refund:** if the upstream cover fails, the 12-credit charge is automatically refunded.

### Migration note
The legacy `cover_strength` field is still accepted and is treated as a back-compat alias for `strength`. Existing SDK calls continue to work without code changes. If neither field is provided, `strength` defaults to `0.5`.

## Request body

- CoverMusicRequest
  - `task_type` 'cover_music' | 'cover_upload_music', required: Use `cover_music` when the source `clip_id` came from `create_music`, `extend_music`, or `replace_music`. Use `cover_upload_music` when the source `clip_id` came from `POST /api/v1/producer/upload`.
  - `clip_id` string, required: ID of the source clip to cover. Obtained from a previous Producer task result or from `/api/v1/producer/upload`.
  - `instruction` string: Editorial guidance describing the desired style of the cover. **Recommended** — clearer than `sound` for describing how to reinterpret the source. If omitted, derived from `sound` and `lyrics` as a fallback.
  - `strength` number, float: Transformation intensity. Lower values stay closer to the original; higher values diverge more aggressively. Defaults to `0.5` if neither `strength` nor the legacy `cover_strength` is provided.
  - `cover_strength` number, float: Deprecated. Legacy alias for `strength`. Existing SDK calls that pass this field continue to work. If both `strength` and `cover_strength` are provided, `strength` wins.
  - `sound` string: Optional. Sound/style prompt. Used as fallback to derive `instruction` if `instruction` is not provided.
  - `lyrics` string: Optional. Used as fallback to derive `instruction` if neither `instruction` nor `sound` is provided.
  - `title` string: Optional. Title for the cover track.
  - `seed` string: Optional. Random seed for reproducible generation.
  - `mv` string: Optional. Model version. Defaults to `Lyria 3 Pro`. Legacy values (FUZZ-*) are accepted as aliases and silently routed to Lyria 3 Pro.
  - `webhook_url` string, uri: Optional. HTTPS URL to receive task completion/failure notifications.
  - `webhook_secret` string: Optional. Secret for signing webhook payloads with HMAC-SHA256. Only used when `webhook_url` is set.

## Response `200`

Task accepted. Poll `GET /api/v1/producer/task/{task_id}` for the result.

- CreateTaskAccepted
  - `message` string, required
  - `task_id` string, uuid, required: Public task ID. Use it to poll `GET /api/v1/producer/task/{task_id}` for the result.

## Other responses

- `400`: Validation error (missing clip_id, strength out of range, etc.)
- `401`: Missing or invalid Authorization header
- `403`: Insufficient credits or expired subscription
- `500`: Upstream or server error

---

[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)
