PL Log inCreate account
Launching in October 2026. Accounts, model catalog, calculator and docs are live. Studio is available in preview; generation is awaiting activation.

Mureka V9 API - AI Song Generator API with Your Own Lyrics

Generate songs with vocals via the Mureka V9 API: lyrics with [Verse] and [Chorus] tags, a style prompt, price per song, Python and JavaScript examples.

The Mureka V9 API turns your lyrics into a full song with vocals. You send one request to POST /v1/generate with model: "mureka-v9", the lyrics in lyrics (required, tagged with [Verse], [Chorus] and so on) and an optional style description in prompt. On Jantaris the price is $0.124 per song regardless of length, and a failed generation costs nothing. This guide covers the parameters, working code, cost math and the audio tools that pair with it.

What Mureka V9 does

Mureka V9 is the March 2026 song model from Mureka, part of Kunlun Tech's Skywork AI. It is lyrics-first: it does not write words for you, it sings the ones you give it, and arranges the music around the structure you mark up.

Parameters on Jantaris:

FieldTypeLimitRequired
lyricsstringup to 3,000 charactersyes
promptstringup to 1,024 charactersno

That is the whole input schema. There is no duration and no instrumental flag; sending either returns 422 invalid_request. The song's length follows from the lyrics, and you get the instrumental by post-processing (see below). You can always fetch the live schema from GET /v1/models/mureka-v9.

Your first song through the API

curl

bash
curl "https://jantaris.com/v1/generate?wait=120" \
  -H "Authorization: Bearer $JANTARIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mureka-v9",
    "input": {
      "lyrics": "[Verse]\nNeon lights on the empty street\nI keep the rhythm, I keep the beat\n[Chorus]\nDrive all night, never look back\nCity hums along the track",
      "prompt": "synthwave pop, female vocal, 110 bpm, warm analog bass, night drive mood"
    }
  }'

?wait=120 makes the server hold the connection for up to 120 seconds and return the finished task if it completes in time. If not, you get 202 with a task id and poll_url.

Python

python
import os, time, requests

API = "https://jantaris.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}

lyrics = """[Verse]
Neon lights on the empty street
I keep the rhythm, I keep the beat
[Chorus]
Drive all night, never look back
City hums along the track"""

task = requests.post(
    f"{API}/generate",
    params={"wait": 120},
    headers=HEADERS,
    json={
        "model": "mureka-v9",
        "input": {"lyrics": lyrics, "prompt": "synthwave pop, female vocal, 110 bpm"},
    },
    timeout=150,  # longer than wait
).json()

while task["status"] not in ("succeeded", "failed"):
    time.sleep(5)
    task = requests.get(f"{API}/tasks/{task['id']}", headers=HEADERS, timeout=30).json()

if task["status"] == "succeeded":
    song = task["output"][0]
    print(song["url"], song.get("duration"), task["cost"])
else:
    print("failed:", task["error"])

JavaScript

javascript
const API = "https://jantaris.com/v1";
const headers = {
  Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`,
  "Content-Type": "application/json",
};

let task = await (await fetch(`${API}/generate?wait=120`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "mureka-v9",
    input: {
      lyrics: "[Verse]\nNeon lights on the empty street\nI keep the rhythm, I keep the beat\n[Chorus]\nDrive all night, never look back",
      prompt: "synthwave pop, female vocal, 110 bpm",
    },
  }),
})).json();

while (!["succeeded", "failed"].includes(task.status)) {
  await new Promise((r) => setTimeout(r, 5000));
  task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.output?.[0]?.url ?? task.error);

Output URLs are temporary. Download the file to your own storage as soon as the task succeeds. If you generate songs in batches, swap the polling loop for a webhook: add webhook_url to the request and Jantaris POSTs the finished task to you, signed with x-jantaris-signature.

Style prompt vs lyrics

Keep the two fields apart. Mixing them is the most common reason a song comes back with stage directions sung as words.

prompt (style)lyrics
Purposehow the song should soundwhat gets sung
Exampleindie pop, melancholic, mid-tempo, female vocal, acoustic guitar[Verse] lines, [Chorus] lines
Avoidwords you want sungstyle notes between lines

A style prompt that works is a comma-separated list built from:

  • genre: synthwave pop, lo-fi hip hop, pop punk, bossa nova,
  • mood: uplifting, melancholic, dark, nostalgic,
  • tempo: a BPM value or slow, mid-tempo, fast,
  • vocal: female vocal, male vocal, raspy, breathy, choir,
  • two or three core instruments: warm Rhodes, upright bass, brushed drums.

Section tags in the lyrics

Mark sections with [Verse], [Chorus], [Bridge] and [Outro]. The model plans the arrangement around them. My habits:

  • write the chorus out in full every time it repeats instead of "chorus x2",
  • spell out numbers and abbreviations the way they should be sung,
  • keep lines inside a section at a similar syllable count,
  • in JSON, line breaks are \n.

Languages

Published material on Mureka V9 lists ten singing languages: English, Chinese, Japanese, Korean, Spanish, Portuguese, French, German, Italian and Russian. Other languages are accepted as text, but pronunciation is less predictable, so test before you commit to a batch.

Generating songs in Jantaris Studio

If you want to hear the model before writing code, the Studio form maps one-to-one to the API: Prompt is prompt, Lyrics is lyrics. The cost shows before you press Generate.

Jantaris Studio: Mureka V9 form with a synthwave pop style prompt and lyrics tagged with Verse
Mureka V9 in Jantaris Studio: style on top, lyrics below, price per song shown before you generate
Jantaris Studio tabs for Video, Image, Audio, Chat and code, and Tools
Mureka V9 and the audio separation tools live under the Audio tab, billed from the same balance as video and image models

Pricing: what an AI song costs

ItemUnitPrice
Mureka V9per song$0.124 per song
Music Extractorper started minute of source audio$0.50 per minute
Vocal Removerper started minute of source audio$0.50 per minute
Multistem Splitterper started minute of source audio, all three stems$1.50 per minute
Music Video 1.0by song length and resolutionfrom $0.11 per second

Because Mureka V9 bills per song, a 40-second jingle and a three-minute track cost the same. The formula for a batch:

text
cost = songs generated × song price
     + (optional) minutes of audio × tool price

Every request returns estimated_cost before it runs, the amount is held on your balance, and a task that ends failed releases the hold in full. The pricing page has a calculator, and the balance never expires.

Jantaris pricing page with top-up amounts and a cost calculator
Prepaid balance, no subscription: you pay per song, per image, per second of video or per 1M tokens

Instrumentals, stems and music videos

Mureka V9 on Jantaris always needs lyrics. To get a backing track without vocals, chain two calls:

  1. Generate the song with mureka-v9.
  2. Send its URL to music-extractor in audio_url. It returns the instrumental bed with the vocal removed.
python
inst = requests.post(
    f"{API}/generate",
    headers=HEADERS,
    json={"model": "music-extractor", "input": {"audio_url": song["url"]}},
    timeout=30,
).json()

The same audio_url input works for the other tools:

  • Vocal Remover returns the isolated vocal, useful for remixes or lip sync,
  • Multistem Splitter splits the song into vocals, drums and bass, so you can remix it or duck the vocal under a voiceover,
  • Music Video 1.0 takes the finished song plus 1 to 7 reference images and renders a video synced to the track.

If your song is the soundtrack for a short video, my AI product ad workflow shows how the image, video and music steps fit together, and what AI video costs per second covers the budget side.

Rights and commercial use

The model page states it plainly: outputs are yours as far as the law and Mureka's terms allow. Read Mureka's terms before releasing songs, and check your distributor's rules on AI-generated music, since streaming distributors set their own policies. Stem and vocal tools do not change the rights to a recording: only process songs you own or have permission to use.

FAQ

How much does the Mureka V9 API cost?

On Jantaris: $0.124 per song, regardless of length. The estimate appears before the task runs, and failed generations are not charged.

Can I set the song length?

No. There is no duration parameter. Length follows the lyrics: more sections make a longer song. For short-form video, write one verse and one chorus and trim in your editor.

Can Mureka V9 generate instrumentals?

Not directly on Jantaris, since lyrics is required. Generate the song, then run it through music-extractor to remove the vocal and keep the backing track.

How long can the lyrics and style prompt be?

Up to 3,000 characters of lyrics and up to 1,024 characters of style prompt.

Is there a free tier for the AI music API?

No. Jantaris has no free plan or signup credits. You top up from $10, the balance does not expire, and you pay per song generated.

Can I use the songs commercially?

Outputs are yours within the law and Mureka's terms. Check those terms and your distributor's AI music policy before publishing.