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.
| Scope | Why requested | When we ask |
|---|---|---|
user:read:email | Identifies the account owner and is used for account linking. | At sign-in |
channel:read:subscriptions | Checks subscriber status for subscriber-gated features. | At sign-in |
moderator:read:followers | Reads follower count and individual follow events. | At sign-in |
bits:read | Reads bits cheer events and leaderboard data. | At sign-in |
user:read:chat | Listens to chat messages via EventSub. | At sign-in |
user:bot | Marks the account as a bot so Twitch applies bot rate limits. | At sign-in |
user:write:chat | Posts bot responses back to chat. | At sign-in |
channel:bot | Allows the account to send chat messages as a bot in this channel. | At sign-in |
channel:read:redemptions | Reads channel-point redemption events. | At sign-in |
channel:manage:redemptions | Creates, updates, and fulfils custom channel-point rewards. | When you set up the feature |
user:read:emotes | Reads the set of emotes available to the broadcaster. | At sign-in |
channel:read:charity | Read 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.
| Type | Version | Requires | Condition keys | Description |
|---|---|---|---|---|
channel.cheer | 1 | bits:read | broadcaster_user_id | Bits cheered — triggers bits reward rules |
channel.bits.use | 1 | bits:read | broadcaster_user_id | Power-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.gift | 1 | channel:read:subscriptions | broadcaster_user_id | Gifted subs — triggers gifted_subs reward rules |
channel.chat.notification | 1 | user:read:chat, user:bot, channel:bot | broadcaster_user_id, user_id | Chat 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.subscribe | 1 | channel:read:subscriptions | broadcaster_user_id | New subscriptions — subscribed when at least one new_sub rule exists |
channel.subscription.message | 1 | channel:read:subscriptions | broadcaster_user_id | Resub with share message — subscribed when at least one resub rule exists |
channel.channel_points_custom_reward_redemption.add | 1 | channel:read:redemptions | broadcaster_user_id | Channel point redemptions — subscribed when at least one channel_redemption rule exists; one broadcaster-wide subscription covers all rewards |
channel.follow | 2 | moderator:read:followers | broadcaster_user_id, moderator_user_id | Follows — subscribed when at least one follow rule exists; moderator_user_id = broadcaster_user_id |
channel.chat.message | 1 | user:read:chat, user:bot, channel:bot | broadcaster_user_id, user_id | Chat messages — subscribed when at least one chat rule exists; user_id = broadcaster_user_id |
channel.raid | 1 | — | to_broadcaster_user_id | Incoming raid — subscribed when at least one raid rule exists |
channel.charity_campaign.donate | 1 | channel:read:charity | broadcaster_user_id | Charity donations — subscribed when at least one charity rule exists |
Share Feedback
Need help or want to chat? Join our Discord to get support, report bugs, and talk with other streamers.0 / 1000
Privacy
▸ What we're sending
| Module | — |
| Page | — |
| Browser | — |
| Screen | — |
| Channel | anonymous |
| Submitted | — |