Retrieve the list of your music
September 25, 2024 (August 17, 2026)
Table of contents
Lists the songs on a configured MiniMax account, newest first. Tracks still rendering appear here too, with statusLabel set to processing and an empty audio_url.
This list reflects the MiniMax account itself, so it also includes songs created directly on minimax.io rather than through this API.
https://api.useapi.net/v1/minimax/music/?account={account}&limit={limit}&lastMusicId={lastMusicId}&favorite={favorite}
Note the trailing slash after music — without it the request does not reach this endpoint.
Request Headers
Authorization: Bearer {API token}
API tokenis required, see Setup useapi.net for details.
Query Parameters
accountis optional when only one account is configured. If you have several MiniMax accounts configured, this parameter becomes required.limitis optional, the number of songs to return. Default:30. Maximum:100.lastMusicIdis optional, themusicIdto start from. Results continue from the song after it, which is how you page through a long history.
The cursor is looked up across the most recent 1000 songs. AmusicIdolder than that returns400rather than silently restarting from the newest song.favoriteis optional, return only songs marked as favourites on the MiniMax account. Default:false.
Responses
-
[ { "musicId": "user:12345-minimax:123456789012345678-music:987654321098766", "title": "Lisbon Rain", "idea": "warm nylon guitar, slow bossa nova, about a rainy afternoon in Lisbon", "lyrics": "[Verse]\nThe tram climbs up the hill\n[Chorus]\nAnd the rain keeps falling still", "audio_url": "https://cdn.hailuoai.video/moss/prod/2026-08-16-02/moss-audio/user_music/1700000000000000000-987654321098766.mp3", "cover_url": "https://cdn.hailuoai.video/moss/staging/2025-06-22-16/music_cover/1700000000000000002-other_45.png", "model": "music-3.0", "status": 2, "statusLabel": "completed", "statusFinal": true, "instrumental": false, "duration": 138472, "update_time": 1786827844513, "is_favorite": false, "hasWav": false, "tag_list": [ { "tag_name": "warm nylon guitar, slow bossa nova, about a rainy afternoon in Lisbon", "tag_type": 1 } ] } ] -
{ "error": "Please use parameter account to specify account", "code": 400 }A
lastMusicIdolder than the retrievable window:{ "error": "lastMusicId user:12345-minimax:123456789012345678-music:987654321098765 was not found in the most recent 1000 songs", "code": 400 } -
{ "error": "Unauthorized", "code": 401 } -
596 Account Error
{ "error": "Your minimax account has pending error. Please address this issue at https://useapi.net/docs/api-minimax-v1/post-minimax-accounts-account before making any new API calls.", "code": 596 }
An account with no songs returns an empty array.
Model
[{ // TypeScript, all fields are optional
musicId: string, // Use with GET music/musicId
title: string,
idea: string,
lyrics: string,
audio_url: string, // Empty while still rendering
cover_url: string,
model: string, // music-3.0 | music-2.6
status: number, // See GET music/musicId for the status table
statusLabel: string,
statusFinal: boolean,
instrumental: boolean,
duration: number, // Milliseconds
update_time: number,
is_favorite: boolean,
hasWav: boolean,
tag_list: [{ tag_name: string, tag_type: number }]
}]
Examples
-
curl "https://api.useapi.net/v1/minimax/music/?limit=10" \ -H "Authorization: Bearer …" -
const response = await fetch("https://api.useapi.net/v1/minimax/music/?limit=10", { headers: { "Authorization": "Bearer …" } }); const tracks = await response.json(); for (const track of tracks) console.log(track.title, track.statusLabel, track.audio_url); -
import requests response = requests.get( "https://api.useapi.net/v1/minimax/music/", headers={"Authorization": "Bearer …"}, params={"limit": 10} ) for track in response.json(): print(track["title"], track["statusLabel"], track["audio_url"])