Skip to content

Modomation — Authentication & permissions

The Modomation 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: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: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:manage:vips Grants and revokes VIP status as part of redemption automations. When you set up the feature
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
moderator:read:automod_settings Reads current AutoMod level and keyword filters. At sign-in
moderator:read:blocked_terms Lists blocked terms managed by the broadcaster. At sign-in
moderator:manage:automod Approves or denies AutoMod-held messages. When you set up the feature
moderator:read:chat_settings Reads slow-mode, sub-only, and emote-only settings. At sign-in
moderator:read:warnings Reads user warning history for moderation context. At sign-in
moderator:read:suspicious_users Reads the suspicious-user list maintained by Twitch. At sign-in
moderator:read:unban_requests Reads pending unban requests from banned viewers. At sign-in
moderator:read:banned_users Lists currently banned users for audit and automation. At sign-in
moderator:read:chat_messages Required by channel.moderate v2 for full moderation event detail. At sign-in
moderator:read:moderators Lists channel moderators; required by channel.moderate v2. At sign-in
moderator:read:vips Lists current VIPs; required by channel.moderate v2. At sign-in
channel:read:polls Reads poll lifecycle events for channel event rules. At sign-in
channel:read:predictions Reads prediction lifecycle events for channel event rules. At sign-in
channel:read:hype_train Reads Hype Train events for channel event rules. At sign-in
channel:read:ads Reads ad-break events for channel event rules. At sign-in
channel:manage:ads Snoozes the next scheduled ad break (used by snooze-ads-on-raid). When you set up the feature
moderator:read:shoutouts Reads shoutout events sent from or received by the channel. At sign-in
moderator:manage:shoutouts Sends native Twitch shoutouts on behalf of the channel. At sign-in
bits:read Reads bits cheer events and leaderboard data. At sign-in

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.channel_points_custom_reward_redemption.add 1 channel:read:redemptions broadcaster_user_id, reward_id Channel point redemption — one subscription per redemption rule; reward_id is set at runtime
stream.online 1 — broadcaster_user_id Stream goes live — also provisioned by Auto Shoutouts
stream.offline 1 — broadcaster_user_id Stream ends
channel.update 2 — broadcaster_user_id Channel title/category updated
channel.ad_break.begin 1 channel:read:ads broadcaster_user_id Ad break starts
channel.raid 1 — to_broadcaster_user_id Channel receives a raid
channel.shoutout.create 1 moderator:read:shoutouts broadcaster_user_id, moderator_user_id Shoutout sent from channel
channel.hype_train.begin 2 channel:read:hype_train broadcaster_user_id Hype Train starts (v2 — v1 withdrawn 2026-01-22)
channel.hype_train.progress 2 channel:read:hype_train broadcaster_user_id Hype Train level progresses (v2 — v1 withdrawn 2026-01-22)
channel.hype_train.end 2 channel:read:hype_train broadcaster_user_id Hype Train ends (v2 — v1 withdrawn 2026-01-22)
channel.follow 2 moderator:read:followers broadcaster_user_id, moderator_user_id New follower — subscribed when a follow channel-event rule is enabled; moderator_user_id = broadcaster_user_id
channel.subscribe 1 channel:read:subscriptions broadcaster_user_id New subscription
channel.subscription.gift 1 channel:read:subscriptions broadcaster_user_id Gifted subscriptions
channel.subscription.message 1 channel:read:subscriptions broadcaster_user_id Resub with share message
channel.cheer 1 bits:read broadcaster_user_id Bits cheered
channel.bits.use 1 bits:read broadcaster_user_id Power-up bits — bits counters and bits wheelspin thresholds, same as a cheer (cheer-type events are ignored, channel.cheer owns those)
channel.poll.begin 1 channel:read:polls broadcaster_user_id Poll starts
channel.poll.end 1 channel:read:polls broadcaster_user_id Poll ends
channel.prediction.begin 1 channel:read:predictions broadcaster_user_id Prediction starts
channel.prediction.progress 1 channel:read:predictions broadcaster_user_id Prediction receives new entries
channel.prediction.lock 1 channel:read:predictions broadcaster_user_id Prediction locked for voting
channel.prediction.end 1 channel:read:predictions broadcaster_user_id Prediction resolved
channel.chat.message 1 user:read:chat, user:bot, channel:bot broadcaster_user_id, user_id Chat messages — used by VIP Commands and Auto Shoutouts; subscribed when vip_enabled OR auto_shoutout_enabled
automod.message.hold 2 moderator:manage:automod broadcaster_user_id, moderator_user_id AutoMod holds a message for review
automod.message.update 2 moderator:manage:automod broadcaster_user_id, moderator_user_id Held AutoMod message approved or denied
automod.settings.update 1 moderator:read:automod_settings broadcaster_user_id, moderator_user_id AutoMod settings changed
automod.terms.update 1 moderator:read:blocked_terms broadcaster_user_id, moderator_user_id AutoMod blocked/permitted terms updated
channel.chat.message_delete 1 user:read:chat, user:bot, channel:bot broadcaster_user_id, user_id A chat message was deleted
channel.chat.user_message_hold 1 user:read:chat, user:bot, channel:bot broadcaster_user_id, user_id A user message was held by AutoMod
channel.chat.user_message_update 1 user:read:chat, user:bot, channel:bot broadcaster_user_id, user_id Held user message approved or denied
channel.moderate 2 moderator:read:blocked_terms, moderator:read:chat_settings, moderator:read:unban_requests, moderator:read:banned_users, moderator:read:chat_messages, moderator:read:warnings, moderator:read:moderators, moderator:read:vips broadcaster_user_id, moderator_user_id Moderation action taken (ban, timeout, etc.) — Twitch checks every listed scope against moderator_user_id
channel.warning.acknowledge 1 moderator:read:warnings broadcaster_user_id, moderator_user_id A user acknowledged a warning
channel.warning.send 1 moderator:read:warnings broadcaster_user_id, moderator_user_id A warning was sent to a user
channel.suspicious_user.message 1 moderator:read:suspicious_users broadcaster_user_id, moderator_user_id A suspicious user sent a message
channel.suspicious_user.update 1 moderator:read:suspicious_users broadcaster_user_id, moderator_user_id Suspicious user status updated