Remix a song in a new style

October 16, 2026

Table of contents

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

https://api.useapi.net/v1/mureka/music/remix

Re-record one of your songs in a new style, the same as Remix on mureka.ai. Mureka uses the original recording as the reference and keeps its lyrics, and the new songs follow the style you give in desc. You can also replace the lyrics or the title.

Like any song generation, a remix produces two songs and costs the same Mureka Gold as POST /music/create-advanced (24 Gold on V9.5 in our tests). It takes 30 to 60 seconds.

Remix works on songs with vocals. An instrumental song returns 400.

Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
Request Body
{
    "song_id": "user:777-mureka:12345678901234-song:33445566",
    "desc": "D&B, hip-hop"
}
  • song_id is required, the song to remix.
    The song_id value returned by one of the following endpoints:

    The song’s own account runs the remix, so there is no account parameter.

  • desc is optional, the new style: a comma-separated list of genres, moods and instruments. See supported values using GET /music/moods-and-genres.
    When left out, the original song’s style is used.
    Maximum length: 1000 characters.

  • lyrics is optional, new lyrics. When left out, the original lyrics are used.
    Maximum length: 5000 characters.

  • title is optional. When left out, the title is the original title plus (Remix).
    Maximum length: 50 characters.

  • vocal_gender is optional. Supported values: female, male.

  • model is optional. Supported values: V9.5, V9, V8.
    When left out, the account’s default model is used if it supports remix, otherwise V9.5.

  • async is optional, enables fire-and-forget mode (default: false). When true, returns immediately with 201 Created and job metadata. Poll GET /jobs/jobid for completion status.

  • replyUrl is optional, webhook URL for job status callbacks. Receives a POST request when the job ends as completed or failed. The JSON payload shape matches GET /jobs/jobid response.

  • replyRef is optional, custom reference string passed back in webhook callbacks. Useful for tracking jobs on your end.
Responses
  • 200 OK

    Real response, one of the two songs shown, ids shortened.

    {
        "jobid": "j1016230256133236021m-u777-a12345678901234-bot:mureka",
        "feed_id": 166751633473537,
        "state": 3,
        "songs": [
            {
                "song_id": "user:777-mureka:12345678901234-song:166751644024833",
                "title": "Scarlett character song(Remix)",
                "duration_milliseconds": 87230,
                "generate_at": 1792191775,
                "genres": [
                    "electronic"
                ],
                "moods": [
                    "energetic"
                ],
                "description": "D&B, hip-hop",
                "mp3_url": "https://static-cos.mureka.ai/cos-prod/song/audio/20261016/<id>.mp3",
                "share_key": "<share key>",
                "machine_audit_state": 1,
                "credit_type": 1,
                "cover": "https://static-cos.mureka.ai/cos-prod/skm/image/20261016/<id>.jpeg",
                "control_types": [
                    1,
                    3,
                    5,
                    11
                ],
                "generate_state": 3,
                "generation_method": 1,
                "allow_remix": true,
                "share_link": "https://www.mureka.ai/song-detail?share_key=<share key>&is_from_share=1"
            }
        ]
    }
    
  • 201 Created

    Job created in async mode (async: true). The remix is processing in the background.

    Use GET /jobs/jobid to poll for completion status.

    {
        "jobid": "j1016230256133236021m-u777-a12345678901234-bot:mureka",
        "verb": "music/remix",
        "jobType": "music",
        "status": "created",
        "created": "2026-10-16T23:02:56.133Z",
        "request": {
            "song_id": 166751520227330,
            "desc": "D&B, hip-hop",
            "async": true,
            "account": "12345678901234"
        }
    }
    
  • 400 Bad Request

    {
      "error": "Song 33445566 is instrumental, remix supports songs with vocals",
      "code": 400
    }
    
  • 401 Unauthorized

    {
      "error": "Wrong username/password combination.",
      "code": 401
    }
    
  • 412 Precondition Failed

    The account does not have enough Mureka Gold (a remix costs the same as a song).

    {
      "error": "User balance is not enough to operate (6310)",
      "code": 412
    }
    
  • 596 Account Error

    Returned when the account has an error state preventing API calls.

    {
        "error": "Session refresh failed 2026-01-19T14:31:15.000Z, manual update required",
        "code": "REFRESH_FAILED"
    }
    

    Possible error codes:

    • ACCOUNT_ERROR - Account has a blocking error
    • REFRESH_FAILED - Automatic token refresh failed
    • REFRESH_IN_PROGRESS - Token refresh already in progress, retry shortly
    • SESSION_EXPIRED - Session expired and no auto-refresh available
    • COOKIE_EXPIRED - Google cookie has expired

    To resolve, update your account configuration via POST /accounts.

Model
  • Same structure as POST /music/create-advanced.

    {
        jobid: string
        feed_id: number
        state: number
        songs: {
            song_id: string
            title: string
            duration_milliseconds: number
            generate_at: number
            genres: string[]
            moods: string[]
            description?: string           // the style used
            mp3_url: string
            share_key: string
            share_link: string
            cover: string
            control_types?: number[]
            machine_audit_state: number
            credit_type: number
        }[]
    }
    
  • {
        jobid: string
        verb: 'music/remix'
        jobType: 'music'
        status: 'created'
        created: string                    // ISO 8601 timestamp
        request: {
            song_id: number                // Decoded Mureka id, not the user:…-song:… form
            desc?: string
            lyrics?: string
            title?: string
            vocal_gender?: string
            model?: string
            account: string
            async?: boolean
            replyUrl?: string
            replyRef?: string
        }
    }
    
Examples
  • curl -H "Accept: application/json" \
         -H "Content-Type: application/json" \
         -H "Authorization: Bearer …" \
         -X POST https://api.useapi.net/v1/mureka/music/remix \
         -d '{"song_id": "…", "desc": "D&B, hip-hop"}'
    
  • const song_id = "user:777-mureka:12345678901234-song:33445566";
    const desc = "D&B, hip-hop";
    const apiUrl = `https://api.useapi.net/v1/mureka/music/remix`; 
    const api_token = "API token";
    const data = { 
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${api_token}`,
        'Content-Type': 'application/json' }
    };
    data.body = JSON.stringify({ song_id, desc });
    const response = await fetch(apiUrl, data);
    const result = await response.json();
    console.log("response", {response, result});
    
  • import requests
    apiUrl = f"https://api.useapi.net/v1/mureka/music/remix" 
    api_token = "API token"
    headers = {
        "Content-Type": "application/json", 
        "Authorization" : f"Bearer {api_token}"
    }
    body = {
        "song_id": "user:777-mureka:12345678901234-song:33445566",
        "desc": "D&B, hip-hop"
    }
    response = requests.post(apiUrl, headers=headers, json=body)
    print(response, response.json())
    
Try It

A remix takes 30 to 60 seconds.