Mureka Ai Mureka V9 Generate Song
Playground
Try it on WavespeedAI!Mureka AI V9 Generate Song is a fast AI music generation model that creates high-quality songs via the official Mureka API. Ready-to-use REST inference API for AI song generation, lyrics-to-music workflows, vocal music creation, demo production, creative audio projects, and professional music generation with simple integration, no coldstarts, and affordable pricing.
Features
Mureka AI V9 Generate Song
Mureka AI V9 Generate Song creates full songs from lyrics with optional style guidance and optional reference inputs for melody, vocals, or overall musical direction. It is suitable for songwriting, demo generation, vocal-guided creation, and fast music prototyping workflows.
Why Choose This?
-
Lyrics-to-song generation Turn written lyrics into complete song outputs with minimal setup.
-
Optional style prompting Add a
promptto guide genre, mood, instrumentation, arrangement, or production style. -
Reference-based control Use optional
reference_id,vocal_id, ormelody_idinputs to steer the result more precisely. -
Multiple generations per run Generate up to
3songs in a single request withnumber_of_songs. -
Flexible output formats Export generated songs as
mp3,wav, orflac. -
Simple pricing Pricing depends only on how many songs you generate.
Parameters
| Parameter | Required | Description |
|---|---|---|
| lyrics | Yes | Lyrics for the generated song. Official limit: up to 3000 characters. |
| prompt | No | Optional style prompt for the song. Official limit: up to 1024 characters. |
| number_of_songs | No | Number of generations. Range: 1–3. Default: 1. |
| output_format | No | Output audio format after re-uploading to WaveSpeed CDN. Supported values: mp3, wav, flac. Default: mp3. |
| reference_id | No | Optional Mureka uploaded reference file ID. |
| vocal_id | No | Optional Mureka uploaded vocal file ID. |
| melody_id | No | Optional Mureka uploaded melody file ID. |
How to Use
- Write your lyrics — provide the lyrics you want to turn into a song.
- Add a style prompt (optional) — describe genre, mood, instrumentation, tempo, or production feel.
- Add references (optional) — use
reference_id,vocal_id, ormelody_idif you want more control over the result. - Set number of songs — choose how many generations you want, from
1to3. - Choose output format — select
mp3,wav, orflac. - Submit — run the model and download the generated songs.
Example Prompt
Emotional pop ballad with piano, warm strings, cinematic chorus, expressive female vocal, polished modern production
Pricing
Pricing is based on number_of_songs.
| Number of Songs | Cost |
|---|---|
| 1 | $0.03 |
| 2 | $0.06 |
| 3 | $0.09 |
Billing Rules
- Each generated song costs $0.03
- Total price = $0.03 ×
number_of_songs prompt,output_format,reference_id,vocal_id, andmelody_iddo not affect pricing
Best Use Cases
- Songwriting demos — Quickly turn lyrics into draft songs for evaluation and iteration.
- Style exploration — Test the same lyrics across different genres, moods, and arrangements.
- Reference-guided generation — Use melody or vocal references to guide the resulting song.
- Content creation — Generate original song material for videos, social content, and creative projects.
- Music ideation — Explore multiple song directions in a single run with
number_of_songs.
Pro Tips
- Keep lyrics clearly structured with verses, choruses, and bridges when possible.
- Use the style
promptto specify genre, instrumentation, vocal tone, tempo, and production feel. - Increase
number_of_songswhen you want multiple variations from the same lyrics. - Use
reference_id,vocal_id, ormelody_idonly when you want tighter guidance over the output. - Start with
mp3for convenience, then usewavorflacwhen higher-quality output matters more.
Notes
lyricsis required.number_of_songssupports values from1to3.lyricssupports up to3000characters.promptsupports up to1024characters.output_formatdefaults tomp3.- Pricing depends only on
number_of_songs.
Related Models
- Mureka AI Stem Song — Process songs into stem-based outputs for remixing, editing, and production workflows.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/mureka-ai/mureka-v9/generate-song" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"number_of_songs": 1,
"output_format": "mp3"
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| lyrics | string | Yes | - | - | Lyrics for the generated song. Official limit: up to 3000 characters. |
| prompt | string | No | - | Optional style prompt for the song. Official limit: up to 1024 characters. | |
| number_of_songs | integer | No | 1 | 1 ~ 3 | Number of generations. Mureka charges per generated item. |
| output_format | string | No | mp3 | mp3, wav, flac | Output audio format after re-uploading to WaveSpeed CDN. |
| reference_id | string | No | - | - | Optional Mureka uploaded reference file ID. |
| vocal_id | string | No | - | - | Optional Mureka uploaded vocal file ID. |
| melody_id | string | No | - | - | Optional Mureka uploaded melody file ID. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |