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
}
]
}