Discord — Authentication & permissions
OAuth scopes
The Discord 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 |
|---|---|---|
channel:read:subscriptions | Receives subs, resubs and gift bombs for Discord announcements. | At sign-in |
bits:read | Receives cheers for Discord announcements. | At sign-in |
channel:read:hype_train | Receives Hype Train starts and ends for Discord announcements. | At sign-in |
EventSub subscriptions
The Discord module creates none of these subscriptions itself (“consumer only”). The platform creates them for every channel whose plan includes Discord, and delivers each event to Discord over its internal fan-out.
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 |
|---|---|---|---|---|
stream.online | 1 | — | broadcaster_user_id | Stream goes live — go-live post (consumer only) |
stream.offline | 1 | — | broadcaster_user_id | Stream ends (consumer only) |
channel.subscribe | 1 | channel:read:subscriptions | broadcaster_user_id | New subscription — sub-role sync + announcement (consumer only) |
channel.subscription.message | 1 | channel:read:subscriptions | broadcaster_user_id | Resub with share message (consumer only) |
channel.subscription.gift | 1 | channel:read:subscriptions | broadcaster_user_id | Gift bomb announcement (consumer only) |
channel.cheer | 1 | bits:read | broadcaster_user_id | Bits cheered (consumer only) |
channel.bits.use | 1 | bits:read | broadcaster_user_id | Power-up bits — hype-train conductor tally only, not announced (consumer only; cheer-type events are ignored, channel.cheer owns those) |
channel.raid | 1 | — | to_broadcaster_user_id | Incoming raid announcement (consumer only) |
channel.hype_train.begin | 2 | channel:read:hype_train | broadcaster_user_id | Hype Train starts (consumer only) |
channel.hype_train.end | 2 | channel:read:hype_train | broadcaster_user_id | Hype Train ends (consumer only) |
Share Feedback
Need help or want to chat? Join our Discord to get support, report bugs, and talk with other streamers.0 / 1000
Privacy
▸ What we're sending
| Module | — |
| Page | — |
| Browser | — |
| Screen | — |
| Channel | anonymous |
| Submitted | — |