lyria-3-pro-preview vs Sume lyria-3-pro: which model string?
Google lists lyria-3-pro-preview at $0.08 per song. On Sume the Music Router id is lyria-3-pro, and a Google string fails with model_not_found.

Send lyria-3-pro to Sume, not lyria-3-pro-preview. Google's pricing page lists the engine as lyria-3-pro-preview at $0.08 per full song (read 2026-10-07), while Sume's Music Router accepts sume/music-auto, lyria-3.5 and lyria-3-pro. An unknown id returns 400 model_not_found with a catalog_url.
The ids side by side
Copying a model string from a vendor page into another vendor's API is the quickest way to a 400. Google marks Pro as a preview in its id. Sume publishes its own routable ids and resolves the engine itself.
| Engine | Google id and price | Sume Music Router id |
|---|---|---|
| Lyria 3.5 | lyria-3.5, $0.08 per full song | lyria-3.5 |
| Lyria 3 Pro | lyria-3-pro-preview, $0.08 per full song | lyria-3-pro |
| Lyria 3 Clip | lyria-3-clip-preview, $0.04 per 30-second clip | Not in the catalog |
| Engine auto-pick | Not offered | sume/music-auto (Lyria 3.5 today) |
What you pay on Sume
Every Music Router model charges the fixed Music price per accepted audio generation. Music 1.0 documents it as $0.125 per generation, regardless of prompt length or optional image conditioning. The catalog shows each model's provider list price for reference, but the charge does not vary by model, so choosing Pro does not change the bill.
Prompt rules do not change either: 1 to 5,000 characters, no duration or duration_seconds field, and no non-empty negative_prompt. Put the length in the brief, for example "a 2-minute track" or [0:00-0:30] Intro: ....
Check the catalog before you pin
Read the live list instead of trusting a post. Then pin one id in your config so that a future auto-pick change cannot move your output.
curl https://api.sume.com/v1/music-router/models \
-H "Authorization: Bearer $SUME_API_KEY"
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: pro-pin-001" \
-d '{
"model": "lyria-3-pro",
"prompt": "Warm lo-fi hip hop, 84 BPM, C minor. A 30-second track. Instrumental, no vocals."
}'Reading the result
job.model echoes the id you requested. job.request.routed_model names the engine that actually ran. If you sent sume/music-auto, read that second field to learn which Lyria rendered the track, and store it next to the audio artifact. Raw provider URLs are not public outputs; use the Sume-hosted media.sume.com URL in result.artifacts[].
Sources
Related posts
More in Developers
- Mandarin Chinese speech to text API: Sume STT language_code zh
Transcribe Mandarin audio with Sume STT using language_code zh, then check the result and timings. $0.01 per audio minute and no accuracy claim without a test.
- mask_url on ChatGPT Image 2: not listed, only the 2.5 rows take it
Sume lists mask_url only on ChatGPT Image 2.5 Flare and Sunburst. Sending it to ChatGPT Image 2 is rejected. What to do for a masked edit on the older row.
- MCP outputSchema vs Sume output_schema: who sets the contract
In MCP the server declares a tool's outputSchema. In a Sume Agent Completion you send output_schema per run, and the result can still come back degraded.
- MCP tool-name rules (2025-11-25): do Sume's tool ids comply?
The MCP 2025-11-25 spec says tool names should be 1-128 characters from A-Z, a-z, 0-9, underscore, hyphen and dot. Sume's longest documented id is 36.
Written by Sume