Look up any viewer
One person and their standing on this channel, per platform account - signed in to the tip page or not. viewer is the person (whether and when they signed in here); platforms.twitch and platforms.kick are their account on each platform with its standing on this channel there - follow, current sub, best known sub length, moderator, VIP and chat activity - or null where the person has no known account on that platform. credits, grants and usage are the sub-rewards picture (credits are earned by subbing, so someone who never signed in can hold them too). A person who linked both accounts gets both blocks, and everything is read across the pair. Requires viewers:read.
{user} takes twitch:<id or login>, kick:<id or login>, a viewer id (v_..., as viewer.id answers), or a bare id or login - tried against the channel’s signed-in viewers first, then as a Twitch account, then a Kick one.
Sub length. Twitch’s API has no way to ask how long someone has been subscribed, so sub_months is the most TipPage has seen: the subscriber badge on their latest chat line (needs the chat bot on for that platform) or their latest shared resub, whichever says more, with sub_months_at saying when it was seen - add the months since then if they are still subscribed. On Kick it comes from Kick directly. null = never seen.
Moderator and VIP are read live: Twitch with the owner’s grant (null when the channel owner has not reconnected since those scopes were added), Kick from kick.com’s channel record.
/viewers/{user}AuthorizationBearer token (tp_live_... or tpat_...) · headerrequireduserstringrequiredviewerViewerPersonrequiredShow propertiesHide properties
idstring | nullrequiredsigned_inbooleanrequiredsigned_in_withstring | nullrequiredtwitchkicknulldisplay_namestring | nullrequiredprofile_image_urlstring<uri> | nullrequiredfirst_signed_in_atstring<date-time> | nullrequiredlast_active_atstring<date-time> | nullrequiredplatformsobjectrequiredShow propertiesHide properties
twitchViewerPlatform | anyrequiredShow propertiesHide properties
idstringrequiredloginstring | nullrequireddisplay_namestring | nullrequiredprofile_image_urlstring<uri> | nullrequiredsigned_inbooleanrequiredfollowingboolean | nullrequiredfollowed_atstring<date-time> | nullrequiredsubscribedboolean | nullrequiredtierinteger | nullrequired123nullgiftedboolean | nullrequiredgifter_loginstring | nullrequiredsub_monthsinteger | nullrequiredsub_months_atstring<date-time> | nullrequiredsub_months_sourcestring | nullrequiredchatresubkicknullmoderatorboolean | nullrequiredvipboolean | nullrequiredchatobjectrequiredShow propertiesHide properties
messagesintegerfirst_seenstring<date> | nulllast_seen_atstring<date-time> | nullanykickViewerPlatform | anyrequiredShow propertiesHide properties
idstringrequiredloginstring | nullrequireddisplay_namestring | nullrequiredprofile_image_urlstring<uri> | nullrequiredsigned_inbooleanrequiredfollowingboolean | nullrequiredfollowed_atstring<date-time> | nullrequiredsubscribedboolean | nullrequiredtierinteger | nullrequired123nullgiftedboolean | nullrequiredgifter_loginstring | nullrequiredsub_monthsinteger | nullrequiredsub_months_atstring<date-time> | nullrequiredsub_months_sourcestring | nullrequiredchatresubkicknullmoderatorboolean | nullrequiredvipboolean | nullrequiredchatobjectrequiredShow propertiesHide properties
messagesintegerfirst_seenstring<date> | nulllast_seen_atstring<date-time> | nullanycreditsobjectrequiredShow propertiesHide properties
availableintegertotalintegerusedintegerpendingintegergrantsobject[]requiredShow propertiesHide properties
objectplatformstringtwitchkickplatform_user_idstringsourcestringsub_tier1sub_tier2sub_tier3gift_submanualcreditsintegercredits_usedintegerawarded_atstring<date-time>usageobjectrequiredShow propertiesHide properties
queuedintegerplayedintegerlast_used_atstring<date-time> | nullerrorstringrequiredcodestringerrorstringrequiredcodestringrequired_scopestringerrorstringrequiredcodestringerrorstringrequiredcodestringerrorstringcurl -X GET "https://api.tippage.com/v1/viewers/string" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://api.tippage.com/v1/viewers/string", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});import requests
response = requests.get(
"https://api.tippage.com/v1/viewers/string",
headers={
"Authorization": "Bearer YOUR_TOKEN"
},
){
"viewer": {
"id": "v_9f3c1a7e42b08d61",
"signed_in": true,
"signed_in_with": "twitch",
"display_name": "GigaChad42",
"profile_image_url": "http://example.com",
"first_signed_in_at": "2019-08-24T14:15:22Z",
"last_active_at": "2019-08-24T14:15:22Z"
},
"platforms": {
"twitch": {
"id": "123456789",
"login": "gigachad42",
"display_name": "GigaChad42",
"profile_image_url": "http://example.com",
"signed_in": true,
"following": true,
"followed_at": "2019-08-24T14:15:22Z",
"subscribed": true,
"tier": 1,
"gifted": true,
"gifter_login": "string",
"sub_months": 0,
"sub_months_at": "2019-08-24T14:15:22Z",
"sub_months_source": "chat",
"moderator": true,
"vip": true,
"chat": {
"messages": 0,
"first_seen": "2019-08-24",
"last_seen_at": "2019-08-24T14:15:22Z"
}
},
"kick": {
"id": "123456789",
"login": "gigachad42",
"display_name": "GigaChad42",
"profile_image_url": "http://example.com",
"signed_in": true,
"following": true,
"followed_at": "2019-08-24T14:15:22Z",
"subscribed": true,
"tier": 1,
"gifted": true,
"gifter_login": "string",
"sub_months": 0,
"sub_months_at": "2019-08-24T14:15:22Z",
"sub_months_source": "chat",
"moderator": true,
"vip": true,
"chat": {
"messages": 0,
"first_seen": "2019-08-24",
"last_seen_at": "2019-08-24T14:15:22Z"
}
}
},
"credits": {
"available": 0,
"total": 0,
"used": 0,
"pending": 0
},
"grants": [
{
"platform": "twitch",
"platform_user_id": "string",
"source": "sub_tier1",
"credits": 0,
"credits_used": 0,
"awarded_at": "2019-08-24T14:15:22Z"
}
],
"usage": {
"queued": 0,
"played": 0,
"last_used_at": "2019-08-24T14:15:22Z"
}
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string",
"required_scope": "string"
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string"
}{
"error": "string"
}