Alert history
Platform alerts, newest first. By default the finished ones: every alert the overlay played or that was skipped. With status=all, every platform event as it happened - those still waiting for an overlay (waiting), those the live alert box never showed because the type is off or under its minimum (not_played), and every channel-point redemption, whether or not a box alerted on it (a redemption that never alerted is a channel_points row whose id is Twitch’s redemption id, status not_played, nothing to replay). A tip-filter-blocked alert is never listed. limit up to 200. Requires tts:read.
GET
/alerts/historyAuthorization
AuthorizationBearer token (tp_live_... or tpat_...) · headerrequiredA TipPage API key (`tp_live_...`, created in Dashboard → Settings → Developer) or an OAuth 2.0 access token (`tpat_...`, see the OAuth guide). Both carry the same scopes and are accepted on every endpoint.
Query parameters
limitintegermin 1 · max 200 · default: 50
statusstring`all` = every platform event, not only the finished ones.
default: "finished"
Allowed:
finishedallbeforestring<date-time>Cursor - a `happened_at` from a previous page (`next_cursor`). Returns rows strictly older than it.
Responses
200One page of alerts.
alertsAlert[]Show propertiesHide properties
Array of
Alertidstring`ev_...` - the event id the webhooks carry.
typestringAllowed:
followsubscriptiongift_subscriptioncheerraidkickschannel_pointsevent_typestring | nullThe payload type (`channel.subscription.message` tells a resub from a sub).
platformstringAllowed:
twitchkicknamestringWho it was from.
profile_image_urlstring | nulltierstring | nullTwitch tier id (`1000`, `2000`, `3000`); `1` on Kick.
totalinteger | nullGift subs - how many.
bitsinteger | nullviewersinteger | nullRaids.
kicksinteger | nullmonthsinteger | nullResubs.
messagestring | nullThe viewer's own text
reward_titlestring | nullChannel point redemptions.
reward_costinteger | nullChannel point redemptions - the reward's cost in points.
redemption_idstring | nullChannel point redemptions - Twitch's id of the redemption.
gift_recipientsstring[]Gifted subs - who received them, as Twitch's gift notices named them. Empty when none were caught (a gift whose notices never arrived, an older row).
statusstring`waiting` and `not_played` only appear with `status=all`.
Allowed:
playedskippedwaitingnot_playedis_replaybooleanreplay_ofstring | nullThe original's id when this was a replay.
happened_atstring<date-time>finished_atstring<date-time> | nullWhen it left the screen.
has_morebooleannext_cursorstring | nullPass as `?before=` to fetch the next page.
401Missing or invalid credential (`missing_api_key` / `invalid_api_key`, or `invalid_token` for an expired/revoked OAuth access token).
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/alerts/history" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://api.tippage.com/v1/alerts/history", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});import requests
response = requests.get(
"https://api.tippage.com/v1/alerts/history",
headers={
"Authorization": "Bearer YOUR_TOKEN"
},
)Response
{
"alerts": [
{
"id": "string",
"type": "follow",
"event_type": "string",
"platform": "twitch",
"name": "string",
"profile_image_url": "string",
"tier": "string",
"total": 0,
"bits": 0,
"viewers": 0,
"kicks": 0,
"months": 0,
"message": "string",
"reward_title": "string",
"reward_cost": 0,
"redemption_id": "string",
"gift_recipients": [
"string"
],
"status": "played",
"is_replay": true,
"replay_of": "string",
"happened_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z"
}
],
"has_more": true,
"next_cursor": "string"
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string",
"required_scope": "string"
}{
"error": "string"
}