Producer API provides advanced AI-powered music generation capabilities through a simple text-to-music interface. Generate, extend, remix, and manipulate audio tracks with professional-grade quality.
Base Path: /api/v1/producer/*
Producer API delivers music quality comparable to Suno v5, but with significantly faster generation times:
sound and lyrics/api/v1/producerAuthorization: Bearer <YOUR_MUSICAPI_KEY>Content-Type: application/jsonPOST /api/v1/producer/createGET /api/v1/producer/task/{task_id}POST /api/v1/producer/uploadPOST /api/v1/producer/downloadThe mv parameter accepts the following model versions:
| Model | Avg. Generation Time | Stability | Notes |
|---|---|---|---|
| FUZZ-2.0 Pro | ~20-30s | Stable (occasional retry needed) | High quality, recommended |
| FUZZ-2.0 (Default) | <30s | Very Stable | Default model, best balance |
| FUZZ-2.0 Raw | <30s | Very Stable | Raw/unprocessed output |
| FUZZ-1.1 Pro | 30-50s | Stable | Enhanced version of 1.1 |
| FUZZ-1.0 Pro | <30s | Very Stable | Enhanced version of 1.0 |
| FUZZ-1.0 | 30-50s | Stable | Previous stable release |
| FUZZ-1.1 | 30-50s | Occasional failures, retry recommended | |
| FUZZ-0.8 | 30-50s | Occasional failures, retry recommended | Legacy model |
| Lyria 3 preview | 30-50s | Occasional failures, retry recommended | Google Lyria 3, preview stage |
| FUZZ-3-Demo | 50-80s | Low success rate, retry recommended | Newest, demo stage |
| Model | Sample Audio |
|---|---|
| FUZZ-2.0 Pro | Listen |
| FUZZ-2.0 | Listen |
| FUZZ-2.0 Raw | Listen |
| FUZZ-1.1 Pro | Listen |
| FUZZ-1.0 Pro | Listen |
| FUZZ-1.0 | Listen |
| FUZZ-1.1 | Listen |
| FUZZ-0.8 | Listen |
| Lyria 3 preview | Listen |
| FUZZ-3-Demo | Listen |
| Model | Sample Audio |
|---|---|
| FUZZ-2.0 Pro | Listen |
| FUZZ-2.0 | Listen |
| FUZZ-2.0 Raw | Listen |
| FUZZ-1.1 Pro | Listen |
| FUZZ-1.0 Pro | Listen |
| FUZZ-1.0 | Listen |
| FUZZ-1.1 | Listen |
| FUZZ-0.8 | Listen |
| Lyria 3 preview | Listen |
| FUZZ-3-Demo | Listen |
Test date: 2026-02-23. Generation times are approximate and may vary.
| Parameter | Type | Required | Description |
|---|---|---|---|
task_type | string | Yes | Task type: create_music, extend_music, cover_music, replace_music, swap_music_vocals, swap_music_sound, music_variation |
sound | string | No* | Audio style prompt describing the desired sound. *Required if lyrics is empty |
lyrics | string | No* | Song lyrics text. *Required if sound is empty |
make_instrumental | boolean | No | Generate instrumental only (ignores lyrics). Default: false |
mv | string | No | Model version. See Available Models for full list. Default: FUZZ-2.0 |
title | string | No | Track title (max 80 characters) |
cover_url | string | No | Custom cover image URL |
seed | string | No | Random seed for reproducible generation |
lyrics_strength | number | No | Lyrics adherence strength (0-1). Default: 0.5 |
sound_strength | number | No | Sound prompt strength (0.2-1). Default: 0.5 |
weirdness | number | No | Creative variation level (0-1). Default: 0.5 |
clip_id | string | No** | Parent clip ID. **Required for: extend, cover, replace, swap, and variation tasks |
starts_at | number | No | Start time in seconds (extend default: 30; replace: start point of replacement) |
ends_at | number | No | End time in seconds (replace only; omit to replace until end) |
cover_strength | number | No | Cover intensity for cover/swap operations (0.2-1) |
webhook_url | string | No | HTTPS URL to receive task completion/failure notifications |
webhook_secret | string | No | Secret for signing webhook payloads (used with webhook_url) |
Important: The
soundparameter can be used independently to achieve prompt-based generation similar to description/prompt mode.
The Producer API requires high-quality, meaningful input to ensure successful generation. Please follow these guidelines carefully:
Due to the advanced nature of our AI models, low-quality or insufficient input may result in task failures. The system expects realistic, production-ready content to generate high-quality music. Random or placeholder content can cause generation errors and waste your credits.
Good Sound Prompts:
"Energetic rock anthem with distorted electric guitars, driving drums, and powerful vocals"
"Calm ambient meditation music with soft piano, gentle strings, and nature sounds"
"90s hip-hop beat with vinyl scratches, deep bass, and smooth jazz samples"
Good Lyrics:
[Verse 1]
Walking through the city lights
Feeling the rhythm of the night
Every step a new surprise
Under these electric skies
[Chorus]
We're alive, we're free tonight
Dancing till the morning light
Poor Examples (Avoid These):
sound: "music"
sound: "test"
lyrics: "la la la"
lyrics: "test lyrics here"
POST /api/v1/producer/create
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"task_type": "create_music",
"sound": "epic orchestral trailer with powerful choirs and dramatic strings",
"mv": "FUZZ-2.0"
}
POST /api/v1/producer/create
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"task_type": "create_music",
"sound": "Energetic pop rock with electric guitar",
"lyrics": "[Verse]\nWalking through the city lights\nFeeling like I own the night\n\n[Chorus]\nWe are unstoppable tonight",
"mv": "Lyria 3 preview",
"title": "Unstoppable"
}
POST /api/v1/producer/create
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"task_type": "extend_music",
"clip_id": "<previous-clip-id>",
"sound": "add soaring strings and uplifting orchestral build",
"starts_at": 45,
"mv": "FUZZ-2.0"
}
POST /api/v1/producer/create
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"task_type": "cover_music",
"clip_id": "<previous-clip-id>",
"sound": "emotional female ballad with piano accompaniment",
"lyrics": "[Chorus]\nHold on to me\nThrough the darkest nights",
"cover_url": "https://example.com/cover.jpg"
}
POST /api/v1/producer/create
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"task_type": "replace_music",
"clip_id": "<previous-clip-id>",
"sound": "heavy distorted guitar riff with driving drums",
"starts_at": 30,
"ends_at": 45
}
POST /api/v1/producer/create
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"task_type": "swap_music_vocals",
"clip_id": "<previous-clip-id>",
"sound": "smooth male pop vocal with subtle autotune effect",
"lyrics": "[Verse 1]\nYour lyrics here",
"cover_strength": 0.9
}
POST /api/v1/producer/create
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"task_type": "swap_music_sound",
"clip_id": "<previous-clip-id>",
"sound": "ambient atmospheric pads with soft piano melodies",
"lyrics": "[Verse 1]\nYour lyrics here",
"cover_strength": 0.6
}
POST /api/v1/producer/create
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"task_type": "music_variation",
"clip_id": "<previous-clip-id>"
}
POST /api/v1/producer/create
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"task_type": "create_music",
"sound": "chill lofi hip hop with soft piano and vinyl crackle",
"make_instrumental": true,
"mv": "FUZZ-2.0",
"title": "Late Night Study",
"webhook_url": "https://your-server.com/webhooks/music",
"webhook_secret": "your-secret-key"
}
When webhook_url is provided, the API will send a POST request to the URL when the task completes or fails. The webhook payload includes the task result. If webhook_secret is provided, the payload will be signed with HMAC-SHA256 for verification.
GET /api/v1/producer/task/{task_id}
Authorization: Bearer <YOUR_KEY>
{
"code": 200,
"data": [
{
"clip_id": "abc123",
"title": "Epic Orchestral Trailer",
"sound": "epic orchestral trailer with choirs",
"lyrics": "",
"image_url": "https://...",
"audio_url": "https://...",
"video_url": null,
"created_at": "2025-10-01T12:00:00Z",
"mv": "FUZZ-2.0",
"seed": "3966900172",
"duration": 30.5,
"state": "succeeded"
}
],
"message": "success"
}
{
"code": 202,
"type": "not_ready",
"error": "Task is still processing. Please wait a few seconds and try again."
}
{
"code": 500,
"error": "Internal Server Error"
}
| Code | Status | Description |
|---|---|---|
| 200 | OK | Task completed successfully |
| 202 | Accepted | Task is still processing, query again later |
| 400 | Bad Request | Invalid parameters or validation error |
| 401 | Unauthorized | Invalid or missing API key |
| 403 | Forbidden | Insufficient credits or permission denied |
| 404 | Not Found | Task not found |
| 429 | Too Many Requests | Concurrency limit reached |
| 500 | Internal Server Error | Server error occurred |
Upload your own audio for use with extend, cover, replace, and swap operations (costs 2 credits).
POST /api/v1/producer/upload
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"audio_url": "https://example.com/audio/song.mp3"
}
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
audio_url | string | Yes | Public URL of the audio file to upload |
webhook_url | string | No | HTTPS URL to receive upload completion notification |
webhook_secret | string | No | Secret for signing webhook payloads |
Response:
{ "message": "success", "task_id": "<uuid>" }
Poll GET /api/v1/producer/task/{task_id} until completion. The result will include clip_id, audio_url, and lyrics.
Use the returned clip_id with task types like extend_music, cover_music, replace_music, swap_music_vocals, or swap_music_sound.
Export an existing track to MP3 or WAV format (costs 2 credits).
POST /api/v1/producer/download
Authorization: Bearer <YOUR_KEY>
Content-Type: application/json
{
"clip_id": "370c650a-88cd-4f4b-960d-801e686c8a7a",
"format": "mp3"
}
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
clip_id | string | Yes | Music clip ID to download |
format | string | No | Download format: mp3 or wav. Default: mp3 |
Response:
{ "message": "success", "task_id": "<uuid>" }
Poll GET /api/v1/producer/task/{task_id} until completion. The result will include audio_url with the download link.
webhook_url to receive notifications instead of pollingseed parameter for consistent results during testing and A/B testingsound_strength (0.2-1.0) and lyrics_strength (0-1.0) to control output characteristicsweirdness parameter sparingly (0-1.0) - higher values increase variation but reduce predictability