Played media history
Media that finished playing, most recent first, cursor-paginated the same way as /tts/history. Requires media:read.
GET
/media/historyAuthorization
AuthorizationBearer token (tp_live_...) · headerrequiredA TipPage API key, created in Dashboard → Settings → Developer.
Query parameters
limitintegermin 1 · max 100 · default: 25
beforestringCursor - an `order_id` from a previous page (`next_cursor`). Returns rows strictly older than it.
Responses
200One page of history.
mediaHistoryMediaItem[]Show propertiesHide properties
Array of
HistoryMediaItemorder_idstringdonor_namestringmedia_urlstring<uri>media_start_timeintegervideo_titlestring | nullvideo_thumbnailstring<uri> | nullvideo_durationintegerplatformstringrequested_viastringis_replaybooleanqueued_atstring<date-time>played_atstring<date-time>has_morebooleannext_cursorstring | null400Unknown cursor.
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
401Missing 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 GET "https://api.tippage.com/v1/media/history" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://api.tippage.com/v1/media/history", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});import requests
response = requests.get(
"https://api.tippage.com/v1/media/history",
headers={
"Authorization": "Bearer YOUR_TOKEN"
},
)Response
{
"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": "string",
"requested_via": "string",
"is_replay": true,
"queued_at": "2019-08-24T14:15:22Z",
"played_at": "2019-08-24T14:15:22Z"
}
],
"has_more": true,
"next_cursor": "string"
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string",
"required_scope": "string"
}{
"error": "string"
}