MusicAPI
HomeDocs
HomeDocs
  1. producer
  • Introduction
  • Credits Usage Guide
  • Music API FAQ & Troubleshooting
  • Special Scenarios
  • Error handling
  • Webhook Integration Guide
  • sonic
    • Sonic Instructions
    • create / extend / cover / remaster / add vocals / add instrumental
      POST
    • upload and extend music
      POST
    • upload and cover music
      POST
    • create persona
      POST
    • sample
      POST
    • mashup
      POST
    • get BPM
      POST
    • get VOX
      POST
    • get wav
      POST
    • get midi
      POST
    • get lyrics timeline
      POST
    • upsample tags
      POST
    • stems basic
      POST
    • stems full
      POST
    • replace section
      POST
    • upload music
      POST
    • create voice
      POST
    • get music
      GET
  • riffusion(Deprecated)
    • Riffusion instructions
    • create music (with lyrics)
    • create music (with description)
    • cover music
    • extend music
    • replace music section
    • swap music sound
    • swap music vocals
    • upload
    • get music
  • producer
    • Producer instructions
    • Complete Request Examples
    • create music
      POST
    • upload
      POST
    • download
      POST
    • get music
      GET
    • Extend an existing music track
      POST
    • Replace a section of an existing music track
      POST
    • Cover an existing music track
      POST
  • studio(Unavailable)
    • Studio Instructions
    • description mode (Use case1)
    • extend mode (Use case2)
    • custom mode (Use case3)
    • instrumental mode (Use case4)
    • get music
  • lyrics generation
    • Make Lyrics
  • nuro
    • Nuro Instruction
    • Error handling
    • create vocal music
    • create instrument music
    • get music
  • get-credits
    GET
  • Schemas
    • ExtendMusicRequest
    • ReplaceMusicRequest
    • 记录不存在
    • CoverMusicRequest
    • CreateTaskAccepted
    • 参数不正确
    • ErrorResponse
  1. producer

Producer instructions

Producer Instructions#

Producer API Documentation#

Producer API provides advanced AI-powered music generation capabilities through a simple text-to-music interface. Generate, extend, cover, and modify audio tracks with professional-grade quality powered by Google Lyria 3 Pro.
Base Path: /api/v1/producer/*

⚠️ Migration Notice (2026-04, updated 2026-05)#

Producer API is powered by Google Lyria 3 Pro. The legacy FUZZ-* models have been retired upstream and are silently aliased to Lyria 3 Pro — your existing SDK calls continue to work without code changes.
cover_music is supported again (re-enabled 2026-05-20 after a brief gap during the April migration). It accepts a new strength parameter (0–1); the legacy cover_strength field is kept as an alias for back-compat.
The following operations remain unsupported and return HTTP 410 Gone:
music_variation — no direct replacement; re-run create_music with the same prompt and a different seed for an alternate version.
swap_music_vocals — use replace_music targeting the vocals time window.
swap_music_sound — use replace_music targeting the instrumental time window.
The advanced parameters make_instrumental, lyrics_strength, sound_strength, and weirdness are accepted at the API surface for backwards compatibility but are silently ignored — Lyria 3 Pro does not support them. To produce instrumental output, include "instrumental, no vocals" in your sound prompt and leave lyrics empty.

Why Choose Producer API?#

Suno v5 Quality at Lightning Speed#

Producer API delivers music quality comparable to Suno v5, with fast generation times:
Quality: Powered by Google Lyria 3 Pro — studio-grade music with strong clarity, dynamics, and musical coherence
Speed: Generate tracks in ~30 seconds vs. typical 2-3 minutes with other platforms
Cost-Effective: 12 credits per task with consistent pricing

Key Features#

High-Quality Music Generation - Create vocals, instrumentals, and full tracks with studio-quality output matching Suno v5 standards
Google Lyria 3 Pro - Production-ready Google text-to-music model delivering exceptional quality with strong processing efficiency
Ultra-Fast Generation - Generate professional tracks in approximately 30 seconds
Core Operations - Create, extend, replace, and cover tracks with new sound or lyrics
Simple Interface - Intuitive API with two core parameters: sound and lyrics
Webhook Support - Optional webhook notifications for task completion
Predictable Pricing - Flat 12 credits per task

Authentication & Endpoints#

Base Configuration#

Base URL: /api/v1/producer
Required Headers:
Authorization: Bearer <YOUR_MUSICAPI_KEY>
Content-Type: application/json

Available Endpoints#

Create Task: POST /api/v1/producer/create
Query Task: GET /api/v1/producer/task/{task_id}
Upload Audio: POST /api/v1/producer/upload
Download Audio: POST /api/v1/producer/download

Pricing & Rate Limits#

Cost: 12 credits per task (create, extend, replace, cover), upload/download cost 2 credits per task.
Query Tasks: Free - no credit cost for checking task status
Rate Limits: Please implement reasonable polling intervals to avoid excessive requests
Auto-refund: If an upload, download, extend, replace, or cover task fails upstream, the credits are refunded automatically — no action needed on your side.

Available Models#

The mv parameter accepts the following model:
ModelAvg. Generation TimeNotes
Lyria 3 Pro (Default)~30sGoogle Lyria 3 production-ready model — vocals, instrumentals, and full tracks

Backwards Compatibility#

Legacy mv values from the previous platform are still accepted at the API surface and silently mapped to Lyria 3 Pro. You do not need to update existing SDK calls.
Aliased values: FUZZ-2.0, FUZZ-2.0 Pro, FUZZ-2.0 Raw, FUZZ-1.1 Pro, FUZZ-1.0 Pro, FUZZ-1.1, FUZZ-1.0, FUZZ-0.8, FUZZ-3-Demo, Lyria 3 preview. All of these will be processed as Lyria 3 Pro.

Sample Outputs#

The samples below were generated under the legacy FUZZ models and are kept here for reference only. New generations use Lyria 3 Pro and are not directly comparable to these clips.

Instrumental (prompt: "A chill lofi hip hop beat with soft piano and vinyl crackle")#

ModelSample Audio
FUZZ-2.0 ProListen
FUZZ-2.0Listen
FUZZ-2.0 RawListen
FUZZ-1.1 ProListen
FUZZ-1.0 ProListen
FUZZ-1.0Listen
FUZZ-1.1Listen
FUZZ-0.8Listen
Lyria 3 previewListen
FUZZ-3-DemoListen

Vocal (prompt: "Energetic pop rock with electric guitar and drums", with lyrics)#

ModelSample Audio
FUZZ-2.0 ProListen
FUZZ-2.0Listen
FUZZ-2.0 RawListen
FUZZ-1.1 ProListen
FUZZ-1.0 ProListen
FUZZ-1.0Listen
FUZZ-1.1Listen
FUZZ-0.8Listen
Lyria 3 previewListen
FUZZ-3-DemoListen
Test date: 2026-02-23. Generation times are approximate and may vary.

API Parameters#

Request Body Schema#

ParameterTypeRequiredDescription
task_typestringYesTask type: create_music, extend_music, replace_music, cover_music, or cover_upload_music
soundstringNo*Audio style prompt describing the desired sound. *Required if lyrics is empty
lyricsstringNo*Song lyrics text. *Required if sound is empty
mvstringNoModel version. Defaults to Lyria 3 Pro. Legacy values (FUZZ-*) are accepted as aliases. See Available Models.
titlestringNoTrack title (max 80 characters)
seedstringNoRandom seed for reproducible generation
bpmstring | numberNoTarget beats per minute (≥ 1)
lengthintegerNoTarget duration in seconds (1–240)
instructionstringConditionalEdit/extension/cover guidance. Required for extend_music, replace_music, and cover_music if sound/lyrics are not provided as fallback.
clip_idstringNo**Parent clip ID. **Required for: extend_music, replace_music, cover_music, cover_upload_music
starts_atnumberNo***For extend_music: time in source clip where extension begins. For replace_music: replacement window start. ***Required for replace_music
ends_atnumberNo***For replace_music: replacement window end (must exceed starts_at). ***Required for replace_music
strengthnumberNo****For cover_music / cover_upload_music: transformation intensity (0–1). Defaults to 0.5 if neither strength nor legacy cover_strength is provided.
webhook_urlstringNoHTTPS URL to receive task completion/failure notifications
webhook_secretstringNoSecret for signing webhook payloads (used with webhook_url)
Important: The sound parameter can be used independently to achieve prompt-based generation similar to description/prompt mode.

Deprecated Parameters#

The following parameters are accepted for backwards compatibility but silently ignored — Lyria 3 Pro does not support them:
make_instrumental — to produce instrumentals, leave lyrics empty and include "instrumental, no vocals" in your sound prompt.
lyrics_strength, sound_strength, weirdness — Lyria infers these from prompt quality.
cover_url — cover-art generation control has been removed.
Legacy alias kept: cover_strength is accepted as a legacy alias for the new strength parameter on cover_music. Existing SDK calls that pass cover_strength continue to work without code changes.

Critical Parameter Guidelines#

The Producer API requires high-quality, meaningful input to ensure successful generation. Please follow these guidelines carefully:

Sound Parameter#

DO: Provide detailed, descriptive prompts (e.g., "upbeat pop song with electronic synths and catchy melody")
DO: Use specific musical terminology (genres, instruments, mood, tempo)
DO: Write at least 5-10 words for better results
DON'T: Use vague or minimal text (e.g., "music", "song", "test")
DON'T: Submit random characters or placeholder text
DON'T: Leave it empty unless lyrics are provided

Lyrics Parameter#

DO: Provide complete, well-structured lyrics with proper formatting
DO: Include verse/chorus markers (e.g., "[Verse 1]", "[Chorus]")
DO: Write meaningful, coherent lyrics (at least 20-30 words minimum)
DON'T: Submit incomplete fragments or single words
DON'T: Use nonsensical or random text as lyrics
DON'T: Submit test strings like "test", "aaa", "123"

Why This Matters#

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.

Examples#

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"
"Instrumental cinematic orchestral piece, no vocals, sweeping strings and brass"
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"

Usage Examples#

1. Create Music (Sound Only)#

2. Create Music with Lyrics#

3. Create Instrumental Track#

4. Extend Music#

5. Replace Music Section#

6. Cover an Existing Track#

strength is in the range 0–1 and controls how strongly the cover transforms the source clip — lower values stay closer to the original, higher values diverge more aggressively. Use cover_upload_music instead when the clip_id came from /api/v1/producer/upload.

7. Create with Webhook#

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.

Task Query & Response#

Query Task Status#

Response Examples#

Success (200 OK)#

{
  "code": 200,
  "data": [
    {
      "clip_id": "abc123",
      "title": "Epic Orchestral Trailer",
      "sound": null,
      "lyrics": null,
      "lyrics_id": "e59f87f2-2252-5d52-b60d-6f00cfab6041",
      "lyrics_timing_markers": [[0, 0], [5, 9.874], [7, 19.748]],
      "image_url": "https://storage.googleapis.com/producer-app-public/assets/...jpg",
      "audio_url": "https://storage.googleapis.com/producer-app-public/clips/...m4a",
      "wav_url": "https://storage.googleapis.com/producer-app-public/clips/...wav",
      "video_url": null,
      "created_at": "2026-04-27T14:11:57.984846Z",
      "mv": null,
      "seed": null,
      "duration": null,
      "state": "succeeded"
    }
  ],
  "message": "success"
}
Note on Lyria 3 Pro responses: sound, lyrics, mv, seed, and duration may be null because the upstream does not echo these back. The new fields wav_url, lyrics_id, and lyrics_timing_markers are exposed when available.

Processing (202 Accepted)#

{
  "code": 202,
  "type": "not_ready",
  "error": "Task is still processing. Please wait a few seconds and try again."
}

Deprecated Operation (410 Gone)#

{
  "type": "endpoint_deprecated",
  "error": "'swap_music_vocals' is no longer supported by the upstream model platform. Use 'replace_music' with start_s/end_s targeting the vocals segment to achieve a similar effect.",
  "docs": "https://docs.musicapi.ai"
}

Error (500 Internal Server Error)#

{
  "code": 500,
  "error": "Internal Server Error"
}

HTTP Status Codes#

CodeStatusDescription
200OKTask completed successfully
202AcceptedTask is still processing, query again later
400Bad RequestInvalid parameters or validation error
401UnauthorizedInvalid or missing API key
403ForbiddenInsufficient credits or permission denied
404Not FoundTask not found
410GoneOperation has been retired upstream (music_variation, swap_music_vocals, swap_music_sound)
429Too Many RequestsConcurrency limit reached
500Internal Server ErrorServer error occurred

Upload & Download#

Upload Audio#

Upload your own audio for use with extend_music, replace_music, or cover_upload_music operations (costs 2 credits).
Parameters:
ParameterTypeRequiredDescription
audio_urlstringYesPublic URL of the audio file to upload
webhook_urlstringNoHTTPS URL to receive upload completion notification
webhook_secretstringNoSecret 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 extend_music, replace_music, or cover_upload_music.
Auto-refund: If the upstream upload fails, the 2-credit charge is automatically refunded.

Download MP3/WAV#

Export an existing track to MP3 or WAV format (costs 2 credits).
Parameters:
ParameterTypeRequiredDescription
clip_idstringYesMusic clip ID to download
formatstringNoDownload 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.
Auto-refund: If the upstream download fails, the 2-credit charge is automatically refunded.

Best Practices#

Polling Strategy#

Recommended interval: Query task status every 5-10 seconds
Fast completion: Most tasks complete within 30-60 seconds
Timeout: Consider implementing a timeout after 2-3 minutes for optimal UX
Error handling: Implement exponential backoff for rate limiting
Webhook alternative: Use webhook_url to receive notifications instead of polling

Optimization Tips#

Reproducibility: Use the seed parameter for consistent results during testing and A/B testing
Tempo control: Set bpm for tracks that need to match a specific tempo (e.g., DJ mixes, fitness videos)
Length control: Set length (1–240 seconds) to bound the duration of the generated clip
Instrumental output: Include "instrumental, no vocals" in sound and leave lyrics empty — Lyria responds well to explicit "no vocals" cues in the prompt
Edit guidance: For extend_music and replace_music, supplying an explicit instruction produces better results than relying on the sound/lyrics fallback

Performance Advantages#

Rapid iteration: ~30 second generation time enables real-time creative workflows
Batch processing: Process multiple tracks simultaneously without long wait times
Production ready: Consistent Suno v5-level quality with enterprise-grade reliability

Credit Management#

Flat pricing: 12 credits per generation task
Upload/Download: 2 credits per task
Free queries: Task status checks never consume credits - poll as needed
Auto-refund: Failed upstream tasks are refunded automatically without manual intervention
Batch operations: Check credit balance before initiating multiple concurrent tasks

Need Help?#

join our telegram group : https://t.me/+FWW3QwxcOUQxZjU9
Modified at 2026-05-20 10:09:29
Previous
get music
Next
Complete Request Examples
Built with