The best way that I know of is the endpoint for the “product” (channel subscription)
https://api.twitch.tv/api/channels/:channel_name/product
Where channel_name
is the name of the channel, not the ID. This isn’t Kraken so it isn’t supported or documented anywhere.
The emoticons
key is only the tier 1 emotes so use plans[0...n].emoticons
to build up the full list. It is also possible for plans
to be an empty array so you would need to fallback to emoticons
. For instance, “TimTheTatman” has plans
and “Shaboozey” does not.
Truncated example:
{
"name": "timthetatman",
"custom_name": "Channel Subscription (TimTheTatMan)",
"product_url": "https://www.twitch.tv/products/timthetatman",
"html": "...",
"css": "...",
"price": "$4.99",
"hide_ads": true,
"xsolla_product_id": "6947",
"subonly_archives": false,
"subsonly": false,
"fastsubs": true,
"bitrate_access": [],
"payment_amendment_unsigned": false,
"sub_interval": "month",
"plans": [
{
"name": "timthetatman",
"custom_name": "Channel Subscription (TimTheTatMan)",
"product_url": "https://www.twitch.tv/products/timthetatman",
"price": "$4.99",
"plan": "1000",
"hide_ads": true,
"xsolla_product_id": "6947",
"subonly_archives": false,
"subsonly": false,
"fastsubs": true,
"bitrate_access": [],
"emoticon_set_ids": [
1159
],
"sub_interval": "month",
"emoticons": [
{
"id": 309686,
"width": 28,
"height": 28,
"state": "active",
"regex": "tatBURP",
"emoticon_set": 1159,
"url": "https://static-cdn.jtvnw.net/jtv_user_pictures/emoticon-309686-src-14517dddb609ed22-28x28.png",
"subscriber_only": true
},
{
"id": 187162,
"width": 28,
"height": 28,
"state": "active",
"regex": "tatS",
"emoticon_set": 1159,
"url": "https://static-cdn.jtvnw.net/jtv_user_pictures/emoticon-187162-src-a358994a8d8ea41f-28x28.png",
"subscriber_only": true
}
]
},
{
"name": "timthetatman_2000",
"custom_name": "Channel Subscription (TimTheTatMan): $9.99 Sub",
"product_url": "https://www.twitch.tv/products/timthetatman_2000",
"price": "$9.99",
"plan": "2000",
"hide_ads": true,
"xsolla_product_id": "144945",
"subonly_archives": false,
"subsonly": false,
"fastsubs": true,
"bitrate_access": [],
"emoticon_set_ids": [
1159,
26298
],
"sub_interval": "month",
"emoticons": [
{
"id": 212548,
"width": 28,
"height": 28,
"state": "active",
"regex": "tatBEST",
"emoticon_set": 26298,
"url": "https://static-cdn.jtvnw.net/jtv_user_pictures/emoticon-212548-src-2252e1c7da9781f5-28x28.png",
"subscriber_only": true
}
]
},
{
"name": "timthetatman_3000",
"custom_name": "Channel Subscription (TimTheTatMan): $24.99 Sub",
"product_url": "https://www.twitch.tv/products/timthetatman_3000",
"price": "$24.99",
"plan": "3000",
"hide_ads": true,
"xsolla_product_id": "144946",
"subonly_archives": false,
"subsonly": false,
"fastsubs": true,
"bitrate_access": [],
"emoticon_set_ids": [
1159,
26298,
26299
],
"sub_interval": "month",
"emoticons": [
{
"id": 212547,
"width": 28,
"height": 28,
"state": "active",
"regex": "tatHey",
"emoticon_set": 26299,
"url": "https://static-cdn.jtvnw.net/jtv_user_pictures/emoticon-212547-src-953e27aae1d6fe8c-28x28.png",
"subscriber_only": true
}
]
}
],
"emoticons": [
{
"id": 309686,
"width": 28,
"height": 28,
"state": "active",
"regex": "tatBURP",
"emoticon_set": 1159,
"url": "https://static-cdn.jtvnw.net/jtv_user_pictures/emoticon-309686-src-14517dddb609ed22-28x28.png",
"subscriber_only": true
},
{
"id": 187162,
"width": 28,
"height": 28,
"state": "active",
"regex": "tatS",
"emoticon_set": 1159,
"url": "https://static-cdn.jtvnw.net/jtv_user_pictures/emoticon-187162-src-a358994a8d8ea41f-28x28.png",
"subscriber_only": true
}
]
}