Release a claimed media item back to the queue
The undo of start, for when playback didn’t go to plan - the player errored, the video wouldn’t load, your process is shutting down mid-item. Drops the now-playing claim WITHOUT finishing: the item stays in the queue at its position, and it can be claimed again. Fires queue.media.released. Only drops a claim that actually points at this order id - never a different item’s claim - and releasing something you don’t hold is a safe no-op (released: false). If the item DID play, use finish instead so it lands in history. Requires media:control.
POST
/media/{orderId}/releaseAuthorization
AuthorizationBearer token (tp_live_...) · headerrequiredA TipPage API key, created in Dashboard → Settings → Developer.
Path parameters
orderIdstringrequiredThe media item's order id - the only external row reference.
Responses
200Released (`released: false` when there was no claim to drop).
successbooleanreleasedbooleanWhether a now-playing claim was actually dropped.
mediaQueueMediaItem | anyShow propertiesHide properties
One of:
QueueMediaItem
order_idstringdonor_namestringmedia_urlstring<uri>media_start_timeintegerStart offset in seconds.
video_titlestring | nullvideo_thumbnailstring<uri> | nullvideo_durationintegerDuration in seconds (0 = unknown).
platformstringrequested_viastringtip | chat | admin | channel_point | ...
is_replaybooleanqueued_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/media/string/release" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://api.tippage.com/v1/media/string/release", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});import requests
response = requests.post(
"https://api.tippage.com/v1/media/string/release",
headers={
"Authorization": "Bearer YOUR_TOKEN"
},
)Response
{
"success": true,
"released": true,
"media": {
"order_id": "string",
"donor_name": "string",
"media_url": "http://example.com",
"media_start_time": 0,
"video_title": "string",
"video_thumbnail": "http://example.com",
"video_duration": 0,
"platform": "youtube",
"requested_via": "string",
"is_replay": true,
"queued_at": "2019-08-24T14:15:22Z"
}
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string",
"required_scope": "string"
}{
"error": "string"
}