Mureka AI Mureka V9.5 Prompt To Song API Documentation

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
    Use styles to 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
    Choose mp3, wav, or flac based on your workflow needs.


Parameters

ParameterRequiredDescription
promptNoOptional song description, including genre, mood, instruments, tempo, theme, vocal direction, or production style.
stylesNoOptional style selections, such as pop, rock, jazz, r&b, edm, or lo-fi.
output_formatNoOutput audio format: mp3, wav, or flac.
reference_idNoExisting Mureka reference file ID used to guide the song style or audio direction.
vocal_idNoExisting 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

  1. Write a prompt optional — Describe the song theme, genre, mood, instruments, tempo, vocal style, and production direction.
  2. Choose styles optional — Add one or more style selections to guide the genre or sound.
  3. Add reference IDs optional — Use reference_id or vocal_id when you want stronger control.
  4. Choose output format — Select mp3, wav, or flac.
  5. Submit — Generate the full song and retrieve the output URL.

Pricing

Pricing is fixed at $0.750 per song.

OutputCost
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_id when a specific vocal identity or singing style matters.
  • Reference-based music creation — Use reference_id to guide style, arrangement, or audio direction.

Pro Tips

  • Use a clear prompt with genre, mood, tempo, instruments, vocal style, and theme.
  • Add styles when you want stronger genre direction.
  • Use reference_id when you want the song to follow an existing musical reference.
  • Use vocal_id when vocal identity or singing style matters.
  • Choose mp3 for compact delivery, or wav / flac when higher-quality audio files are needed.
  • Keep the prompt focused on the final song direction instead of listing too many unrelated styles.

Notes

  • reference_id can be prepared with Create Upload ID.
  • vocal_id can be created with Vocal Clone.
  • Use IDs from compatible Mureka workflows to avoid reference mismatch.
  • Changing output_format does not add a format surcharge.

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
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringNo-Optional description of the song to generate, up to 2000 characters.
stylesarray<string>No-0 ~ 13 itemsOptional music styles used to guide generation.
output_formatstringNomp3mp3, wav, flacOutput audio format after re-uploading to WaveSpeed CDN.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.statusstringTask status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses.
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<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.urlsobjectObject containing related API endpoints
data.statusstringStatus: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.