Release a claimed TTS back to the queue
The undo of start, for when your effect didn’t go to plan - the audio device failed, your process is shutting down mid-item, the effect errored before anything played. Drops the now-playing claim WITHOUT finishing: the tip stays in the queue at its position, the slot frees, and the tip can be claimed again (by you after recovering, or by any other consumer). Fires queue.tts.released. Only drops a claim that actually points at this order id - it can never kick out a different tip’s claim, and releasing something you don’t hold is a safe no-op (released: false). If the tip DID play, use finish instead so it lands in history. Requires tts:control.
POST
/tts/{orderId}/releaseAuthorization
AuthorizationBearer token (tp_live_...) · headerrequiredA TipPage API key, created in Dashboard → Settings → Developer.
Path parameters
orderIdstringrequiredThe tip's order id (e.g. `tip_1755100000000_ab12cd`) - the only external row reference.
Responses
200Released (`released: false` when there was no claim to drop).
successbooleanreleasedbooleanWhether a now-playing claim was actually dropped.
tipQueueTip | anyShow propertiesHide properties
One of:
QueueTip
order_idstringnamestringDisplay name (post-filter).
amountnumber | nullmessagestring | nullThe tip message (post-filter - what shows on stream).
tts_urlstring<uri> | nullPre-rendered audio; `null` until rendering completes.
is_replaybooleanis_sub_rewardbooleantwitch_user_idstring | nullPresent when the donor tipped signed in with Twitch.
name_was_filteredbooleanmessage_was_filteredbooleanqueued_atstring<date-time>any
any401Missing or invalid API key (`missing_api_key` / `invalid_api_key`).
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
403The key lacks the required scope (`missing_scope`).
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
required_scopestring429Rate limit exceeded - check the `RateLimit-*` headers.
errorstringRequest
curl -X POST "https://api.tippage.com/v1/tts/string/release" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://api.tippage.com/v1/tts/string/release", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});import requests
response = requests.post(
"https://api.tippage.com/v1/tts/string/release",
headers={
"Authorization": "Bearer YOUR_TOKEN"
},
)Response
{
"success": true,
"released": true,
"tip": {
"order_id": "tip_1755100000000_ab12cd",
"name": "string",
"amount": 5,
"message": "string",
"tts_url": "http://example.com",
"is_replay": true,
"is_sub_reward": true,
"twitch_user_id": "string",
"name_was_filtered": true,
"message_was_filtered": true,
"queued_at": "2019-08-24T14:15:22Z"
}
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string",
"required_scope": "string"
}{
"error": "string"
}