Mureka AI Mureka V9.5 Generate Bgm API Documentation

Mureka AI Mureka V9.5 Generate Bgm API Documentation

Playground

Try it on WaveSpeedAI!

Mureka 9.5 Generate BGM creates background music from prompts via the Mureka official API, supporting instrumental tracks, mood-based scoring, video BGM, game audio, ads, social content, and creative production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Mureka V9.5 Generate BGM creates one instrumental background-music track from a text prompt. Describe the mood, genre, instruments, tempo, and scene context, then choose an output format to generate music for videos, games, ads, social content, and other creative workflows.


Why Choose This?

  • Prompt-to-BGM generation
    Generate instrumental background music directly from a text prompt.

  • Instrumental output
    Create background tracks without requiring lyrics or vocal references.

  • Flexible style control
    Describe genre, mood, tempo, instruments, arrangement, and production direction.

  • Multiple output formats
    Choose mp3, wav, or flac based on your delivery needs.

  • Simple music workflow
    Provide a prompt, select an output format, and generate one complete BGM track.


Parameters

ParameterRequiredDescription
promptYesDescription of the desired background music, including mood, genre, instruments, tempo, scene context, or production style.
output_formatNoOutput audio format: mp3, wav, or flac.

How to Use

  1. Write your prompt — Describe the background music style, mood, tempo, instruments, and intended scene.
  2. Choose output format — Select mp3, wav, or flac.
  3. Submit — Generate the BGM track and retrieve the output URL.

Pricing

Pricing is fixed at $0.225 per BGM track.

OutputCost
One generated BGM track$0.225

Each request generates one track. Changing output_format does not add a format surcharge.


Best Use Cases

  • Background music generation — Create instrumental tracks for video, games, podcasts, or creative projects.
  • Video and social content — Generate music beds for shorts, reels, ads, and promotional clips.
  • Game and app audio — Create loop-friendly or scene-matching background music.
  • Commercial and brand content — Produce mood-specific music for campaigns and product videos.
  • Creative prototyping — Test different genres, tempos, and emotional directions quickly.

Pro Tips

  • Describe the intended scene or use case, such as cinematic trailer, cozy vlog, product ad, fantasy game menu, or relaxing background loop.
  • Include genre, mood, tempo, instruments, and production style for better control.
  • Use words like ambient, cinematic, lo-fi, orchestral, electronic, or acoustic when style matters.
  • Choose mp3 for compact delivery, or wav / flac when higher-quality audio files are needed.
  • Keep the prompt focused on instrumental background music rather than lyrics or vocals.

Notes

  • Use prompt to control the background music direction.
  • 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'
{
  "prompt": "A cinematic ocean wave at sunrise, highly detailed",
  "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/generate-bgm" \
  -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
promptstringYes-Prompt describing the background music. Official limit: up to 1024 characters.
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.