Skip to content

Events — Authentication & permissions

OAuth scopes

The Events module uses the following OAuth scopes. The baseline ones are requested when a broadcaster connects their Twitch account; the rest are requested later, the first time the feature that acts with them is set up, so most permissions for a feature you don’t use are never granted.

ScopeWhy requestedWhen we ask
user:read:emailIdentifies the account owner and is used for account linking.At sign-in
channel:read:subscriptionsChecks subscriber status for subscriber-gated features.At sign-in
moderator:read:followersReads follower count and individual follow events.At sign-in
bits:readReads bits cheer events and leaderboard data.At sign-in
user:read:chatListens to chat messages via EventSub.At sign-in
user:botMarks the account as a bot so Twitch applies bot rate limits.At sign-in
user:write:chatPosts bot responses back to chat.At sign-in
channel:botAllows the account to send chat messages as a bot in this channel.At sign-in
channel:read:redemptionsReads channel-point redemption events.At sign-in
channel:manage:redemptionsCreates, updates, and fulfils custom channel-point rewards.When you set up the feature
user:read:emotesReads the set of emotes available to the broadcaster.At sign-in
channel:read:charityRead your Twitch Charity campaign and its donations for goals, alerts, and analytics.At sign-in

EventSub subscriptions

Every subscription is created with the application access token (Twitch requires it for webhook transport). “Requires” lists the scopes the broadcaster must already have granted before Twitch will create the subscription.

TypeVersionRequiresCondition keysDescription
channel.cheer1bits:readbroadcaster_user_idBits cheered — triggers bits reward rules
channel.bits.use1bits:readbroadcaster_user_idPower-up bits — bits spent on the channel that channel.cheer never fires for; triggers bits reward rules like a cheer (cheer-type events are ignored, channel.cheer owns those)
channel.subscription.gift1channel:read:subscriptionsbroadcaster_user_idGifted subs — triggers gifted_subs reward rules
channel.chat.notification1user:read:chat, user:bot, channel:botbroadcaster_user_id, user_idChat notices (sub/resub/gift) — Prime evidence for count_prime rules + gifter lifetime totals; always-on, since evidence must accrue before the first prime-excluding rule exists
channel.subscribe1channel:read:subscriptionsbroadcaster_user_idNew subscriptions — subscribed when at least one new_sub rule exists
channel.subscription.message1channel:read:subscriptionsbroadcaster_user_idResub with share message — subscribed when at least one resub rule exists
channel.channel_points_custom_reward_redemption.add1channel:read:redemptionsbroadcaster_user_idChannel point redemptions — subscribed when at least one channel_redemption rule exists; one broadcaster-wide subscription covers all rewards
channel.follow2moderator:read:followersbroadcaster_user_id, moderator_user_idFollows — subscribed when at least one follow rule exists; moderator_user_id = broadcaster_user_id
channel.chat.message1user:read:chat, user:bot, channel:botbroadcaster_user_id, user_idChat messages — subscribed when at least one chat rule exists; user_id = broadcaster_user_id
channel.raid1to_broadcaster_user_idIncoming raid — subscribed when at least one raid rule exists
channel.charity_campaign.donate1channel:read:charitybroadcaster_user_idCharity donations — subscribed when at least one charity rule exists