
Writes complete songs from a style description, with vocals, arrangement, and mixing, or instrumentals and covers.
Writes complete songs from a style description, with vocals, arrangement, and mixing, or instrumentals and covers.
Generation is asynchronous and usually takes from tens of seconds to a few minutes.
Also known as StepFun StepAudio 3 Music
stepaudio-3-music/v1/audio/generationsstepaudio-3-music-previewstepfun/stepaudio-3-musicLive pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
StepAudio 3 Music runs through POST /v1/audio/generations. The request returns a job_id right away; poll GET /v1/jobs/{job_id} until the job completes and read the output URLs from the result. Get an API key from the EmpirioLabs dashboard.
curl https://api.empiriolabs.ai/v1/audio/generations \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "stepaudio-3-music",
"prompt": "Describe what you want StepAudio 3 Music to generate."
}'curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY"import requests
response = requests.post(
"https://api.empiriolabs.ai/v1/audio/generations",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
json={
"model": "stepaudio-3-music",
"prompt": "Describe what you want StepAudio 3 Music to generate.",
},
)
job = response.json()
# Generation runs as an async job. Poll until it completes.
import time
while True:
status = requests.get(
f"https://api.empiriolabs.ai/v1/jobs/{job['job_id']}",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
).json()
if status.get("status") in ("completed", "failed"):
print(status)
break
time.sleep(5)Request parameters supported by the StepAudio 3 Music API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| prompt | string | - | - | Style description: genre, vocals, mood, instruments, and key. |
| lyrics | string | - | - | Optional lyrics. Section tags such as [Verse], [Chorus], and [Outro] shape the structure. Left empty, the model writes them. Required for a cover or a vocal arrangement. |
| task | enum | text_to_music | text_to_music, music_cover, vocal_to_music | Write a new song, cover a reference song, or build an arrangement around a dry vocal. |
| instrumental | boolean | false | - | Generate a track with no vocals. Cannot be combined with lyrics. |
| song_audio | string | - | - | Base64 reference song. Required for a cover. |
| vocal_audio | string | - | - | Base64 dry vocal with no accompaniment. Required for a vocal arrangement. |
| response_format | enum | mp3 | mp3, wav, flac, opus, pcm | Output audio format. |
| temperature | number | 0.85 | 0.01 to 2 | Sampling temperature. Higher is more varied. |
| top_p | number | 0.92 | 0 to 1 | Nucleus sampling probability mass. |
| lyrics_rewrite | boolean | false | - | Let the model rewrite the lyrics you supplied. |
Describe the style and the model writes and performs a complete song. Supply lyrics or let the model write them, set instrumental for a track with no vocals, or attach a reference song for a cover or a dry vocal to build an arrangement around. Section tags such as [Verse], [Chorus], and [Outro] shape the structure. Output length is chosen by the model and is typically one to three minutes, so it is not set by a parameter and two runs of the same prompt can differ. Billing follows the generated length. Instrumental and lyrics cannot be combined. This model is in preview and its capabilities may change.
On EmpirioLabs, StepAudio 3 Music is billed pay as you go: Music generation $0.0018 per generated second. The live rate card on this page always matches what the API charges.
StepAudio 3 Music is served through POST /v1/audio/generations on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs StepAudio 3 Music in the browser with the same parameters the API exposes, so you can test prompts before writing code.
Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.
Check out our pricing or reach out if you want your own model deployed on our stack.