Chatters — Authentication & permissions
OAuth scopes
The Chatters 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:chatters | Lists current chatters in the channel (used for chatter stats). | 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 |
moderator:manage:shoutouts | Sends native Twitch shoutouts on behalf of the channel. | At sign-in |
moderator:manage:announcements | Posts auto-chats that are configured to deliver as a Twitch announcement. | When you set up the feature |
channel:read:hype_train | Reads Hype Train events for channel event rules. | At sign-in |
channel:manage:broadcast | Sets the stream category and title for the !game and !title commands. | When you set up the feature |
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.chat.message | 1 | user:read:chat, user:bot, channel:bot | broadcaster_user_id, user_id | Every chat message — drives commands, quotes, giveaways and chat-activity counters |
stream.online | 1 | — | broadcaster_user_id | Stream goes live |
stream.offline | 1 | — | broadcaster_user_id | Stream ends |
channel.update | 2 | — | broadcaster_user_id | Channel title/category updated |
channel.hype_train.end | 2 | channel:read:hype_train | broadcaster_user_id | Hype Train ends — records ended_at + cooldown_ends_at for the !hypecheck builtin (consumer only; numbers wants the same row) |
user.update | 1 | — | user_id | Twitch username change — refreshes the module-local channel_name and the Helix name cache (consumer only) |
channel.channel_points_custom_reward_redemption.add | 1 | channel:read:redemptions | broadcaster_user_id | Channel point redemptions — subscribed when the Wheelspin widget carries a redeem trigger; the same broadcaster-wide row rewards creates, so it is additive-only and never deleted by this module |
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 | — |