Skip to content

Twitch.GiftSub

Someone gifts a subscription to another viewer.

  • Platform: twitch
  • Shape: giftSub
  • Source event: Twitch.GiftSub
Widget.on("Twitch.GiftSub", (event) => {
// event.user, event.platform…
});
  • user (string): Display name; «Anonymous» for anonymous gifts.
  • userId (string): User id on its platform.
  • userLogin (string): Login, lowercase.
  • recipient (string): Who receives it.
  • tier (1 | 2 | 3): Subscription tier.
  • anonymous (boolean): Whether the gift is anonymous.
  • giftBombId (string | null): Id of the gift bomb it belongs to, or null.
  • fromGiftBomb (boolean): Whether it comes from a gift bomb: do not count it twice.

It also carries platform (the source platform) and raw (the original payload).

The example payload that reaches the Studio simulator:

{
"user": {
"role": 1,
"badges": [],
"color": "#1E90FF",
"subscribed": false,
"monthsSubscribed": 0,
"id": "100000004",
"login": "donregalos",
"name": "DonRegalos",
"type": "twitch"
},
"messageId": "00000000-0000-4000-8000-000000000006",
"systemMessage": "DonRegalos gifted a Tier 1 sub to GatoNegro! They have given 20 Gift Subs in the channel!",
"isTest": false,
"broadcaster": {
"id": "100000000",
"login": "canaldeprueba",
"name": "CanalDePrueba",
"type": "twitch"
},
"isInSharedChat": false,
"isSharedChatHost": false,
"isFromSharedChatGuest": false,
"createdAt": "2026-09-26T05:37:05.2210387Z",
"durationMonths": 1,
"cumlativeTotal": 20,
"recipient": {
"id": "100000009",
"login": "gatonegro",
"name": "GatoNegro",
"type": "twitch"
},
"subTier": "1000",
"communityGiftId": null,
"fromCommunitySubGift": false,
"randomCommunitySubGift": false,
"communitySubGiftCount": 0,
"communitySubGiftCumulativeTotal": 0
}