AI Music API
Home
Home
  1. producer
  • Introduction
  • Credits Usage Guide
  • AI Music API FAQ & Troubleshooting
  • Special Scenarios
  • Error handling
  • Webhook Integration Guide
  • sonic
    • Sonic Instructions
    • create / extend / cover music
      POST
    • upload and extend music
      POST
    • upload and cover music
      POST
    • create persona(Unavailable)
      POST
    • sample
      POST
    • mashup
      POST
    • get BPM
      POST
    • get VOX
      POST
    • get wav
      POST
    • get midi
      POST
    • get lyrics timeline
      POST
    • upsample tags
      POST
    • concat music
      POST
    • stems basic
      POST
    • stems full
      POST
    • remaster
      POST
    • replace section
      POST
    • add vocal
      POST
    • add instrumental
      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 Example
    • create music
      POST
    • upload
      POST
    • download
      POST
    • get task / poll result
      GET
  • nuro
    • Nuro Instruction
    • Error handling
    • create vocal music
    • create instrument music
    • get music
  • lyrics generation
    • Make Lyrics
  • get-credits
    GET
  • Schemas
    • 记录不存在
    • ExtendMusicRequest
    • ReplaceMusicRequest
    • 参数不正确
    • CreateTaskAccepted
    • ErrorResponse
  1. producer

Producer Instructions

Producer API#

The Producer API generates studio-quality music, lyrics, and music videos from a text prompt. It is well-suited for ambient, cinematic, electronic, and instrumental tracks where you want a single fixed-length output rather than the multi-clip / extend / cover workflow used elsewhere in the platform.
All Producer endpoints are asynchronous: you submit a request, receive a task_id, and either poll GET /api/v1/producer/task/{task_id} or register a webhook_url to be notified when the task completes.

Base URL#

https://api.aimusicapi.ai
Authenticate with a Bearer token in the Authorization header:

Endpoints#

MethodPathPurposeCost
POST/api/v1/producer/createGenerate a music clip from a text prompt10 credits
POST/api/v1/producer/lyrics-createGenerate lyrics from a text prompt1 credit
POST/api/v1/producer/video-clipRender a music video from an existing clip5 credits
POST/api/v1/producer/uploadSubmit an external audio URL for use as clip_id reference2 credits
POST/api/v1/producer/downloadRequest a re-encoded download (mp3 or wav) of an existing clip2 credits
GET/api/v1/producer/task/{task_id}Poll task status / retrieve resultsFree
Polling GET /api/v1/producer/task/{task_id} is free regardless of which producer endpoint started the task — make_lyrics, video_clip, upload, download, and music generation all use the same poll path.
Auto-refund on failure. If a task fails on the upstream provider side, the credits charged at submit time are automatically refunded to your account.

Task Types#

The task_type field on POST /api/v1/producer/create selects what the endpoint produces. Currently only create_music is supported on /create. The lyrics and video-clip operations have their own dedicated endpoints (/lyrics-create and /video-clip) and should not be invoked through /create.
The full set of task_type values that may appear in a polling response is:
task_typeStarted byDescription
create_musicPOST /api/v1/producer/createGenerates a music clip from a sound prompt and/or lyrics.
make_lyricsPOST /api/v1/producer/lyrics-createGenerates lyrics text from a prompt.
video_clipPOST /api/v1/producer/video-clipRenders a music video from an existing clip.
uploadPOST /api/v1/producer/uploadRegisters an external audio URL as a reference clip.
downloadPOST /api/v1/producer/downloadRe-encodes a clip into mp3 or wav for direct download.

Retired task types — return HTTP 410 Gone#

The following task_type values were supported on a previous version of this API and are now permanently retired by the upstream provider. Submitting any of them to POST /api/v1/producer/create returns HTTP 410 Gone with type: "endpoint_retired". There are no plans to bring them back.
cover_music
cover_upload_music
extend_music
extend_upload_music
replace_music
replace_upload_music
swap_music_vocals
swap_upload_music_vocals
swap_music_sound
swap_upload_music_sound
music_variation
If you previously used any of these, the recommended replacement is to call create_music with a fresh prompt — the new generation pipeline does not support stitching, replacing, or covering a prior clip.

Models (mv field)#

The mv field on POST /api/v1/producer/create selects the generation model. Default is FUZZ-2.0 if mv is omitted.
ValueNotes
FUZZ-3-DemoLatest demo model
FUZZ-2.0Default, balanced quality / latency
FUZZ-2.0 ProHigher quality, slower
FUZZ-2.0 RawLess post-processing, more "demo-tape" feel
FUZZ-1.1 ProLegacy, kept for backward compatibility
FUZZ-1.1Legacy
FUZZ-1.0 ProLegacy
FUZZ-1.0Legacy
FUZZ-0.8Legacy
Submitting any value outside this list returns 400 Bad Request with a validation error.

Output URLs#

Successful tasks return media files (audio_url, wav_url, image_url, video_url) hosted on our own CDN:
https://musicapi-cdn.b-cdn.net/producer/{clip_id}.m4a
https://musicapi-cdn.b-cdn.net/producer/{clip_id}-wav.wav
https://musicapi-cdn.b-cdn.net/producer/{clip_id}-img.jpg
https://musicapi-cdn.b-cdn.net/producer/{clip_id}-video.mp4
URLs are stable and cacheable. Files remain available indefinitely under our retention policy. You should not infer or rely on any other host — URL hosts may change between releases without notice.

Webhooks#

Every Producer endpoint accepts an optional webhook_url (HTTPS, ≤ 1024 chars) and webhook_secret. When the task completes (success or failure), we POST the polling response payload to the URL with an X-Webhook-Signature header containing the HMAC-SHA256 of the body using your secret.
Webhooks are best-effort with retries; if your endpoint returns non-2xx, we retry with exponential backoff for several attempts before giving up. Always also support polling as a fallback.

Common response envelope#

All polling responses share this shape:
{
  "code": 200,
  "message": "success",
  "data": [ /* one or more clip / lyrics / video objects */ ],
  "status": "SUCCESS"
}
status is one of: PENDING, RUNNING, SUCCESS, FAILED. Continue polling while the value is PENDING or RUNNING.

Errors#

HTTPtypeMeaning
400validation_errorA required field is missing, has the wrong type, or mv is not in the allowed list
401unauthorizedMissing or invalid Bearer token
402insufficient_creditsNot enough credits / wrong subscription tier
410endpoint_retiredtask_type is in the retired list above
429rate_limitedToo many in-flight tasks — wait and retry
500internal_errorServer-side fault
502upstream_errorThe underlying generation provider is unavailable — retry after a short backoff

Rate limits & concurrency#

Each account has a per-task-type concurrency limit. If you exceed it you'll get 429 rate_limited; back off and retry. Daily/monthly volume limits depend on your plan.
For high-volume workloads (>1k tasks/day), reach out at support@aimusicapi.ai to discuss enterprise pricing and dedicated rate limits.

Need Help?#

join our discord channel : https://discord.gg/UFT2J2XK7d
Modified at 2026-04-27 16:54:37
Previous
get music
Next
Complete Request Example
Built with