Mureka AI Mureka V9.5 Prompt To Song API Documentation
Playground
Try it on WaveSpeedAI!Mureka 9.5 Prompt-to-Song creates complete AI songs from text prompts via the Mureka official API, supporting prompt-based songwriting, vocals, instrumentals, music demos, social content, and creative audio production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Mureka V9.5 Prompt-to-Song generates one complete song from a natural-language prompt, optional style selections, and optional Mureka reference or vocal IDs. This endpoint can create both lyrics and musical arrangement for you, making it useful when you want a full song from a high-level creative direction.
Why Choose This?
-
Prompt-to-song generation
Generate a complete song from a written music description. -
Auto lyrics and arrangement
Let the model create lyrics, melody, vocals, and arrangement from your prompt and style settings. -
Optional style control
Usestylesto guide the genre or musical direction. -
Reference ID support
Use existing Mureka reference or vocal IDs for stronger style or vocal guidance. -
Multiple output formats
Choosemp3,wav, orflacbased on your workflow needs.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | No | Optional song description, including genre, mood, instruments, tempo, theme, vocal direction, or production style. |
| styles | No | Optional style selections, such as pop, rock, jazz, r&b, edm, or lo-fi. |
| output_format | No | Output audio format: mp3, wav, or flac. |
| reference_id | No | Existing Mureka reference file ID used to guide the song style or audio direction. |
| vocal_id | No | Existing Mureka vocal file ID used to guide the vocal identity or singing style. |
At least one useful generation control should normally be supplied, such as prompt, styles, reference_id, or vocal_id.
How to Use
- Write a prompt optional — Describe the song theme, genre, mood, instruments, tempo, vocal style, and production direction.
- Choose styles optional — Add one or more style selections to guide the genre or sound.
- Add reference IDs optional — Use
reference_idorvocal_idwhen you want stronger control. - Choose output format — Select
mp3,wav, orflac. - Submit — Generate the full song and retrieve the output URL.
Pricing
Pricing is fixed at $0.750 per song.
| Output | Cost |
|---|---|
| One generated song | $0.750 |
Each request generates one song. output_format, styles, reference_id, and vocal_id do not add separate charges.
Best Use Cases
- Prompt-based song creation — Generate a full song from a short creative description.
- Auto lyrics workflows — Let the model create lyrics and arrangement automatically.
- Demo production — Quickly create song demos for creative review.
- Style exploration — Test different genres, moods, and vocal directions from the same idea.
- Vocal-guided generation — Use a
vocal_idwhen a specific vocal identity or singing style matters. - Reference-based music creation — Use
reference_idto guide style, arrangement, or audio direction.
Pro Tips
- Use a clear prompt with genre, mood, tempo, instruments, vocal style, and theme.
- Add
styleswhen you want stronger genre direction. - Use
reference_idwhen you want the song to follow an existing musical reference. - Use
vocal_idwhen vocal identity or singing style matters. - Choose
mp3for compact delivery, orwav/flacwhen higher-quality audio files are needed. - Keep the prompt focused on the final song direction instead of listing too many unrelated styles.
Notes
reference_idcan be prepared with Create Upload ID.vocal_idcan be created with Vocal Clone.- Use IDs from compatible Mureka workflows to avoid reference mismatch.
- Changing
output_formatdoes not add a format surcharge.
Related Models
- Mureka V9.5 Generate Song — Generate a complete song from supplied lyrics.
- Mureka V9.5 Generate BGM — Generate instrumental background music from a text prompt.
- Mureka V9.5 Prompt-to-Song — Generate a complete song from prompt and style guidance.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
set -euo pipefail
export WAVESPEED_API_KEY="your-api-key"
REQUEST_BODY=$(cat <<'JSON'
{
"output_format": "mp3"
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/mureka-ai/mureka-v9.5/prompt-to-song" \
-H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
-H "Content-Type: application/json" \
-d "${REQUEST_BODY}")
TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body \
"${RESULT_URL}" \
-H "Authorization: Bearer ${WAVESPEED_API_KEY}")
RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')
case "${STATUS}" in
completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
failed|cancelled|timeout|deleted) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
*) sleep 2 ;;
esac
doneParameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | No | - | Optional description of the song to generate, up to 2000 characters. | |
| styles | array<string> | No | - | 0 ~ 13 items | Optional music styles used to guide generation. |
| output_format | string | No | mp3 | mp3, wav, flac | Output audio format after re-uploading to WaveSpeed CDN. |
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 | Output values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.status | string | Task status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses. |
| 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 |
| data.model | string | Model ID used for the prediction |
| data.outputs | array<string | object> | Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model. |
| data.urls | object | Object containing related API endpoints |
| data.status | string | Status: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses |
| data.created_at | string | ISO timestamp of when the request was created |
| 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 |