Skip to content

AI — Authentication & permissions

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.

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
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:write:chat Posts bot responses back to chat. At sign-in
user:bot Marks the account as a bot so Twitch applies bot rate limits. At sign-in
channel:bot Allows the account to send chat messages as a bot in this channel. 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.chat.message 1 user:read:chat, user:bot, channel:bot broadcaster_user_id, user_id Chat messages — user_id = broadcaster_user_id (broadcaster reads own chat)
channel.cheer 1 bits:read broadcaster_user_id Bits cheered in channel
channel.subscription.gift 1 channel:read:subscriptions broadcaster_user_id Gifted subscriptions
channel.subscribe 1 channel:read:subscriptions broadcaster_user_id New subscriptions (non-gift)
channel.subscription.message 1 channel:read:subscriptions broadcaster_user_id Resub messages with share text