Event Types

Understanding Event Types in NotifySub

NotifySub supports multiple event types, which may or may not be available across different platforms. When event types are added in NotifySub, their names are typically based on commonly used terms like “follow” and “subscribe,” reflecting how these actions are understood across most platforms. For example, while YouTube uses the term “subscribe” in a non-monetary context, NotifySub aligns “subscribe” with its usual meaning on other platforms, where it often implies a monetary action (like a membership). This approach ensures consistency and clarity, even when platform-specific terms differ.

Notification Payload Structure

All event types in NotifySub follow a standardized structure, as shown below:

{
  "subscription": {
    "type": "<event_type>",
    "version": "<version>",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": <payload>
}

The condition section should match what you used when subscribing to that event type.

To receive these notifications, you need to subscribe to the event types you are interested in, check out the Socket API documentation for more information.

Stream Online

This notification is sent, when a user starts a broadcast on a connected platform.

{
  "subscription": {
    "type": "stream.online",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": []
}
PlatformPlatform event
Twitchstream.online
YouTubePubSubHubBub

Stream Offline

This notification is sent, when a user ends a broadcast on a connected platform.

{
  "subscription": {
    "type": "stream.offline",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": []
}
PlatformPlatform event
Twitchstream.offline
YouTubeChatbot can not find a chat instance

Update

This notification is sent, when a user updates their channel information.

{
  "subscription": {
    "type": "update",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": []
}
PlatformPlatform event
Twitchchannel.update

Follow

This notification is sent, when a viewer "follows" a user channel. We define "follow" as non-monetary, which means that a "follow" is in fact a "subscription" on YouTube.

{
  "subscription": {
    "type": "follow",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone"
  }
}
PlatformPlatform event
Twitchchannel.follow
YouTubeRepeated API fetch

Subscribe

This notification is sent, when a viewer "subscribes" to a user channel. We define "subscribe" as monetary, which means a "subscription" is in fact a "membership" on YouTube.

{
  "subscription": {
    "type": "subscribe",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone",
    "tier": "1000",
    "is_gift": false
  }
}
PlatformPlatform event
Twitchchannel.subscribe
YouTubeMembership message in chat

Re-Subscribe

This notification is sent, when a viewer continues a subscription / membership on a user channel.

{
  "subscription": {
    "type": "re-subscribe",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone",
    "message": "Message text",
    "emotes": [],
    "tier": "1000",
    "months": 5,
    "streak": 3,
    "duration": 1
  }
}
PlatformPlatform event
Twitchchannel.subscription.message
YouTubeMembership milestone in chat

Gift-Subscribe

This notification is sent, when a viewer gifts one or more subscriptions / memberships to the community. There will usually be multiple subscribe notifications afterwards coming from the platform.

{
  "subscription": {
    "type": "gift-subscribe",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "gifter": "Someone",
    "tier": "1000",
    "amount": 10,
    "cumulative_amount": 30,
    "is_anonymous": false
  }
}
PlatformPlatform event
Twitchchannel.subscription.gift
YouTubeMembership gift event in chat

Cheer

This notification is sent, when a viewer cheers in a channel chat.

{
  "subscription": {
    "type": "cheer",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone",
    "amount": 70,
    "message": "Message text"
  }
}
PlatformPlatform event
Twitchchannel.cheer

Raid

This notification is sent, when a broadcaster raids a user channel.

{
  "subscription": {
    "type": "raid",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone",
    "count": 120
  }
}
PlatformPlatform event
Twitchchannel.raid

Superchat

This notification is sent, when a viewer sends a Superchat message in a chat.

{
  "subscription": {
    "type": "superchat",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone",
    "message": "Message text",
    "tier": "2",
    "currency": "USD",
    "amount": "1000"
  }
}
PlatformPlatform event
YouTubeSuperchat message in chat

Supersticker

This notification is sent, when a viewer sends a Supersticker in a chat.

{
  "subscription": {
    "type": "supersticker",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone",
    "sticker": <sticker_id>,
    "tier": "2",
    "currency": "USD",
    "amount": "1000"
  }
}
PlatformPlatform event
YouTubeSupersticker message in chat

Shoutout Create

This notification is sent, when a user gives a shoutout to another channel.

{
  "subscription": {
    "type": "channel.shoutout.create",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone",
    "url": "https://twitch.tv/someone"
  }
}
PlatformPlatform event
Twitchchannel.shoutout.create

Shoutout Receive

This notification is sent, when a user receives a shoutout in another channel.

{
  "subscription": {
    "type": "channel.shoutout.receive",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone",
    "url": "https://twitch.tv/someone"
  }
}
PlatformPlatform event
Twitchchannel.shoutout.receive

Hype Train Begin

This notification is sent, when a hype train starts on a user channel.

{
  "subscription": {
    "type": "channel.hype_train.begin",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "level": 3
  }
}
PlatformPlatform event
Twitchchannel.hype_train.begin

Charity Donation

This notification is sent, when a charity donation is done on a user channel.

{
  "subscription": {
    "type": "charity-donation",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone",
    "campaign_id": <campaign_id>,
    "charity_name": "Charity name",
    "charity_description": "Charity description",
    "charity_website": "charity.website.com",
    "charity_logo": <charity_logo>,
    "currency": "USD",
    "amount": "100"
  }
}
PlatformPlatform event
Twitchchannel.charity_campaign.donate

Custom Rewards Add

This notification is sent, when a user adds a custom reward in their Twitch channel.

{
  "subscription": {
    "type": "channel.channel_points_custom_reward.add",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "id": <reward_id>
  }
}
PlatformPlatform event
Twitchchannel.channel_points_custom_reward.add

Custom Rewards Update

This notification is sent, when a user updates a custom reward in their Twitch channel.

{
  "subscription": {
    "type": "channel.channel_points_custom_reward.update",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "id": <reward_id>
  }
}
PlatformPlatform event
Twitchchannel.channel_points_custom_reward.update

Custom Rewards Remove

This notification is sent, when a user removes a custom reward in their Twitch channel.

{
  "subscription": {
    "type": "channel.channel_points_custom_reward.remove",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "id": <reward_id>
  }
}
PlatformPlatform event
Twitchchannel.channel_points_custom_reward.remove

Custom Rewards Redemption Add

This notification is sent, when a viewer redeems a custom reward in a user Twitch channel.

{
  "subscription": {
    "type": "channel.channel_points_custom_reward_redemption.add",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "id": <redemption_id>,
    "name": "Someone",
    "message": "User input text",
    "status": <redemption_status>,
    "user_id": "12345678",
    "user_login": "someone",
    "user_name": "Someone",
    "user_input": "User input text",
    "broadcaster_id": "87654321",
    "broadcaster_login": "another_one",
    "broadcaster_name": "Another_One",
    "reward_id": <reward_id>,
    "reward_title": "Reward Title",
    "reward_cost": 100,
    "reward_prompt": "Reward input prompt"
  }
}
PlatformPlatform event
Twitchchannel.channel_points_custom_reward_redemption.add

Custom Rewards Redemption Update

This notification is sent, when a pending redemption is approved or rejected.

{
  "subscription": {
    "type": "channel.channel_points_custom_reward_redemption.update",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "id": <redemption_id>,
    "name": "Someone",
    "message": "User input text",
    "status": <redemption_status>,
    "reward_id": <reward_id>,
    "reward_title": "Reward Title",
    "reward_cost": 100,
    "reward_prompt": "Reward input prompt"
  }
}
PlatformPlatform event
Twitchchannel.channel_points_custom_reward_redemption.update

Donation

This notification is sent, when a pending redemption is approved or rejected.

{
  "subscription": {
    "type": "donation",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "name": "Someone",
    "currency": "USD",
    "amount": "1000",
    "message": "Donation message"
  }
}

None. This event type is coming directly via the OWN3D Pro tipping page.

Custom

This notification is sent, when a custom event is triggered.

Each custom event must provide a label attribute, which is used to identify the event type.

Valid labels have two segments: an optional prefix and name, seperated by a slash (/). This is required to avoid conflicts with other vendors and must be a string of 32 characters or less, beginning and ending with an alphanumeric character ([a-zA-Z0-9]), and containing only alphanumeric characters, hyphens (-), underscores (_) and dots (.). The prefix is optional and can be used to group events by a vendor. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), no longer than 31 characters in total, followed by a slash (/).

The own3d.pro/ prefix is reserved for OWN3D Pro events.

{
  "subscription": {
    "type": "custom",
    "version": "1",
    "condition": {
      "platform": "<platform>",
      "platform_id": "<platform_id>"
    }
  },
  "notification": {
    "id": "<notification_id>",
    "created_at": "<timestamp>"
  },
  "event": {
    "label": "example.com/example-event",
    "key": "value"
  }
}