AI podcast intro music generator: one prompt, fixed price
Write a podcast intro as one Music Router prompt of 1 to 5000 characters. Every generation is charged the fixed Music price, whichever model id you route to.

Describe the whole intro in one prompt field, up to 5000 characters, and send it to the Music Router. Each generation is charged the fixed Music price ($0.125 per audio on the rate card), no matter which routable model runs it, so a long, detailed prompt costs the same as a short one.
What can I write in the prompt?
The Music Router docs (read 2026-10-01) say prompt is required and 1 to 5000 characters. Put exclusions in the positive prompt, since a non-empty negative_prompt is unsupported. A podcast intro usually needs a mood, instruments, tempo and a length hint, for example: "Upbeat acoustic bumper, claps and a bright guitar riff, 100 BPM, instrumental, no vocals, about 15 seconds."
Which model ids can I route to?
The public id is sume/music-router. Routable ids are sume/music-auto (the default when model is omitted), lyria-3.5 and lyria-3-pro. The job's request.routed_model tells you which engine ran.
| Item | Docs say |
|---|---|
| Endpoint | POST /v1/music-router/generate |
| Prompt | 1 to 5000 characters, required |
| Routable ids | sume/music-auto, lyria-3.5, lyria-3-pro |
| Length | Steer it in the prompt; duration is rejected |
| Price | Fixed Music price per audio generation |
How do I call it?
An Idempotency-Key header is used on the create call.
const res = await fetch("https://api.sume.com/v1/music-router/generate", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.SUME_API_KEY,
"Content-Type": "application/json",
"Idempotency-Key": "podcast-intro-001",
},
body: JSON.stringify({
model: "sume/music-auto",
prompt:
"Upbeat acoustic bumper, claps and a bright guitar riff, 100 BPM. About 15 seconds. Instrumental, no vocals.",
}),
});
console.log(res.status, await res.json());How do I fit the intro under my episode?
Once you have the file, a Timeline 1.0 render can lay it as a soundtrack bed with gain_db and a fade_out_seconds of up to 10, so the intro ends cleanly. Related: jingle generator for a podcast intro.
Sources
Related posts
More in Use cases
- Podcast audio to a 45-second teaser video with Timeline source_in
Timeline 1.0 takes an audio spine with a source_in in-point and a still as a static hold, so a podcast excerpt plus cover art renders as a video with no editor.
- App Store preview poster frame: default 5 seconds, check it
Apple's default poster frame for an app preview is 5 seconds in. Extract that exact frame from your render with Sume video_frames before you upload.
- A 15-second 'previously on' recap from one episode with source_in
Detach an episode's audio once, then list three moments twice in one Timeline 1.0 render: video[].source_in for picture, audio.parts source_in for sound.
- Prime Big Deal Days beauty video ads: avatar clips, 4-60 s
Make beauty product ads for Prime Big Deal Days with Avatar Video: scripts must estimate to 4-60 seconds, and product_image is optional. Sizes and prices.
Written by Sume