Skip to content

Permissions & Intents

Understand how endpoint permissions and event intents control what your bot can do.

Endpoint Permissions #

Some Bot API endpoints require a permission. The permission is checked against the bot's archetype (role) in the target space. If the bot's role does not include the required permission, the request returns 403.

Permissions are shown on each endpoint's documentation page as a badge. Endpoints without a permission badge are accessible to any authenticated bot.

Common Permissions

Permission Grants Access To
SendMessages Sending messages in channels
ReadMessages Reading message history from channels
ManageChannels Creating and deleting channels
KickMembers Kicking users from channels
ViewMembers Viewing member details and listing members
ConnectVoice Joining voice channels and streaming audio

Privileged Endpoints #

Endpoints marked Privileged require the bot to be verified. These endpoints access sensitive data or perform actions that require higher trust.

Unverified bots calling a privileged endpoint receive 403 with error code not_verified.

Event Intents #

When connecting to the SSE event stream, you specify which event categories to receive via a bitmask. Each bit corresponds to an intent.

Pass the intent bitmask as the intents query parameter when connecting to /IEvents/v1/Stream.

Standard Intents

Available to all bots.

Intent Bit Events
Messages 1 << 0 MessageCreate, MessageEdit
Channels 1 << 2 ChannelCreate, ChannelDelete
Reactions 1 << 3 ReactionAdd, ReactionRemove
Typing 1 << 4 TypingStart, TypingStop
Commands 1 << 6 CommandInteraction
DirectMessages 1 << 7 none yet
Moderation 1 << 8 none yet
Archetypes 1 << 9 ArchetypeCreate, ArchetypeUpdate
SpaceUpdates 1 << 10 none yet
Voice 1 << 11 VoiceJoin, VoiceLeave
ControlInteractions 1 << 13 ControlInteraction, ModalSubmit, SelectInteraction

Privileged Intents

Require bot verification. Unverified bots requesting these intents will not receive the corresponding events.

Intent Bit Events
Members 1 << 1 MemberJoin, MemberLeave, MemberUpdate
Presence 1 << 5 PresenceUpdate
Calls 1 << 12 CallEnded, CallIncoming

Calculating the Bitmask #

Combine intents using bitwise OR. For example, to subscribe to Messages + Channels + Voice:

Messages  = 1 << 0  =     1
Channels  = 1 << 1  =     2
Voice     = 1 << 11 =  2048
─────────────────────────
intents   =            2051

Tip: Use intents=0 to receive only connection lifecycle events (Ready, Heartbeat, Resumed) without any space events.

Quick Reference #

Preset Value Description
AllNonPrivileged 12253 All standard intents combined
AllPrivileged 4130 All privileged intents combined
All 16383 Every intent (requires verification)