Source: https://ailoot.ai/models/en/minimax-music-2-0/
Canonical: https://ailoot.ai/models/en/minimax-music-2-0/
Language: en

# MiniMax: Music 2.0

[Markdown](https://ailoot.ai/models/en/minimax-music-2-0/index.md) · [JSON](https://ailoot.ai/models/en/minimax-music-2-0/facts.json)

## [MiniMax: Music 2.0](https://ailoot.ai/models/en/minimax-music-2-0/)

MiniMax Music 2.0 generates music from a style-and-mood prompt and supplied lyrics. Its synchronous music profile accepts 10–2,000 prompt characters, 10–3,500 lyric characters and MP3 or WAV output.

- [**Ailoot Ultra · Music** `POST /v1/music/generations` `minimax/music-2.0`](https://ailoot.ai/models/en/minimax-music-2-0/#method-0)
- [**Ailoot Ultra · Music** `POST /v1/music/generations` `music-2.0`](https://ailoot.ai/models/en/minimax-music-2-0/#method-1)

About the model

This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.

MiniMax Music 2.0 creates music from a written musical brief and lyrics. Select minimax/music-2.0 for this exact edition; music-2.0 is its configured alias. Its music method uses a JSON request with model, prompt and lyrics and produces generated audio. Use it to turn a written song concept into a listening draft, set supplied lyrics to music or explore a composition before further editing.

Use prompt to describe the musical style, mood and setting, and lyrics for the words to be sung. A useful brief might ask for an introspective folk song for a quiet cafe, with a verse that establishes the scene and a chorus that repeats its central idea. Keep the musical direction in prompt and the intended lines in lyrics so the text has a clear role in the composition.

For Music 2.0, prompt must contain 10–2,000 characters and lyrics must contain 10–3,500 characters. Include both text fields in the request along with the selected model. Use the prompt space for the musical choices that matter, then give the full intended words in lyrics. A compact but complete brief is easier to compare with the returned song than unrelated instructions spread across both fields.

Separate lyric lines with newline characters. Section labels such as \[Intro\], \[Verse\], \[Pre Chorus\], \[Chorus\], \[Bridge\] and \[Outro\] can identify the intended structure; the documented set also includes \[Interlude\], \[Post Chorus\], \[Transition\], \[Break\], \[Hook\], \[Build Up\], \[Inst\] and \[Solo\]. Place the actual words beneath their section labels and keep repeated sections deliberate. These markers give the composition a structure to work from; review how the completed song actually realizes the transitions and repetitions.

The audio\_setting object offers sample\_rate values of 16000, 24000, 32000 or 44100, bitrate values of 32000, 64000, 128000 or 256000, and format values mp3 or wav. Choose the file settings for the next editing or playback step and keep them with the brief. The published example requests 44100, 256000 and mp3; those are example selections rather than universal defaults for all three fields.

The selected music workflow is synchronous and non-streaming. The documented output\_format choices are url and hex, with hex as the schema default; the selected example explicitly requests url. For URL output, use the returned Ailoot link to download the saved audio. A hex result represents audio bytes that must be decoded into the selected file format before playback. The response may contain both audio and audio\_url locations for one generated audio; preserve that result as one song.

Save the completed audio with its lyrics, musical brief, exact model ID and requested file settings. Listen for the intended words, section order and musical direction before placing it in a project. If a request ends without a complete result, retain its original request identity and response information for a result check; an automatic replacement request can create another song. A revision can change a specific lyric or musical instruction while preserving the rest of the brief for comparison.

**Ailoot Ultra · Music** `POST /v1/music/generations` `minimax/music-2.0`

[`minimax/music-2.0`](https://ailoot.ai/models/en/#m=minimax%2Fmusic-2.0&route=Ultra&caller=minimax%2Fmusic-2.0&fmt=music)

MiniMax /`minimax/music-2.0`

Model ID

- `minimax/music-2.0`
- `music-2.0`

### Overview

MiniMax Music 2.0 generates music from a style-and-mood prompt and supplied lyrics. Its synchronous music profile accepts 10–2,000 prompt characters, 10–3,500 lyric characters and MP3 or WAV output.

Accepted inputs

Text

Results

Audio

### Available in Ailoot · inputs & methods

**Ailoot Ultra · Music** `POST /v1/music/generations`

Input types

`text`

Output types

`audio`

Output format

mp3,wav

| Field | Type | Requirement | Values & limits | Default |
| --- | --- | --- | --- | --- |
| Field`model` | Type`string` | RequirementRequired | Values & limits minimax/music-2.0 | Default— |
| Field`prompt` | Type`string` | RequirementRequired | Values & limits | Default— |
| Field`lyrics` | Type`string` | RequirementRequired | Values & limits | Default— |
| Field`stream` | Type`boolean` | RequirementOptional | Values & limits false | Defaultfalse |
| Field`output_format` | Type`string` | RequirementOptional | Values & limits url, hex | Defaulthex |
| Field`audio_setting` | Type`object` | RequirementOptional | Values & limits | Default— |
| Field`audio_setting.sample_rate` | Type`integer` | RequirementOptional | Values & limits 16,000, 24,000, 32,000, 44,100 | Default— |
| Field`audio_setting.bitrate` | Type`integer` | RequirementOptional | Values & limits 32,000, 64,000, 128,000, 256,000 | Default— |
| Field`audio_setting.format` | Type`string` | RequirementOptional | Values & limits mp3, wav | Default— |
| Field`aigc_watermark` | Type`boolean` | RequirementOptional | Values & limits | Defaultfalse |

Method parameters and lifecycle

| Parameter | Contract |
| --- | --- |
| Parameter`content_type` | Contractapplication/json |
| Parameter`required` | Contractmodel, prompt, lyrics |
| Parameter`optional` | Contractstream, output\_format, audio\_setting, aigc\_watermark |
| Parameter`material_types` | Contracttext |
| Parameter`conditions` | ContractUse a nonstreaming request. MP3 and WAV are available; a PCM control is absent from this method. |

Lifecycle: `synchronous_result_then_owned_library`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

### Pricing

Tariff references do not add request options. Supported parameters are listed for the selected method.

Fast mode

Not specified When fast mode is selected

Flex mode

Not specified When flex mode is selected

Maximum reasoning effort

Not specified When maximum reasoning effort uses the default adjustment

#### Ailoot rates

#### Prices by configuration

Match each charge to the conditions shown. Use one rate for each set of alternative configurations.

| Configuration | Rate schedule | Billing quantity | Charge |
| --- | --- | --- | --- |
| ConfigurationBase token rates | Rate scheduleBase rate | Billing quantity— | Charge Input · Input tokens **—** / 1K tokens Output · Output tokens **—** / 1K tokens Input · Cache read **—** / 1K tokens Input · Cache write **—** / 1K tokens Input · Cache write, 1 hour **—** / 1K tokens |
| ConfigurationPer request | Rate schedule— | Billing quantityone request | Charge Input **$0.1** per request |

Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. [How reservation and settlement work →](https://ailoot.ai/docs/en/billing/reserve/)

### Example requests

#### Ailoot Ultra · Music

curl · create once and retain the complete result

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "minimax/music-2.0", "prompt": "独立民谣,忧郁,内省,渴望,独自漫步,咖啡馆", "lyrics": "[verse]\\n街灯微亮晚风轻抚\\n影子拉长独自漫步\\n旧外套裹着深深忧郁\\n不知去向渴望何处\\n[chorus]\\n推开木门香气弥漫\\n熟悉的角落陌生人看", "audio_setting": {"sample_rate": 44100, "bitrate": 256000, "format": "mp3"}, "output_format": "url"}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/music/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
# Submit once. Retain the complete result, original identifiers and every response header.
```

### Receive and save results

#### Ailoot Ultra · Music

mp3,wav

- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Keep all completed results

Keep every complete returned response, file and content part.

One generated audio; retain every returned field. audio and audio\_url are representations of the same output, not separate songs.

##### If the original response needs checking

Preserve the original response, headers and X-Client-Request-ID. An uncertain outcome does not authorize another creation.

Response fields

| Field | Type |
| --- | --- |
| Field`data.audio` | Typestring |
| Field`data.audio_url` | Typestring |
| Field`data.status` | Typeinteger |

### Aliases

#### Model aliases

**Ailoot Ultra** [`minimax/music-2.0`](https://ailoot.ai/models/en/#m=minimax%2Fmusic-2.0&route=Ultra&caller=minimax%2Fmusic-2.0&fmt=music), [`music-2.0`](https://ailoot.ai/models/en/#m=minimax%2Fmusic-2.0&route=Ultra&caller=music-2.0&fmt=music)

#### Method path aliases

Use the method paths shown above.

#### Related caller IDs

[`minimax/music-2.0`](https://ailoot.ai/models/en/#m=minimax%2Fmusic-2.0&route=Ultra&caller=minimax%2Fmusic-2.0&fmt=music), [`music-2.0`](https://ailoot.ai/models/en/#m=minimax%2Fmusic-2.0&route=Ultra&caller=music-2.0&fmt=music)

**Ailoot Ultra · Music** `POST /v1/music/generations` `music-2.0`

[`music-2.0`](https://ailoot.ai/models/en/#m=minimax%2Fmusic-2.0&route=Ultra&caller=music-2.0&fmt=music)

MiniMax /`music-2.0`

Model ID

- `minimax/music-2.0`
- `music-2.0`

### Overview

MiniMax Music 2.0 generates music from a style-and-mood prompt and supplied lyrics. Its synchronous music profile accepts 10–2,000 prompt characters, 10–3,500 lyric characters and MP3 or WAV output.

Accepted inputs

Text

Results

Audio

### Available in Ailoot · inputs & methods

**Ailoot Ultra · Music** `POST /v1/music/generations`

Input types

`text`

Output types

`audio`

Output format

mp3,wav

| Field | Type | Requirement | Values & limits | Default |
| --- | --- | --- | --- | --- |
| Field`model` | Type`string` | RequirementRequired | Values & limits music-2.0 | Default— |
| Field`prompt` | Type`string` | RequirementRequired | Values & limits | Default— |
| Field`lyrics` | Type`string` | RequirementRequired | Values & limits | Default— |
| Field`stream` | Type`boolean` | RequirementOptional | Values & limits false | Defaultfalse |
| Field`output_format` | Type`string` | RequirementOptional | Values & limits url, hex | Defaulthex |
| Field`audio_setting` | Type`object` | RequirementOptional | Values & limits | Default— |
| Field`audio_setting.sample_rate` | Type`integer` | RequirementOptional | Values & limits 16,000, 24,000, 32,000, 44,100 | Default— |
| Field`audio_setting.bitrate` | Type`integer` | RequirementOptional | Values & limits 32,000, 64,000, 128,000, 256,000 | Default— |
| Field`audio_setting.format` | Type`string` | RequirementOptional | Values & limits mp3, wav | Default— |
| Field`aigc_watermark` | Type`boolean` | RequirementOptional | Values & limits | Defaultfalse |

Method parameters and lifecycle

| Parameter | Contract |
| --- | --- |
| Parameter`content_type` | Contractapplication/json |
| Parameter`required` | Contractmodel, prompt, lyrics |
| Parameter`optional` | Contractstream, output\_format, audio\_setting, aigc\_watermark |
| Parameter`material_types` | Contracttext |
| Parameter`conditions` | ContractUse a nonstreaming request. MP3 and WAV are available; a PCM control is absent from this method. |

Lifecycle: `synchronous_result_then_owned_library`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

### Pricing

Tariff references do not add request options. Supported parameters are listed for the selected method.

Fast mode

Not specified When fast mode is selected

Flex mode

Not specified When flex mode is selected

Maximum reasoning effort

Not specified When maximum reasoning effort uses the default adjustment

#### Ailoot rates

#### Prices by configuration

Match each charge to the conditions shown. Use one rate for each set of alternative configurations.

| Configuration | Rate schedule | Billing quantity | Charge |
| --- | --- | --- | --- |
| ConfigurationBase token rates | Rate scheduleBase rate | Billing quantity— | Charge Input · Input tokens **—** / 1K tokens Output · Output tokens **—** / 1K tokens Input · Cache read **—** / 1K tokens Input · Cache write **—** / 1K tokens Input · Cache write, 1 hour **—** / 1K tokens |
| ConfigurationPer request | Rate schedule— | Billing quantityone request | Charge Input **$0.1** per request |

Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. [How reservation and settlement work →](https://ailoot.ai/docs/en/billing/reserve/)

### Example requests

#### Ailoot Ultra · Music

curl · create once and retain the complete result

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "music-2.0", "prompt": "独立民谣,忧郁,内省,渴望,独自漫步,咖啡馆", "lyrics": "[verse]\\n街灯微亮晚风轻抚\\n影子拉长独自漫步\\n旧外套裹着深深忧郁\\n不知去向渴望何处\\n[chorus]\\n推开木门香气弥漫\\n熟悉的角落陌生人看", "audio_setting": {"sample_rate": 44100, "bitrate": 256000, "format": "mp3"}, "output_format": "url"}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/music/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
# Submit once. Retain the complete result, original identifiers and every response header.
```

### Receive and save results

#### Ailoot Ultra · Music

mp3,wav

- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Keep all completed results

Keep every complete returned response, file and content part.

One generated audio; retain every returned field. audio and audio\_url are representations of the same output, not separate songs.

##### If the original response needs checking

Preserve the original response, headers and X-Client-Request-ID. An uncertain outcome does not authorize another creation.

Response fields

| Field | Type |
| --- | --- |
| Field`data.audio` | Typestring |
| Field`data.audio_url` | Typestring |
| Field`data.status` | Typeinteger |

### Aliases

#### Model aliases

**Ailoot Ultra** [`minimax/music-2.0`](https://ailoot.ai/models/en/#m=minimax%2Fmusic-2.0&route=Ultra&caller=minimax%2Fmusic-2.0&fmt=music), [`music-2.0`](https://ailoot.ai/models/en/#m=minimax%2Fmusic-2.0&route=Ultra&caller=music-2.0&fmt=music)

#### Method path aliases

Use the method paths shown above.

#### Related caller IDs

[`minimax/music-2.0`](https://ailoot.ai/models/en/#m=minimax%2Fmusic-2.0&route=Ultra&caller=minimax%2Fmusic-2.0&fmt=music), [`music-2.0`](https://ailoot.ai/models/en/#m=minimax%2Fmusic-2.0&route=Ultra&caller=music-2.0&fmt=music)

FAQ · MiniMax: Music 2.0

What inputs and results are available?

`POST /v1/music/generations` · `minimax/music-2.0`: `text` → `audio` `POST /v1/music/generations` · `music-2.0`: `text` → `audio`

Which fields does the request use?

`POST /v1/music/generations` · `minimax/music-2.0`: `model`, `prompt`, `lyrics`, `stream`, `output_format`, `audio_setting`, `aigc_watermark` `POST /v1/music/generations` · `music-2.0`: `model`, `prompt`, `lyrics`, `stream`, `output_format`, `audio_setting`, `aigc_watermark`

Connect Ailoot to Claude Code, OpenCode, Hermes or your own app.

## The company and its project portfolio

The company and its project portfolio: millions of customers; monthly sales in the billions.

## Buy tokens at a discount.

Subscription discounts for regular use. Promo codes offer up to 50% off token purchases.

Subscription

Choose a discounted plan for your regular requests.

Promo code: up to 50% off

Enter your code at checkout. The price updates to reflect the current promotion.

Spending in your history

The model, tokens and amount are recorded for each request.

[Choose a subscription](https://ailoot.ai/docs/en/billing/subscriptions/) · [View model prices](https://ailoot.ai/models/en/)

## Connect the API to a product you sell.

Use Ailoot in SaaS, apps and bots under its official service offer and licence agreement. Request a reseller licence for resale.

Commercial application

Add text, image, video and audio generation to paid features in your service.

Reseller licence

Send a description of your project and how you provide access. Request written terms for use and resale.

Documents on the website

The service offer, licence agreement and data processing policy are available before you connect.

[Request a reseller licence](mailto:support@ailoot.ai) · [Service offer and licence agreement](https://ailoot.ai/legal/offer?lang=en)

## Ailoot · The company and its project portfolio





Ailoot combines established operating experience, a large client base, stable service and ongoing KPI control.





The company and its project portfolio: millions of customers; monthly sales in the billions.





Ailoot brings that operating experience to API access for AI features in customer products, agents, applications and automations.
