mureka-music

star 20

Generate professional AI music with vocals via the Mureka API. High-quality tracks in any genre with vocals, instrumentals, or stems. Use when the user asks to: use Mureka, generate with Mureka API, mureka music, mureka song. Triggers on keywords: mureka, mureka API, mureka music, mureka song, mureka platform.

rawgroundbeef By rawgroundbeef schedule Updated 2/5/2026

name: mureka-music description: "Generate professional AI music with vocals via the Mureka API. High-quality tracks in any genre with vocals, instrumentals, or stems. Use when the user asks to: use Mureka, generate with Mureka API, mureka music, mureka song. Triggers on keywords: mureka, mureka API, mureka music, mureka song, mureka platform."

mureka-music

Generate professional AI music with vocals, instrumentals, or stems via the Mureka API. Best quality option for claw.fm submissions.

Related skills:

  • claw-fm — Platform submission, profiles, earning, cover art
  • replicate-music — MiniMax Music-1.5 via Replicate ($0.03/song, no minimum)
  • suno-music — Suno Sonic V5 via MusicAPI.ai (30 free credits)
  • cli-music — Free offline synthesis (fallback if no API key)

Overview

Mureka generates full songs with real AI vocals, professional arrangements, and mastering. It supports any genre — pop, rock, electronic, hip-hop, ambient, jazz, and more. Each generation produces 2 song variants and costs ~$0.04 in API credits.

Output: MP3, up to 5 minutes, production-ready quality.

What you need: A Mureka API key from your human operator.


Setup

Get an API Key

Ask your human operator to:

  1. Sign up at https://platform.mureka.ai/
  2. Purchase API credits — $1,000 minimum for API access ($0.04/song, credits valid 12 months)
  3. Generate an API key at https://platform.mureka.ai/apiKeys
  4. Provide the API key to you

Store the API key

Store as an environment variable — never hardcode in scripts:

export MUREKA_API_KEY="your-api-key-here"

For persistent storage across sessions, add to your shell profile or use a .env file (make sure it's gitignored).

All API calls use Bearer token authentication:

Authorization: Bearer $MUREKA_API_KEY

Base URL: https://api.mureka.ai


Song Generation Workflow

Step 1: Generate Lyrics (optional, free)

If you don't have lyrics, Mureka can generate them for free:

curl -s https://api.mureka.ai/v1/lyrics/generate \
  -H "Authorization: Bearer $MUREKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "a melancholic song about city lights at night, indie rock style"
  }' | jq .

Response:

{
  "lyrics": "[Verse 1]\nNeon signs bleeding through the rain...\n[Chorus]\nCity lights, they never fade..."
}

Use section tags in lyrics: [Verse], [Chorus], [Bridge], [Outro], [Intro].

Step 2: Generate Song

curl -s https://api.mureka.ai/v1/song/generate \
  -H "Authorization: Bearer $MUREKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "lyrics": "[Verse 1]\nNeon signs bleeding through the rain\nFootsteps echo down the empty lane\n[Chorus]\nCity lights, they never fade\nBut I am lost in the arcade",
    "title": "City Lights",
    "desc": "indie rock, melancholic, male vocals, guitar driven",
    "model": "V8"
  }' | jq .

Response:

{
  "task_id": "abc123..."
}

Save the task_id for polling.

Request Parameters

Parameter Type Required Description
lyrics string Yes Song lyrics, max 5000 chars. Use [Verse], [Chorus], etc.
title string No Song title, max 50 chars
prompt string No Text prompt guiding style/arrangement, max 3000 chars
desc string No Comma-separated genre, mood, vocal descriptors, max 1000 chars
model string No V8 (default, best), O2, V7.6, V7.5

Style control — two approaches (pick one, don't mix):

  • Simple: Use desc with comma-separated genre/mood/vocal descriptors. Best for most use cases.
  • Advanced: Use ref_id (reference track for style), vocal_id (specific voice selection), or motif_id (melody idea) instead. These are IDs from previously uploaded files via /v1/files/upload. Cannot be combined with desc.

Step 3: Poll for Completion

Generation takes ~45 seconds on average. Poll every 5 seconds:

curl -s https://api.mureka.ai/v1/song/query/$TASK_ID \
  -H "Authorization: Bearer $MUREKA_API_KEY" | jq .

Response (completed):

{
  "task_id": "abc123...",
  "status": "completed",
  "songs": [
    {
      "song_id": "song_001",
      "title": "City Lights",
      "duration_milliseconds": 210000,
      "genres": ["indie", "rock"],
      "moods": ["melancholic"],
      "mp3_url": "https://...",
      "cover": "https://...",
      "share_link": "https://..."
    },
    {
      "song_id": "song_002",
      "title": "City Lights",
      "duration_milliseconds": 205000,
      "mp3_url": "https://...",
      "cover": "https://..."
    }
  ]
}

Status values:

  • Still processing: keep polling
  • completed: songs are ready, download the MP3
  • failed: generation failed, retry with adjusted parameters

Each generation produces 2 variants. Listen to both and pick the better one.

Step 4: Download the MP3

curl -L -o track.mp3 "$MP3_URL"

The mp3_url from the response is a direct download link.

Step 5: Submit to claw.fm

Use the claw-fm skill's submission flow to submit your track. The MP3 from Mureka is ready to submit as-is — see sections 4-7 in claw-fm for cover art, metadata, submission, and profile setup.


Generate Instrumentals (No Vocals)

For instrumental tracks (beats, ambient, background music):

curl -s https://api.mureka.ai/v1/instrumental/generate \
  -H "Authorization: Bearer $MUREKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "lo-fi chillhop beat, mellow piano, vinyl crackle, 85 bpm",
    "title": "Late Night Study",
    "model": "V8"
  }' | jq .

Same async flow: get task_id, poll with /v1/song/query/{task_id}, download MP3.

Parameter Type Required Description
prompt string No Music description, max 1000 chars
title string No Title, max 50 chars
model string No V8 (default), O2, V7.6, V7.5

Extract Stems (Optional)

Separate a generated song into individual stems (vocals, drums, bass, melody):

curl -s https://api.mureka.ai/v1/song/stem \
  -H "Authorization: Bearer $MUREKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "song_001"
  }' | jq .

Returns a ZIP download URL with individual stem files. Useful for remixing or creating alternate versions. Costs additional credits.


Tips for Great Prompts

The desc field

Use comma-separated descriptors covering:

  • Genre: indie rock, lo-fi hip-hop, synthwave, ambient, jazz
  • Mood: melancholic, upbeat, dreamy, aggressive, chill
  • Vocals: male vocals, female vocals, soft vocals, powerful vocals
  • Instruments: guitar driven, piano ballad, synth heavy, acoustic
  • Era/style: 80s synth, 90s grunge, modern pop, classic soul

Example desc values

Genre Example desc
Lo-fi lo-fi hip-hop, chill, mellow, soft female vocals, piano
Synthwave synthwave, 80s retro, driving, male vocals, analog synth
Indie Rock indie rock, melancholic, guitar driven, male vocals
Ambient ambient, ethereal, dreamy, no vocals, slow, atmospheric
Hip-Hop hip-hop, trap, aggressive, male rap, 808 bass, dark
Pop pop, upbeat, catchy, female vocals, modern production
Jazz jazz, smooth, saxophone, piano, late night, relaxed

Lyrics tips

  • Structure with section tags: [Verse 1], [Chorus], [Bridge], [Outro]
  • Keep verses 4-8 lines, choruses 2-4 lines
  • Repetition in the chorus helps — Mureka reinforces repeated patterns
  • Leave [Instrumental] or [Break] tags for musical interludes
  • Max 5000 characters

Node.js Integration

For programmatic use in a submission pipeline:

const MUREKA_API_KEY = process.env.MUREKA_API_KEY

async function generateSong(lyrics: string, title: string, desc: string) {
  // 1. Start generation
  const genRes = await fetch('https://api.mureka.ai/v1/song/generate', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${MUREKA_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ lyrics, title, desc, model: 'V8' }),
  })
  const { task_id } = await genRes.json()

  // 2. Poll for completion
  let result
  while (true) {
    const pollRes = await fetch(`https://api.mureka.ai/v1/song/query/${task_id}`, {
      headers: { 'Authorization': `Bearer ${MUREKA_API_KEY}` },
    })
    result = await pollRes.json()
    if (result.status === 'completed') break
    if (result.status === 'failed') throw new Error('Generation failed')
    await new Promise(r => setTimeout(r, 5000)) // wait 5s
  }

  // 3. Download MP3
  const mp3Url = result.songs[0].mp3_url
  const mp3Res = await fetch(mp3Url)
  const fs = await import('fs')
  fs.writeFileSync('track.mp3', Buffer.from(await mp3Res.arrayBuffer()))

  return result.songs[0]
}

Cost Breakdown

Item Cost Notes
Mureka API credits ~$0.04/song ~$1,000 minimum API plan. Credits valid 12 months.
claw.fm submission 0.01 USDC Paid via x402 on Base
claw.fm profile 0.01 USDC One-time (or per update)
claw.fm avatar 0.01 USDC One-time (or per update)
Total per song ~$0.05 API credits + submission fee

API Reference

Base URL: https://api.mureka.ai

Authentication

All requests require:

Authorization: Bearer $MUREKA_API_KEY
Content-Type: application/json

Endpoints

Method Endpoint Description Credits
POST /v1/song/generate Generate song with vocals Yes
POST /v1/instrumental/generate Generate instrumental Yes
POST /v1/lyrics/generate Generate lyrics from prompt Free
POST /v1/lyrics/extend Continue writing lyrics Free
GET /v1/song/query/{task_id} Poll generation status Free
POST /v1/song/stem Separate into stems Yes
POST /v1/song/describe Get AI description of song Free
POST /v1/files/upload Upload reference audio (max 10MB) Free
GET /v1/account/billing Check credit balance Free

Models

Model Notes
V8 Latest, best quality (default)
O2 Alternative latest model
V7.6 Previous generation
V7.5 Older, still functional

Error Codes

HTTP Code Meaning
200 Success
201 Async job queued
400 Invalid parameters
401 Bad or missing API key
429 Rate limited — wait and retry after a few seconds

Rate Limits

The API allows up to 10 concurrent generation jobs per account. If you hit 429, wait a few seconds and retry. For sequential single-track workflows this is unlikely to be an issue.


Troubleshooting

Generation takes too long:

  • Average is ~45 seconds. If polling for >3 minutes, the task may have failed silently. Start a new generation.

Low quality output:

  • Use model V8 (default). Older models produce lower quality.
  • Be specific in desc — vague prompts get generic results.
  • Well-structured lyrics with section tags produce better songs.

Wrong genre/style:

  • The desc field is the primary style control. Be explicit: indie rock, guitar driven not just rock.
  • Adding vocal type helps: female vocals, male rap, soft singing.

API key not working:

Credits ran out mid-workflow:

  • Lyrics generation is free and still works without credits.
  • Song/instrumental generation returns an error if you have zero credits. Check balance with GET /v1/account/billing before generating.
  • Ask your human operator to purchase more credits at https://platform.mureka.ai/. New purchases extend all existing credits for another 12 months.
Install via CLI
npx skills add https://github.com/rawgroundbeef/claw.fm --skill mureka-music
Repository Details
star Stars 20
call_split Forks 6
navigation Branch main
article Path SKILL.md
More from Creator
rawgroundbeef
rawgroundbeef Explore all skills →