Skip to content

Chatters — Authentication & permissions

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. At sign-in
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
clips:edit Creates clips for the !clip command. When you set up the feature

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