Create ElevenLabs Music — Music Generate
curl --request POST \
--url https://api.apisale.ai/v1/run/elevenlabs/elevenlabs-music/music-generate \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"input": {
"output_format": "mp3_44100_128",
"respect_sections_durations": true,
"prompt": "Upbeat cinematic electronic track with warm analog synth pads, driving percussion, hopeful melody, modern trailer energy, 30 seconds",
"music_length_ms": 30000
}
}
'import requests
url = "https://api.apisale.ai/v1/run/elevenlabs/elevenlabs-music/music-generate"
payload = { "input": {
"output_format": "mp3_44100_128",
"respect_sections_durations": True,
"prompt": "Upbeat cinematic electronic track with warm analog synth pads, driving percussion, hopeful melody, modern trailer energy, 30 seconds",
"music_length_ms": 30000
} }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: {
output_format: 'mp3_44100_128',
respect_sections_durations: true,
prompt: 'Upbeat cinematic electronic track with warm analog synth pads, driving percussion, hopeful melody, modern trailer energy, 30 seconds',
music_length_ms: 30000
}
})
};
fetch('https://api.apisale.ai/v1/run/elevenlabs/elevenlabs-music/music-generate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"run_id": "<string>",
"endpoint": "<string>",
"model": "<string>",
"capability": "<string>",
"mode": "<string>",
"status": "queued",
"created_at": "2023-11-07T05:31:56Z",
"output": {},
"error": {
"type": "<string>",
"code": 123,
"message": "<string>"
},
"billing": {
"amount": "<string>",
"currency": "usd"
},
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"elapsed_ms": 123
}Elevenlabs
ElevenLabs Music — Music Generate
ElevenLabs text-to-music generation. Optimized for text to music via apisale.
POST
/
v1
/
run
/
elevenlabs
/
elevenlabs-music
/
music-generate
Create ElevenLabs Music — Music Generate
curl --request POST \
--url https://api.apisale.ai/v1/run/elevenlabs/elevenlabs-music/music-generate \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"input": {
"output_format": "mp3_44100_128",
"respect_sections_durations": true,
"prompt": "Upbeat cinematic electronic track with warm analog synth pads, driving percussion, hopeful melody, modern trailer energy, 30 seconds",
"music_length_ms": 30000
}
}
'import requests
url = "https://api.apisale.ai/v1/run/elevenlabs/elevenlabs-music/music-generate"
payload = { "input": {
"output_format": "mp3_44100_128",
"respect_sections_durations": True,
"prompt": "Upbeat cinematic electronic track with warm analog synth pads, driving percussion, hopeful melody, modern trailer energy, 30 seconds",
"music_length_ms": 30000
} }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: {
output_format: 'mp3_44100_128',
respect_sections_durations: true,
prompt: 'Upbeat cinematic electronic track with warm analog synth pads, driving percussion, hopeful melody, modern trailer energy, 30 seconds',
music_length_ms: 30000
}
})
};
fetch('https://api.apisale.ai/v1/run/elevenlabs/elevenlabs-music/music-generate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"run_id": "<string>",
"endpoint": "<string>",
"model": "<string>",
"capability": "<string>",
"mode": "<string>",
"status": "queued",
"created_at": "2023-11-07T05:31:56Z",
"output": {},
"error": {
"type": "<string>",
"code": 123,
"message": "<string>"
},
"billing": {
"amount": "<string>",
"currency": "usd"
},
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"elapsed_ms": 123
}Overview
ElevenLabs text-to-music generation. Optimized for text to music via apisale.Docs = API contract + Try it (snapshot). Explore = browser playground. Model page = product examples.
Endpoint
POST https://api.apisale.ai/v1/run/elevenlabs/elevenlabs-music/music-generate
| Model slug | elevenlabs/elevenlabs-music/music-generate |
| Category | Text to Music (music-generate) |
| Lab | Elevenlabs |
| Mode | async |
Pricing
From $0.105/min apisale price is 30% below the vendor’s official list price.| Tier | Unit | Official price | apisale price |
|---|---|---|---|
| per minute (rounded up) | minute | $0.150 | $0.105 |
Official price = vendor list price. apisale price = what you pay through apisale.
Request
{
"input": {
"output_format": "mp3_44100_128",
"respect_sections_durations": true,
"prompt": "Upbeat cinematic electronic track with warm analog synth pads, driving percussion, hopeful melody, modern trailer energy, 30 seconds",
"music_length_ms": 30000
}
}
Parameters
Fields marked * are required. UseAuthorization: Key YOUR_API_KEY for REST.
string
Music description (mutually exclusive with composition_plan). Maximum 2000 characters.
string
Default:
mp3_44100_128 Values: mp3_22050_32, mp3_44100_32, mp3_44100_64, mp3_44100_96, mp3_44100_128, mp3_44100_192, pcm_8000, pcm_16000, pcm_22050, pcm_24000, pcm_44100, pcm_48000, ulaw_8000, alaw_8000, opus_48000_32, opus_48000_64, opus_48000_96, opus_48000_128, opus_48000_192number
required
Duration in milliseconds (3000-600000). Required for billing. Range: 3000 – 600000
string
Structured composition plan (sections/styles/lyrics).
boolean
—
boolean
Default:
truestring
Optional HTTPS webhook when the run reaches a terminal state.
boolean
Block until completion (same Run response shape).
Input schema
Input schema
{
"params": {
"prompt": {
"type": "string",
"max_length": 2000,
"description": "Music description (mutually exclusive with composition_plan). Maximum 2000 characters."
},
"output_format": {
"type": "enum",
"values": [
"mp3_22050_32",
"mp3_44100_32",
"mp3_44100_64",
"mp3_44100_96",
"mp3_44100_128",
"mp3_44100_192",
"pcm_8000",
"pcm_16000",
"pcm_22050",
"pcm_24000",
"pcm_44100",
"pcm_48000",
"ulaw_8000",
"alaw_8000",
"opus_48000_32",
"opus_48000_64",
"opus_48000_96",
"opus_48000_128",
"opus_48000_192"
],
"default": "mp3_44100_128"
},
"music_length_ms": {
"max": 600000,
"min": 3000,
"type": "int",
"required": true,
"description": "Duration in milliseconds (3000-600000). Required for billing."
},
"composition_plan": {
"type": "object",
"description": "Structured composition plan (sections/styles/lyrics)."
},
"force_instrumental": {
"type": "bool"
},
"respect_sections_durations": {
"type": "bool",
"default": true
}
}
}
Submit response
Returns a Run withrun_id. Poll with GET /v1/runs/{run_id} or use Try it above.
string
required
Unique run ID — save for polling and webhooks.
string
required
queued (async) or terminal state for sync runs.object
Result when
status is succeeded — see Output schema below.Example (async submit)
{
"run_id": "run_550e8400-e29b-41d4-a716-446655440000",
"endpoint": "elevenlabs/elevenlabs-music/music-generate",
"model": "music-generate",
"capability": "audio",
"mode": "music-generate",
"status": "queued",
"output": null,
"error": null,
"billing": null,
"created_at": "2026-06-27T12:00:00.000Z",
"started_at": null,
"completed_at": null,
"elapsed_ms": null
}
Output
Whenstatus is succeeded, output follows this schema:
Output schema
Output schema
{
"type": "object",
"example": {
"audio": {
"url": "https://cdn.mountsea.ai/tasks/ms-example/0.mp3",
"content_type": "audio/mpeg"
}
},
"required": [
"audio"
],
"properties": {
"audio": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"file_name": {
"type": "string"
},
"content_type": {
"type": "string"
}
}
}
},
"description": "Succeeded task output: generated audio (CDN URL in audio.url)."
}
Example
curl -X POST "https://api.apisale.ai/v1/run/elevenlabs/elevenlabs-music/music-generate" \
-H "Authorization: Key YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {
"output_format": "mp3_44100_128",
"respect_sections_durations": true,
"prompt": "Upbeat cinematic electronic track with warm analog synth pads, driving percussion, hopeful melody, modern trailer energy, 30 seconds",
"music_length_ms": 30000
}
}'
Related
Authorizations
Key sk-... (native REST) or Bearer sk-... (vendor SDKs)
Body
application/json
Show child attributes
Show child attributes
Example:
{
"output_format": "mp3_44100_128",
"respect_sections_durations": true,
"prompt": "Upbeat cinematic electronic track with warm analog synth pads, driving percussion, hopeful melody, modern trailer energy, 30 seconds",
"music_length_ms": 30000
}
Response
201 - application/json
Run accepted
Unique run identifier
Model slug
Available options:
queued, processing, succeeded, failed, timeout, cancelled Show child attributes
Show child attributes
Show child attributes
Show child attributes
