MiniMax API v1 now generates music. One endpoint — POST /music/create — covers three quite different ways of asking for a song.

Everything below is a single unedited call. No retries, no cherry-picking.

Table of contents

  1. An instrumental
  2. Lyrics written for you
  3. Your own lyrics
  4. About $0.01 a song
  5. Streaming

An instrumental

Set instrumental to true and describe the arrangement. Leaving lyrics empty is not enough on its own — without the flag the model writes its own words and sings them.

curl --location 'https://api.useapi.net/v1/minimax/music/create' \
--header 'Authorization: Bearer user:12345-…' \
--header 'Content-Type: application/json' \
--data '{
    "title": "Rain on Sixth Street",
    "prompt": "smoky late-night jazz instrumental, upright bass walking slow, brushed snare, muted trumpet playing a lonely melody, rhodes piano comping, rainy city club atmosphere, loose and unhurried, tape warmth",
    "instrumental": true,
    "model": "music-3.0"
}'

Two minutes twenty, and the lyrics field comes back empty — there is nothing to sing.

Lyrics written for you

Give it only a prompt and the model writes the words. The prompt field does two jobs at once: it carries the musical style and the subject. Say what the song should be about in the same sentence and it obliges.

curl --location 'https://api.useapi.net/v1/minimax/music/create' \
--header 'Authorization: Bearer user:12345-…' \
--header 'Content-Type: application/json' \
--data '{
    "title": "The Last Train Home",
    "prompt": "warm indie folk, fingerpicked acoustic guitar, male vocals, gentle brushed drums, nostalgic and unhurried, about a night shift worker riding the last train home through empty streets",
    "model": "music-3.0"
}'

Three minutes three, and the response carries the lyrics it invented — two verses, a pre-chorus, a bridge, and a chorus it returns to three times:

[Verse]
Punch the card and grab my coat
Losing buttons on my throat
The station floor is shining grey
Final hour of the day

[Post-Chorus]
Click-clack, the rhythm goes
Watch how the city glows
Click-clack, it's almost dawn
Before the stars are gone

[Post-Chorus] is not one of the section tags we document, which is the point — the tag list is what you can use to structure your own words. Left to itself the model structures the song however the song wants to go.

Your own lyrics

Supply lyrics and they are used verbatim. Structure them with tags on their own line — [Verse], [Pre-Chorus], [Chorus], [Bridge], [Outro] and the rest — and use the prompt for the sound.

curl --location 'https://api.useapi.net/v1/minimax/music/create' \
--header 'Authorization: Bearer user:12345-…' \
--header 'Content-Type: application/json' \
--data '{
    "title": "Paper Boats",
    "prompt": "dreamy synth-pop, female vocals, shimmering pads, steady mid-tempo beat, bittersweet",
    "lyrics": "[Verse]\nWe folded up the summer into paper boats\nSet them on the water, watched them barely float\nYou said nothing lasts, and I said that'\''s alright\nWe were only ever borrowing the light\n\n[Pre-Chorus]\nAnd the current took them one by one\nEverything we made came undone\n\n[Chorus]\nPaper boats, paper boats\nCarrying the things we never wrote\nLet them go, let them go\nSome of them were never meant to float\n\n[Verse]\nI keep one folded flat inside my coat\nA small white promise and a paper throat\nIt doesn'\''t sail, it doesn'\''t have to now\nIt just remembers how\n\n[Chorus]\nPaper boats, paper boats\nCarrying the things we never wrote\nLet them go, let them go\nSome of them were never meant to float\n\n[Outro]\nAh, ah, ah\nSome of them were never meant to float",
    "model": "music-3.0"
}'

Two minutes forty-eight, and the lyrics come back byte-for-byte as they went in. Wordless vocals work too — spell the syllables out, as the [Outro] above does.

About $0.01 a song

Music does not draw on the credits your video and image generations use. MiniMax bills audio separately: a new account gets a small allowance to try it, and past that you buy a MiniMax audio subscription — covering music and speech — from MiniMax directly. Budget for it alongside whatever you already spend there on video.

A song costs 300 credits, and bought as part of that audio subscription those 300 credits come to about $0.01.

Compare that with MiniMax’s own pay-as-you-go API, which charges $0.15 a composition, and $0.01 more if you want it to write the lyrics:

MiniMax plan $/month Songs included Cost per song vs. $0.15 API
Starter $5 333 $0.0150 10× cheaper
Creator $15 1 100 $0.0136 11× cheaper
Standard $30 2 500 $0.0120 12.5× cheaper
Pro $99 10 000 $0.0099 15× cheaper

The lyrics are free on top of that. On the pay-as-you-go API, model-written lyrics are a separate lyrics_generation call at $0.01 a song — a two-thirds surcharge on a $0.15 track. Here they are part of the same 300 credits, and they come back in the 201 response before any audio exists, so you can read the words the moment you submit. The Last Train Home above cost the same as the instrumental beside it.

One caveat: a plan is money up front, so at very low volume pay-as-you-go still wins — below roughly 31 songs a month the $5 Starter plan costs more than paying $0.16 a track. Above that the subscription is ahead, and configuring several accounts multiplies both the throughput and the allowance.

Streaming

Set stream to true and the response becomes a Server-Sent Events stream of MP3 chunks instead of JSON, so playback can start before the song is finished. Expect twenty to fifty seconds of silence before the first audio arrives, then continuous audio to the end. The streaming section has a worked example, including feeding the chunks straight into a MediaSource for live playback in a browser.

Otherwise the call returns a musicId immediately and you poll GET /music/musicId, or pass a replyUrl and we POST you the finished track. Everything comes back as 44.1 kHz stereo MP3 at 256 kbps.