MiniMax
MiniMax Music 1.5
minimax-music-1.5
A text-to-music model that generates a complete song with vocals and accompaniment in one pass from a style description and lyrics, with each song up to about 4 minutes long and support for arranging sections using structural tags
Try minimax-music-1.5
Input
Showcases
View all showcasesOutput
Pricing
minimax-music-1.5 per song
| Unit Price | $0.070 |
|---|
Positioning Overview
minimax-music-1.5 is MiniMax's text-to-music model, called through the unified HiAPI.ai interface. Input a style prompt and lyrics with structure tags to generate a complete song with sung vocals and layered instrumentation; the model handles arrangement, mixing, and singing, so creators do not need to perform or record themselves. It is suitable for video and short-drama soundtracks that need finished songs, virtual artist demos, and developers without a music production background who want to quickly produce songs by mood or scene.
Key Highlights
- Lyrics can directly arrange song structure — lyrics support [intro][verse][chorus][bridge][outro] structure tags, specifying content by section so transitions between sections of the generated track are more coherent.
- Prompts control style and mood — style prompts can describe genre, mood, and instrumentation, and the model completes the arrangement and vocal performance accordingly, reducing manual parameter tuning.
- Output specifications can be specified as needed — choose from mp3, wav, and pcm formats and specify sample rate and bitrate, making it easy to match downstream playback or editing pipelines.
Capabilities
Lyrics-driven full-song generation: Submit 10-600 characters of lyrics and a 10-300 character style prompt, and the model generates a song containing vocals and accompaniment in one pass, so developers can directly obtain a usable audio file.
Structure tags arrange sections: Use tags such as [intro][verse][chorus] in the lyrics to divide sections, making the positions and repetition relationships of verses and choruses clear and improving the coherence of the finished song form.
Style and mood text control: Describe genre, mood, and instrumentation through prompts to suit soundtrack needs across different themes without switching models for each style.
Selectable output audio parameters: Specify audio format, sample rate, and bitrate in the request to output files with specifications matching the downstream player or post-production process.
Use Cases
- Soundtrack production for short-video and short-drama creators — Write prompts according to plot emotion and attach lyrics to generate a theme song or insert song with vocals, ready for video editing and publishing.
- Song demos for virtual artist operators — Use style prompts and lyrics to quickly produce complete vocal tracks as works for virtual singers or demo material for external presentation.
- Quick song production for creators without a music background — Simply provide a mood or scene description and self-written lyrics to obtain a song with arrangement and mixing completed, for content publishing or event use.
Limitations and Selection Advice
It only supports generating songs based on user-provided lyrics and does not provide automatic lyric writing; it also does not support instrumental-only mode, so other models should be chosen when vocal-free soundtracks are needed. The lyrics limit is 600 characters, so long or multi-section complex arrangements require trimming and prioritization. The final result depends on prompt and lyric quality, and using structure tags to divide sections is recommended. If more advanced control capabilities are needed, consider higher versions in the same series.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: minimax-music-1.5
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for minimax-music-1.5 and route default — see the parameter table below.
lyricsstringRequiredminLength 10maxLength 600Song lyrics, one line per sentence (separated by \n), length limit 10-600 characters, supports structure tags [intro][verse][chorus][bridge][outro].
promptstringRequiredminLength 10maxLength 300Text prompt controlling the music style, used to describe the genre, mood, and instrumentation, length limit 10-300 characters.
bitrateintegerOptionalDefault: 256000Bitrate of the output audio, in bps, default 256000.
3200064000128000256000sample_rateintegerOptionalDefault: 44100Sample rate of the output audio, in Hz, default 44100.
16000240003200044100audio_formatstringOptionalDefault: "mp3"Output audio format, default mp3.
mp3wavpcmcallbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-music-1.5",
"input": {
"lyrics": "…",
"prompt": "…",
"bitrate": 256000,
"sample_rate": 44100,
"audio_format": "mp3"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "minimax-music-1.5",
input: {
"lyrics": "…",
"prompt": "…",
"bitrate": 256000,
"sample_rate": 44100,
"audio_format": "mp3"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "minimax-music-1.5",
"input": {
"lyrics": "…",
"prompt": "…",
"bitrate": 256000,
"sample_rate": 44100,
"audio_format": "mp3"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
ElevenLabs ElevenLabs $0.0029 /second -
Qwen Audio 3.0 TTS Alibaba $0.030 /1,000 characters -
Lyria 3 Pro Google $0.140 /song -
MiniMax Music 3 MiniMax $0.0026 /second -
MiniMax Music 2.6 MiniMax $0.210 /song -
Gemini 3.1 Flash TTS Google -- -
Lyria 3.5 Google $0.090 /song -
Mirelo SFX 2.0 Mirelo AI $0.021 /second -
Mureka 9.5 Mureka $0.322 per request



