Create a song using AI-generated lyrics based on your prompt

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

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",
    "prompt": "Optional text prompt"
}
  • account is optional when only one account configured. However, if you have multiple music configured, this parameter becomes required.

  • prompt is optional. Use it to guide AI to generate desired lyrics. If omitted AI will generate some random lyrics.

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 \
         -d '{"account": "…", "prompt": "…"}'
    
  • const account = "Mureka account";      
    const prompt = "Silly song about Santa";      
    const apiUrl = `https://api.useapi.net/v1/mureka/music/create`; 
    const api_token = "API token";
    const data = { 
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${api_token}`,
        'Content-Type': 'application/json' }
    };
    data.body = JSON.stringify({ 
      account, prompt
    });
    const response = await fetch(apiUrl, data);
    const result = await response.json();
    console.log("response", {response, result});
    
  • import requests
    account = "Mureka account"
    prompt = "Silly song about Santa"
    apiUrl = f"https://api.useapi.net/v1/mureka/music/create" 
    api_token = "API token"
    headers = {
        "Content-Type": "application/json", 
        "Authorization" : f"Bearer {api_token}"
    }
    body = {
        "account": f"{account}",
        "prompt": f"{prompt}"
    }
    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.