Music 1.0 is retiring: moving to the Music Router in one line
Sume Music 1.0 routes keep working but resolve through the Music Router. New code should call POST /v1/music-router/generate. What changes and what does not.

Is Sume Music 1.0 going away? It is retiring gradually, per both docs pages. Its routes keep working and keep job.model = sume/music-1.0, but every request now resolves through the Music Router (sume/music-auto). New integrations should call POST /v1/music-router/generate. I found no shutdown date in the docs, and this post does not give one.
The migration is mostly a URL change, plus one optional field.
What changes
The router takes the same body as Music 1.0, plus an optional model. Leave it off and you get sume/music-auto, which is Lyria 3.5 today.
| Item | Music 1.0 | Music Router |
|---|---|---|
| Invoke URL | POST /v1/music-1.0/generate | POST /v1/music-router/generate |
| Alias | POST /v1/models/sume/music-1.0/runs | Catalog under /v1/music-router/models |
job.model | sume/music-1.0 | The id you sent |
| Engine field | job.request.routed_model | job.request.routed_model |
| Pin an engine | Not offered | lyria-3.5, lyria-3-pro |
What does not change
The request fields are the same: prompt (1 to 5000 characters), optional image_url, metadata, mode, webhook_url and wait_timeout_seconds. duration and duration_seconds are still rejected, and a non-empty negative_prompt is still a 400. The result still carries an audio artifact in result.artifacts[].
The one-line diff
Swap the path and, if you want to pin an engine, add model.
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: migrate-001" \
-d '{"prompt":"Warm lo-fi hip hop, 84 BPM, C minor. A 30-second track. Instrumental, no vocals."}'Pricing
The Music 1.0 page lists a fixed $0.125 per accepted generation, and the router page says every Music Router model charges the fixed Music price per audio generation. Confirm the live number in GET /v1/catalog.
Sources
Related posts
More in Developers
- MySQL: INSERT IGNORE or ON DUPLICATE KEY UPDATE for Sume job_id
Dedupe Sume job webhooks in MySQL with a job_id primary key. Why ON DUPLICATE KEY UPDATE with a counter beats INSERT IGNORE, and what affectedRows tells you.
- Nano Banana exact pixels: target_pixels, then resize yourself
Nano Banana renders at a native ratio, not your pixels. Sume maps 1080x1350 to 4:5 and records target_pixels on the job; finish with a resize or crop.
- NATS JetStream: use job_id as Nats-Msg-Id for Sume webhooks
Verify the sume-v1 signature, then publish the raw event to JetStream with job_id as Nats-Msg-Id. Node receiver sample, plus why the consumer must still dedupe.
- Next.js ImageResponse RCE fix: safe share card from a Sume job
Next.js 16.3.6 patched a critical ImageResponse RCE. After upgrading, build a share-card route that reads the Sume artifact server-side, not from the URL.
Written by Sume