Retrieve the list of your music

September 25, 2024 (August 17, 2026)

Table of contents

  1. Request Headers
  2. Query Parameters
  3. Responses
  4. Model
  5. Examples
  6. Try It

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}
Query Parameters
  • account is optional when only one account is configured. If you have several MiniMax accounts configured, this parameter becomes required.
  • limit is optional, the number of songs to return. Default: 30. Maximum: 100.
  • lastMusicId is optional, the musicId to 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. A musicId older than that returns 400 rather than silently restarting from the newest song.
  • favorite is optional, return only songs marked as favourites on the MiniMax account. Default: false.
Responses
  • 200 OK

    [
      {
        "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
          }
        ]
      }
    ]
    
  • 400 Bad Request

    {
      "error": "Please use parameter account to specify account",
      "code": 400
    }
    

    A lastMusicId older than the retrievable window:

    {
      "error": "lastMusicId user:12345-minimax:123456789012345678-music:987654321098765 was not found in the most recent 1000 songs",
      "code": 400
    }
    
  • 401 Unauthorized

    {
      "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"])
    
Try It