Twitch.ReSub
Someone renews their subscription, sometimes with a message.
- Platform: twitch
- Shape:
resub - Source event:
Twitch.ReSub
Widget.on("Twitch.ReSub", (event) => { // event.user, event.platform…});Fields
Section titled “Fields”user(string): Display name; «Anonymous» for anonymous gifts.userId(string): User id on its platform.userLogin(string): Login, lowercase.tier(1 | 2 | 3): Subscription tier.prime(boolean): Whether it is a Prime sub.months(number): Cumulative months.streak(number): Consecutive months (0 if not shared).message(string): The message, as plain text.parts(MessagePart[]): The message in parts (text, emotes and cheers), for Widget.dom.renderMessage.amount(number): Same as months, for counters.
It also carries platform (the source platform) and raw (the original payload).
Example
Section titled “Example”The example payload that reaches the Studio simulator:
{ "text": "¡Un año ya! Gracias por los streams", "parts": [ { "type": "text", "text": "¡Un año ya! Gracias por los streams" } ], "user": { "role": 1, "badges": [ { "name": "subscriber", "version": "12", "imageUrl": "https://static-cdn.jtvnw.net/badges/v1/5d9f2208-5dd8-11e7-8513-2ff4adfae661/3", "info": "12" } ], "color": "#FF4500", "subscribed": true, "subscriptionTier": "1000", "monthsSubscribed": 12, "id": "100000006", "login": "zorroveloz", "name": "ZorroVeloz", "type": "twitch" }, "messageId": "00000000-0000-4000-8000-000000000005", "systemMessage": "ZorroVeloz subscribed at Tier 1. They've subscribed for 12 months, currently on a 12 month streak!", "isTest": false, "broadcaster": { "id": "100000000", "login": "canaldeprueba", "name": "CanalDePrueba", "type": "twitch" }, "isInSharedChat": false, "isSharedChatHost": false, "isFromSharedChatGuest": false, "createdAt": "2026-09-26T05:35:40.6612904Z", "cumulativeMonths": 12, "durationMonths": 1, "streakMonths": 12, "subTier": "1000", "isPrime": false, "isGift": false, "gifterIsAnonymous": null, "gifter": null}