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 /api/bot/IEvents/v1/Stream.

Standard Intents

Available to all bots.

Intent Bit Events
Messages 1 << 0 MessageCreate, MessageDelete, MessageUpdate
Channels 1 << 2 ChannelCreate, ChannelDelete, ChannelUpdate
Reactions 1 << 3 none yet
Typing 1 << 4 TypingStart, TypingStop
Commands 1 << 6 CommandInteraction
DirectMessages 1 << 7 DirectMessageCreate
Moderation 1 << 8 MemberBanned, MemberKicked
Archetypes 1 << 9 ArchetypeChanged, ArchetypeCreated
SpaceUpdates 1 << 10 SpaceModified
Voice 1 << 11 VoiceJoin, VoiceLeave, VoiceMute, VoiceStreamStart, VoiceStreamStop, VoiceUnmute

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 4061 All standard intents combined
AllPrivileged 4130 All privileged intents combined
All 8191 Every intent (requires verification)