ElevenLabs Music v2.5 became the default: which model made a track?
ElevenLabs made Music v2.5 the default on 2026-09-11. When a default changes, old and new tracks differ. How to record the engine per track, on Sume too.

If you call a music API without naming a model, the engine behind your tracks can change under you: ElevenLabs made Music v2.5 its default on 2026-09-11, with API support following on 2026-09-14, per a changelog roundup. Tracks made the week before and the week after may come from different models. The fix is the same for every vendor: pin the model where the API lets you, and store the engine that actually ran with each track.
Sume's Music Router works this way: omit model and Sume picks, or pass an explicit id and keep control.
Nothing in the ElevenLabs roundup says the change was announced as breaking; it is simply a new default. That is the normal way a model change reaches you, which is why the logging habit matters more than any one vendor's notice period.
How do Sume's ids behave?
The request's model is optional. Omitted, it means sume/music-auto, which resolves to Lyria 3.5 today. The other routable ids are lyria-3.5 and lyria-3-pro. The job echoes the id you sent in job.model, and job.request.routed_model names the engine that ran, for example lyria-3.5.
| Id you send | What runs | What the job records |
|---|---|---|
| (omitted) or sume/music-auto | Lyria 3.5 today | job.model = sume/music-auto; routed_model = the engine |
| lyria-3.5 | Lyria 3.5 | job.model = lyria-3.5 |
| lyria-3-pro | Lyria 3 Pro | job.model = lyria-3-pro |
| ElevenLabs default (reported) | Music v2.5 since 2026-09-11 | See the vendor's output metadata |
Why does an auto id matter for a brand sound?
An auto id is a promise that something good runs, not that the same thing runs next month. If a campaign needs one consistent score, pin an explicit id and re-test before changing it. If you only need a usable bed, auto is fine, as long as you log routed_model so you can tell tracks apart later.
curl -X POST https://api.sume.com/v1/music-router/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pinned-score-001" \
-d '{"model":"lyria-3.5",
"prompt":"Warm lo-fi, 84 BPM, C minor. Dusty Rhodes, brushed drums. A 30-second track. Instrumental, no vocals."}'What should I log per track?
Four things: the id you requested, the engine that ran, the date and the job id. Add the vendor's own version string for any tool that reports one. Store these four fields in the same row as the downloaded file, not in a separate note that gets lost. When a client says the new music sounds different, you can answer from the log instead of guessing. The Music Router page documents the fields, and Jobs and results shows how to read a result.
Sources
Related posts
More in Developers
- elevenlabs say CLI: text to speech from a terminal, and Sume's route
ElevenLabs' CLI got a say command (Eleven v3 default) on 2026-09-07. Sume's CLI has no audio generation commands yet; the TTS job is a plain HTTP call.
- ElevenLabs v4 10,000-character limit vs Sume TTS 20,000 transcript
Higgsfield's changelog lists 10,000 characters per ElevenLabs v4 generation; Sume TTS 1.0 takes 20,000. How to split a long script.
- Export video model prices weekly: a catalog-to-CSV script
Prices and limits for AI video models change. A short script reads Sume's video catalog into a CSV so you can date each row and track changes.
- Facebook Reels API: start, upload, finish and the video_state values
Publishing a Facebook Reel takes three calls: upload_phase start, a file upload to rupload, then finish with video_state PUBLISHED, SCHEDULED or DRAFT.
Written by Sume