Jingles

Create a jingle generation request

POST
https://api.tunio.ai/v1/jingles/requests

Queue a jingle for the generator the control panel uses: a voice over a generated music bed (full), music only (instrumental) or voice only (voice). Poll GET /v1/jingles/requests/{request_id} until the state is completed; the jingle is then a file of the caller's library (jingle_id, also listed by GET /v1/jingles) that can be added to bundles. Credits are charged once, only when generation succeeds (ledger type jingle_generation); a failed request costs nothing. Up to 20 requests may be pending or processing per account. Rate limited to 60 calls per minute per account across the jingle request endpoints.

Request body

Jingle parameters

NameTypeDescription
end_pause_secondsinteger
EndPauseSeconds is silence added at the end, 0..5 (default 0).
generation_typestring
GenerationType is full (voice over a generated music bed, default), instrumental (music only) or voice (voice only).
model_idstring
ModelID is the voice from GET /v1/tts/models, including the caller's cloned voices; required for full and voice.
music_durationinteger
MusicDuration is the music length in seconds, 5..30; required for instrumental and ignored otherwise.
style_promptstring
StylePrompt describes the music bed, up to 800 characters; required for full and instrumental.
textstring
Text is what the voice says, up to 600 characters; required for full and voice.
voice_effectstring
VoiceEffect is none (default) or telephone; ignored for instrumental.
Request example
01{
02 "end_pause_seconds": 0,
03 "generation_type": "full",
04 "model_id": "123e4567-e89b-12d3-a456-426614174000",
05 "music_duration": 10,
06 "style_prompt": "Upbeat pop radio ident, bright synths, 120 BPM",
07 "text": "Tunio radio. Music for your business.",
08 "voice_effect": "none"
09}

Responses

NameTypeDescription
requestobject
-
audio_urlstring
AudioURL is the CDN link to the jingle, set once completed.
completed_atstring
CompletedAt is when the jingle was generated.
costinteger
Cost in credits: the estimate while pending or processing, the amount charged once completed. Nothing is charged for a failed request.
created_atstring
CreatedAt is when the request was accepted.
durationinteger
Duration of the jingle in seconds, set once completed.
end_pause_secondsinteger
EndPauseSeconds is the silence added at the end.
errorstring
Error is a machine-readable failure code (insufficient_balance, processing_timeout, generation_failed), set only when state is failed.
generation_typestring
GenerationType is full, instrumental or voice.
jingle_idstring
JingleID is the generated jingle in the caller's library, set once completed; add it to a bundle with POST /v1/jingle-bundles/{bundle_id}/items.
model_idstring
ModelID is the voice the text is spoken with, null for instrumental.
music_durationinteger
MusicDuration is the requested music length for instrumental jingles.
request_idstring
RequestID uniquely identifies the request.
statestring
State is pending, processing, completed or failed.
style_promptstring
StylePrompt describes the music bed.
textstring
Text is what the voice says.
titlestring
Title is the generated jingle's title, set once completed.
voice_effectstring
VoiceEffect is none or telephone.
successboolean
-
NameTypeDescription
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.
NameTypeDescription
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.
NameTypeDescription
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.
NameTypeDescription
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.
NameTypeDescription
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.
NameTypeDescription
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.