Skip to content

AI — Authentication & permissions

OAuth scopes

The AI 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:subscriptionsChecks subscriber status for subscriber-gated features.At sign-in
bits:readReads bits cheer events and leaderboard data.At sign-in
user:read:chatListens to chat messages via EventSub.At sign-in
user:write:chatPosts bot responses back to chat.At sign-in
user:botMarks the account as a bot so Twitch applies bot rate limits.At sign-in
channel:botAllows the account to send chat messages as a bot in this channel.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.chat.message1user:read:chat, user:bot, channel:botbroadcaster_user_id, user_idChat messages — user_id = broadcaster_user_id (broadcaster reads own chat)
channel.cheer1bits:readbroadcaster_user_idBits cheered in channel
channel.subscription.gift1channel:read:subscriptionsbroadcaster_user_idGifted subscriptions
channel.subscribe1channel:read:subscriptionsbroadcaster_user_idNew subscriptions (non-gift)
channel.subscription.message1channel:read:subscriptionsbroadcaster_user_idResub messages with share text