Introduction
Mureka AI turns a single text prompt into a complete, produced song — a direct Suno and Udio alternative — and the useapi.net Mureka API drives your own Mureka account over plain REST, with its latest V9 default and flagship O2 models, at your normal consumer subscription price. Mureka is the music generator from Chinese tech company Kunlun Tech, built on its proprietary Mureka models (mureka-9, mureka-o2). One generation returns two complete songs — vocals, melody, and arrangement — and from there you can write your own lyrics, force an instrumental, seed a track from a reference song or melody, extend a song, or clone a voice for text-to-speech. useapi.net runs all of it from one API token.
Pricing
You keep your normal Mureka web subscription for the underlying credits, plus a single flat $15/month to useapi.net that covers API access to every supported service — there is no per-song surcharge from us. Mureka's own subscription plans:
| Plan | Price | Songs / month | Cost per song |
|---|---|---|---|
| Pro | $9/month | up to 500 | ~1.8¢ |
| Premier | $27/month | up to 2,000 | ~1.35¢ |
Song and speech allowances are shared (songs or speech minutes), lyrics generation is free, and downloading instrumentals and stems is free. The newer V9 and O2 models consume more Gold per song, so real counts run lower — roughly 250–400 songs on V9/O2. Pro/Premier members can buy additional Gold packs (price shown at checkout).
This is the consumer-account route. Mureka also runs an official developer API, but it works differently — it is sold as prepaid top-ups with 12-month validity, consumed per call rather than billed monthly, and the ladder runs from $30 (1 concurrent request) up to $30,000 (150 concurrent), with the $1,000 tier giving 5 concurrent. Generation there runs ~$0.045/song on V8/V9/O2 (~$0.03 on the older V7.6), plus extra charges for lyrics generation and stem export. useapi.net instead automates the consumer plan you already pay for, so a $27 Premier plan plus the flat $15 covers far more generation than the official API's entry tier. For other music options under the same subscription, see the Flow Music API tutorial (Google's Lyria 3 Pro) and the TemPolor API.
Supported models
Pick a model per request with the model field on POST /music/create. Omit it and the API applies its default, V9.
| Model | Engine | What it's for |
|---|---|---|
V9 (default) |
mureka-9 |
Latest generation, used when model is omitted — advanced prompt control and studio-grade sound. |
O2 |
mureka-o2 |
Flagship high-end model — best audio quality and musical coherence, with strong multilingual vocals. |
V8 |
mureka-8.0.1 |
Prior-generation general-purpose model. |
V7.6 |
mureka-7.6 |
Earlier model kept for compatibility — it was the default before V9. |
Older aliases (V7.5, V7, O1, V6) are still accepted but redirect to current engines, so prefer the four models above. Every model returns finished MP3 audio — there is no MIDI or sheet-music output. The same account and token also drive Mureka's text-to-speech and voice cloning, covered below.
Generate a song in two API calls
You need a useapi.net API token and a connected Mureka account — export the token so the curl examples below run as-is:
export USEAPI_TOKEN="user:1234-..."
The most reliable workflow is asynchronous: the create call returns a jobid immediately, then you poll until both songs are ready.
1. Submit the job — POST https://api.useapi.net/v1/mureka/music/create:
curl -X POST "https://api.useapi.net/v1/mureka/music/create" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"account": "12345678901234",
"prompt": "upbeat synthwave with bright female vocals about chasing a sunrise, 110 bpm",
"model": "V9",
"async": true
}'
The account is your Mureka account id, and it is optional when you have a single account configured (the API auto-selects it). In async mode the response returns immediately with 201 Created, a jobid, and status: "created":
{
"jobid": "j0622184042017475905m-u1234-a12345678901234-bot:mureka",
"verb": "music/create",
"jobType": "music",
"status": "created",
"created": "2026-06-22T18:40:42.412Z",
"request": {
"account": "12345678901234",
"prompt": "upbeat synthwave with bright female vocals about chasing a sunrise, 110 bpm",
"model": "V9",
"async": true
}
}
2. Poll for the result — GET https://api.useapi.net/v1/mureka/jobs/{jobid} (the jobid ends in bot:mureka, so URL-encode it in the path — it contains a :):
curl "https://api.useapi.net/v1/mureka/jobs/JOBID" \
-H "Authorization: Bearer $USEAPI_TOKEN"
When status is completed, the finished audio lives in response.songs[]. Each generation returns two songs (an A/B pair, version "1" and "2"), and each carries an mp3_url plus cover art:
{
"jobid": "j0622184042017475905m-u1234-a12345678901234-bot:mureka",
"status": "completed",
"response": {
"feed_id": 11223344,
"state": 3,
"songs": [
{
"song_id": "user:1234-mureka:123456789-song:33445566",
"title": "Chasing the Sunrise",
"version": "1",
"duration_milliseconds": 173040,
"mp3_url": "https://static-cos.mureka.ai/cos-prod/...1.mp3",
"cover": "https://static-cos.mureka.ai/cos-prod/...1.png"
},
{
"song_id": "user:1234-mureka:123456789-song:33445567",
"title": "Chasing the Sunrise",
"version": "2",
"duration_milliseconds": 178910,
"mp3_url": "https://static-cos.mureka.ai/cos-prod/...2.mp3",
"cover": "https://static-cos.mureka.ai/cos-prod/...2.png"
}
]
}
}
A song typically finishes in 30–90 seconds (about 45 on average), and an account supports up to 10 parallel generations. Songs can run up to about 5 minutes depending on the lyrics. Jobs are retained for 7 days, so you can re-fetch a finished result any time in that window. Prefer not to poll? Pass a replyUrl in the create body to receive a webhook callback when the job completes (the payload matches the poll response). A job can come back status: "failed" (e.g. a content-policy rejection), and the create call may return 402 (useapi.net subscription expired) / 412 (out of Mureka credits), 429 (rate limit, or all 10 generation slots busy), or 596 (account session error) — see the endpoint docs for the full list.
Write your own lyrics, or force an instrumental
The plain prompt on POST /music/create lets the model write the lyrics for you. To supply your own words, switch to POST /music/create-advanced — lyrics is required there (use [Verse] / [Chorus] tags, 50–5,000 chars), and desc steers the style with a comma-separated list of genres, moods, and vocal direction. vocal_gender forces male or female:
# Your own lyrics → forces a vocal render of those exact words
curl -X POST "https://api.useapi.net/v1/mureka/music/create-advanced" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"lyrics": "[Verse 1]\nCity lights blur in the rain\n[Chorus]\nAnd I will wait for the morning sun",
"desc": "soulful R&B, lush keys, 90 bpm",
"vocal_gender": "female",
"model": "V9",
"async": true
}'
For a purely instrumental track, use POST /music/create-instrumental — just a prompt describing the music, no lyrics:
curl -X POST "https://api.useapi.net/v1/mureka/music/create-instrumental" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "prompt": "ethereal post-rock, cascading delay guitars, orchestral swells building to a cinematic crescendo", "model": "O2", "async": true }'
All three endpoints return the same jobid you poll on, and any resulting song_id can be lengthened with POST /music/extend (pass the song_id plus new lyrics) or reworked with POST /music/regenerate.
Reference tracks, melody seeding, and custom vocals
POST /music/create-advanced can seed a song from your own audio instead of a text description, using three reference inputs (each mutually exclusive with desc):
| Parameter | Seed from | Set it up with |
|---|---|---|
ref_id |
A reference track whose style inspires the song | POST /files (upload), GET /music/refs (browse) |
motif_id |
A melody idea that kickstarts the song | POST /files/motif |
vocal_id |
A specific singing voice, including your own uploaded vocal | POST /files/vocal, GET /music/vocals |
This is how you make Mureka sing your custom lyrics in a voice you supply — upload an MP3 vocal sample, take the returned id, and pass it as vocal_id alongside your lyrics. The same Pro-tier reference features (custom soundtracks and melodies) that the Mureka website offers are all reachable from the API.
Clone a voice and generate multi-speaker speech
The same account also drives Mureka's text-to-speech. POST /speech turns text into audio with either a preset or a cloned voice, and unlike music generation it has no concurrency (generation-slot) limit. Clone a voice first from an MP3 sample with POST /speech/voice, then pass the returned id as the voice_id parameter with your text:
curl -X POST "https://api.useapi.net/v1/mureka/speech" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "text": "Hello, this is a cloned voice speaking.", "voice_id": 12345, "async": true }'
For a back-and-forth dialogue, drop text/voice_id and send a conversation array instead — each turn names its own voice_id, so two or more cloned voices can talk to each other in one render:
curl -X POST "https://api.useapi.net/v1/mureka/speech" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"conversation": "[{\"voice_id\": 12345, \"text\": \"Is there anything I can help you with?\"}, {\"voice_id\": 67890, \"text\": \"Yes — read me back the weather.\"}]",
"async": true
}'
Speech jobs poll the same way, with the finished MP3 in response.mp3_url. See GET /speech/voices for the available voices, including the ones you have cloned.
Batch-generate with a script
Finding the right track takes many attempts, and running them by hand is tedious. The Node.js script reads a list of prompts from prompts.json, submits each one to POST /music/create in async mode, polls every job until it is done, then downloads both MP3s from each generation — so you can queue a batch and come back to a folder of finished songs.
You need Node.js v21 or newer. Put prompts.json and mureka.mjs in the same folder and run node ./mureka.mjs API_TOKEN, where API_TOKEN is your useapi.net API token. With more than one Mureka account configured, pass the account id (or its Google email) as a second argument — with a single account it is auto-selected. Each entry's prompt is required, and the optional model maps straight to the create endpoint.
Examples
These are real songs and speech generated through the Mureka API, straight from our blog walkthroughs — each from the request shapes shown above. Full prompts and curl for each are in the linked posts.
Astro Gardener — V9, female-vocal indie pop with custom lyrics (create-advanced)
— from Mureka: V9 Now the Default Music Model
Cascading Sunrise — V9 instrumental (create-instrumental)
— from Mureka: V9 Now the Default Music Model
Galactic Odyssey — flagship O2 instrumental (create-instrumental)
— from Mureka: O2 and V7.6 Music Models
Pirate Programmer — V7.6, male-vocal sea-shanty-meets-electronic (create-advanced)
— from Mureka: O2 and V7.6 Music Models
Custom vocal clone — an uploaded voice singing custom lyrics over a reference track (create-advanced with vocal_id + ref_id)
— from Mureka: Custom Vocals
Multi-speaker speech — two cloned voices in one conversation (POST /speech)
— from Mureka: Speech Generation and Voice Cloning
Frequently asked questions
Is the Mureka API a Suno or Udio alternative? Yes. Like Suno and Udio, Mureka generates full songs with vocals from a single text prompt — and the useapi.net Mureka API drives your own Mureka account over plain REST, with the latest V9 default and flagship O2 models, all under one flat $15/month useapi.net subscription. See Supported models above.
Is there an official Mureka API? Yes. Mureka runs an official developer API, sold as prepaid top-ups (12-month validity) consumed per call — from $30 (1 concurrent request) up to $30,000 (150), with the $1,000 tier giving 5 concurrent. Generation runs ~$0.045/song on V8/V9/O2 (~$0.03 on V7.6), plus charges for lyrics and stems. useapi.net is the consumer-account route, automating the $9–$27/month Mureka web plan you already pay for. See Pricing above.
Which models can I use? V9 (default), the flagship O2, V8, and V7.6. Omit the model field and the API uses V9. Older aliases (V7.5, V7, O1, V6) still work but redirect to current engines. See Supported models above.
Can I write my own lyrics or generate an instrumental? Yes. Use POST /music/create-advanced with [Verse]/[Chorus]-tagged lyrics to force a vocal render of your exact words, or POST /music/create-instrumental for a lyrics-free track. See Write your own lyrics, or force an instrumental above.
Can I clone a voice or generate speech? Yes. POST /speech/voice clones a voice from an MP3 sample, then POST /speech renders text — including multi-speaker conversation dialogues — with no concurrency (generation-slot) limit. See Clone a voice and generate multi-speaker speech above.
What do I get back, and in what format? Every music generation returns two complete songs (an A/B pair), each as an mp3_url with cover art, up to about 5 minutes long. The output is finished MP3 audio — there is no MIDI or sheet-music export. See Generate a song in two API calls above.
How much does it cost? You keep your normal Mureka web plan for credits (~1.35–1.8¢ per song), plus a flat $15/month to useapi.net for API access to all services, with no per-song surcharge. See Pricing above.
How is this different from the official Mureka API? The official Mureka API is sold as prepaid top-ups (12-month validity) consumed per call, from $30 up to $30,000, charging ~$0.045/song on V8/V9/O2 (~$0.03 on V7.6) plus lyric and stem fees. useapi.net instead automates your own consumer Mureka account, so you generate at the Mureka website subscription price plus a flat $15/month — and the same one subscription covers other AI services too, including the Flow Music and TemPolor music APIs.
Conclusion
Visit our Discord Server or Telegram Channel for any support questions and concerns.
The full runnable example is in the mureka-api GitHub repo.
Top comments (0)