Create a song using custom lyrics, styles, vocals and reference song

December 2, 2024

Table of contents

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

Mureka supports up to 10 parallel generations per account in near real-time fashion, with an average generation time of 45 seconds (each generation produces two songs). Generated songs can be up to 5 minutes long depending on your lyrics.

https://api.useapi.net/v1/mureka/music/create-advanced

Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
Request Body
{
    "account": "Optional Mureka API account",
    "lyrics": "Required song lyrics",
    "title": "Optional song title",
}
  • account is optional when only one account configured. However, if you have multiple music configured, this parameter becomes required.

  • lyrics is required. Lyrics for the song.

  • title is optional. Song title.

  • desc is optional. To guide song generation, provide a comma-separated list of genres, moods, and desired vocals. See supported values using GET /music/moods-and-genres. This parameter is not compatible with parameters ref_id and vocal_id.
    Example: pop, electronic, happy, female vocal

  • vocal_id is optional. Specify the desired vocal. See supported vocals using GET /music/vocals.

  • ref_id is optional. Create songs inspired by a reference track. See available tracks using GET /music/refs.

Responses
  • 200 OK

    {
        "feed_id": 11223344,
        "state": 3,
        "songs": [
            {
                "song_id": "user:777-mureka:123456789-song:33445566",
                "title": "<title>",
                "version": "1",
                "duration_milliseconds": 234567,
                "generate_at": 12345677,
                "genres": [
                    "electronic",
                    "indie"
                ],
                "moods": [
                    "quirky",
                    "angry",
                    "restless"
                ],
                "mp3_url": "https://<download link>.mp3",
                "share_key": "<share key>",
                "recall": true,
                "machine_audit_state": 4,
                "credit_type": 1,
                "cover": "https://<cover image>.png",
                "share_link": "https://<share link>"
            },
            {
                "song_id": "user:777-mureka:123456789-song:33445566",
                "title": "<title>",
                "version": "2",
                "duration_milliseconds": 1234567,
                "generate_at": 12345667,
                "genres": [
                    "electronic",
                    "world-music"
                ],
                "moods": [
                    "dark",
                    "quirky",
                    "energetic"
                ],
                "mp3_url": "https://<download link>.mp3",
                "share_key": "<share key>",
                "machine_audit_state": 1,
                "credit_type": 1,
                "cover": "https://<cover image>.png",
                "share_link": "https://<share link>"
            }
        ]
    }
    
  • 400 Bad Request

    {
      "error": "<Error message>",
      "code": 400
    }
    
  • 401 Unauthorized

    {
      "error": "Wrong username/password combination.",
      "code": 401
    }
    
Model
{ // TypeScript, all fields are optional
    feed_id: number
    state: number
    songs?: {
        song_id: number
        title: string
        version: string
        duration_milliseconds: number
        generate_at: number
        genres: string[]
        moods: string[]
        mp3_url: string
        share_key: string
        machine_audit_state: number
        credit_type: number
        cover: string
    }[]
}
Examples
  • curl -H "Accept: application/json" \
         -H "Content-Type: application/json" \
         -H "Authorization: Bearer …" \
         -X POST https://api.useapi.net/v1/mureka/music/create-advanced \
         -d '{"account": "…", "lyrics": "…"}'
    
  • const account = "Mureka account";      
    const lyrics = "<Your song lyrics here>";      
    const apiUrl = `https://api.useapi.net/v1/mureka/music/create-advanced`; 
    const api_token = "API token";
    const data = { 
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${api_token}`,
        'Content-Type': 'application/json' }
    };
    data.body = JSON.stringify({ 
      account, lyrics
    });
    const response = await fetch(apiUrl, data);
    const result = await response.json();
    console.log("response", {response, result});
    
  • import requests
    account = "Mureka account"
    lyrics = "<Your song lyrics here>"
    apiUrl = f"https://api.useapi.net/v1/mureka/music/create-advanced" 
    api_token = "API token"
    headers = {
        "Content-Type": "application/json", 
        "Authorization" : f"Bearer {api_token}"
    }
    body = {
        "account": f"{account}",
        "lyrics": f"{lyrics}"
    }
    response = requests.post(apiUrl, headers=headers, json=body)
    print(response, response.json())
    
Try It

It takes an average of 45 seconds to generate a song.