Skip to content

Modomation — Authentication & permissions

OAuth scopes

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.

ScopeWhy requestedWhen we ask
user:read:emailIdentifies the account owner and is used for account linking.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: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:manage:vipsGrants and revokes VIP status as part of redemption automations.When you set up the feature
channel:read:subscriptionsChecks subscriber status for subscriber-gated features.At sign-in
moderator:read:followersReads follower count and individual follow events.At sign-in
moderator:read:automod_settingsReads current AutoMod level and keyword filters.At sign-in
moderator:read:blocked_termsLists blocked terms managed by the broadcaster.At sign-in
moderator:manage:automodApproves or denies AutoMod-held messages.When you set up the feature
moderator:read:chat_settingsReads slow-mode, sub-only, and emote-only settings.At sign-in
moderator:read:warningsReads user warning history for moderation context.At sign-in
moderator:read:suspicious_usersReads the suspicious-user list maintained by Twitch.At sign-in
moderator:read:unban_requestsReads pending unban requests from banned viewers.At sign-in
moderator:read:banned_usersLists currently banned users for audit and automation.At sign-in
moderator:read:chat_messagesRequired by channel.moderate v2 for full moderation event detail.At sign-in
moderator:read:moderatorsLists channel moderators; required by channel.moderate v2.At sign-in
moderator:read:vipsLists current VIPs; required by channel.moderate v2.At sign-in
channel:read:pollsReads poll lifecycle events for channel event rules.At sign-in
channel:read:predictionsReads prediction lifecycle events for channel event rules.At sign-in
channel:read:hype_trainReads Hype Train events for channel event rules.At sign-in
channel:read:adsReads ad-break events for channel event rules.At sign-in
channel:manage:adsSnoozes the next scheduled ad break (used by snooze-ads-on-raid).When you set up the feature
moderator:read:shoutoutsReads shoutout events sent from or received by the channel.At sign-in
moderator:manage:shoutoutsSends native Twitch shoutouts on behalf of the channel.At sign-in
bits:readReads bits cheer events and leaderboard data.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.channel_points_custom_reward_redemption.add1channel:read:redemptionsbroadcaster_user_id, reward_idChannel point redemption — one subscription per redemption rule; reward_id is set at runtime
stream.online1broadcaster_user_idStream goes live — also provisioned by Auto Shoutouts
stream.offline1broadcaster_user_idStream ends
channel.update2broadcaster_user_idChannel title/category updated
channel.ad_break.begin1channel:read:adsbroadcaster_user_idAd break starts
channel.raid1to_broadcaster_user_idChannel receives a raid
channel.shoutout.create1moderator:read:shoutoutsbroadcaster_user_id, moderator_user_idShoutout sent from channel
channel.hype_train.begin2channel:read:hype_trainbroadcaster_user_idHype Train starts (v2 — v1 withdrawn 2026-01-22)
channel.hype_train.progress2channel:read:hype_trainbroadcaster_user_idHype Train level progresses (v2 — v1 withdrawn 2026-01-22)
channel.hype_train.end2channel:read:hype_trainbroadcaster_user_idHype Train ends (v2 — v1 withdrawn 2026-01-22)
channel.follow2moderator:read:followersbroadcaster_user_id, moderator_user_idNew follower — subscribed when a follow channel-event rule is enabled; moderator_user_id = broadcaster_user_id
channel.subscribe1channel:read:subscriptionsbroadcaster_user_idNew subscription
channel.subscription.gift1channel:read:subscriptionsbroadcaster_user_idGifted subscriptions
channel.subscription.message1channel:read:subscriptionsbroadcaster_user_idResub with share message
channel.cheer1bits:readbroadcaster_user_idBits cheered
channel.bits.use1bits:readbroadcaster_user_idPower-up bits — bits counters and bits wheelspin thresholds, same as a cheer (cheer-type events are ignored, channel.cheer owns those)
channel.poll.begin1channel:read:pollsbroadcaster_user_idPoll starts
channel.poll.end1channel:read:pollsbroadcaster_user_idPoll ends
channel.prediction.begin1channel:read:predictionsbroadcaster_user_idPrediction starts
channel.prediction.progress1channel:read:predictionsbroadcaster_user_idPrediction receives new entries
channel.prediction.lock1channel:read:predictionsbroadcaster_user_idPrediction locked for voting
channel.prediction.end1channel:read:predictionsbroadcaster_user_idPrediction resolved
channel.chat.message1user:read:chat, user:bot, channel:botbroadcaster_user_id, user_idChat messages — used by VIP Commands and Auto Shoutouts; subscribed when vip_enabled OR auto_shoutout_enabled
automod.message.hold2moderator:manage:automodbroadcaster_user_id, moderator_user_idAutoMod holds a message for review
automod.message.update2moderator:manage:automodbroadcaster_user_id, moderator_user_idHeld AutoMod message approved or denied
automod.settings.update1moderator:read:automod_settingsbroadcaster_user_id, moderator_user_idAutoMod settings changed
automod.terms.update1moderator:read:blocked_termsbroadcaster_user_id, moderator_user_idAutoMod blocked/permitted terms updated
channel.chat.message_delete1user:read:chat, user:bot, channel:botbroadcaster_user_id, user_idA chat message was deleted
channel.chat.user_message_hold1user:read:chat, user:bot, channel:botbroadcaster_user_id, user_idA user message was held by AutoMod
channel.chat.user_message_update1user:read:chat, user:bot, channel:botbroadcaster_user_id, user_idHeld user message approved or denied
channel.moderate2moderator: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:vipsbroadcaster_user_id, moderator_user_idModeration action taken (ban, timeout, etc.) — Twitch checks every listed scope against moderator_user_id
channel.warning.acknowledge1moderator:read:warningsbroadcaster_user_id, moderator_user_idA user acknowledged a warning
channel.warning.send1moderator:read:warningsbroadcaster_user_id, moderator_user_idA warning was sent to a user
channel.suspicious_user.message1moderator:read:suspicious_usersbroadcaster_user_id, moderator_user_idA suspicious user sent a message
channel.suspicious_user.update1moderator:read:suspicious_usersbroadcaster_user_id, moderator_user_idSuspicious user status updated