Use this reference to look up a Discord permission flag by API name, bit position, decimal value or hexadecimal value. Values were checked against Discord's official permission table on October 24, 2026. For how invites and channel overwrites work, see the permission integer explanation.
Quick lookups
8: Administrator16: Manage Channels2048: Send Messages268435456: Manage Roles1099511627776: Moderate Members (timeout)
The Discord Permissions Calculator builds combinations and decodes decimal integers. It preserves unknown bits, which can appear as Discord adds permissions.
Permission flag values
The API names below are stable lookup keys; the Discord interface and client libraries may use different display names. Bit 47 is absent from the current official table. The list includes Pin Messages at bit 51 and Bypass Slowmode at bit 52.
| API name | Bit | Decimal | Hex |
|---|---|---|---|
| CREATE_INSTANT_INVITE | 0 | 1 | 0x1 |
| KICK_MEMBERS | 1 | 2 | 0x2 |
| BAN_MEMBERS | 2 | 4 | 0x4 |
| ADMINISTRATOR | 3 | 8 | 0x8 |
| MANAGE_CHANNELS | 4 | 16 | 0x10 |
| MANAGE_GUILD | 5 | 32 | 0x20 |
| ADD_REACTIONS | 6 | 64 | 0x40 |
| VIEW_AUDIT_LOG | 7 | 128 | 0x80 |
| PRIORITY_SPEAKER | 8 | 256 | 0x100 |
| STREAM | 9 | 512 | 0x200 |
| VIEW_CHANNEL | 10 | 1024 | 0x400 |
| SEND_MESSAGES | 11 | 2048 | 0x800 |
| SEND_TTS_MESSAGES | 12 | 4096 | 0x1000 |
| MANAGE_MESSAGES | 13 | 8192 | 0x2000 |
| EMBED_LINKS | 14 | 16384 | 0x4000 |
| ATTACH_FILES | 15 | 32768 | 0x8000 |
| READ_MESSAGE_HISTORY | 16 | 65536 | 0x10000 |
| MENTION_EVERYONE | 17 | 131072 | 0x20000 |
| USE_EXTERNAL_EMOJIS | 18 | 262144 | 0x40000 |
| VIEW_GUILD_INSIGHTS | 19 | 524288 | 0x80000 |
| CONNECT | 20 | 1048576 | 0x100000 |
| SPEAK | 21 | 2097152 | 0x200000 |
| MUTE_MEMBERS | 22 | 4194304 | 0x400000 |
| DEAFEN_MEMBERS | 23 | 8388608 | 0x800000 |
| MOVE_MEMBERS | 24 | 16777216 | 0x1000000 |
| USE_VAD | 25 | 33554432 | 0x2000000 |
| CHANGE_NICKNAME | 26 | 67108864 | 0x4000000 |
| MANAGE_NICKNAMES | 27 | 134217728 | 0x8000000 |
| MANAGE_ROLES | 28 | 268435456 | 0x10000000 |
| MANAGE_WEBHOOKS | 29 | 536870912 | 0x20000000 |
| MANAGE_GUILD_EXPRESSIONS | 30 | 1073741824 | 0x40000000 |
| USE_APPLICATION_COMMANDS | 31 | 2147483648 | 0x80000000 |
| REQUEST_TO_SPEAK | 32 | 4294967296 | 0x100000000 |
| MANAGE_EVENTS | 33 | 8589934592 | 0x200000000 |
| MANAGE_THREADS | 34 | 17179869184 | 0x400000000 |
| CREATE_PUBLIC_THREADS | 35 | 34359738368 | 0x800000000 |
| CREATE_PRIVATE_THREADS | 36 | 68719476736 | 0x1000000000 |
| USE_EXTERNAL_STICKERS | 37 | 137438953472 | 0x2000000000 |
| SEND_MESSAGES_IN_THREADS | 38 | 274877906944 | 0x4000000000 |
| USE_EMBEDDED_ACTIVITIES | 39 | 549755813888 | 0x8000000000 |
| MODERATE_MEMBERS | 40 | 1099511627776 | 0x10000000000 |
| VIEW_CREATOR_MONETIZATION_ANALYTICS | 41 | 2199023255552 | 0x20000000000 |
| USE_SOUNDBOARD | 42 | 4398046511104 | 0x40000000000 |
| CREATE_GUILD_EXPRESSIONS | 43 | 8796093022208 | 0x80000000000 |
| CREATE_EVENTS | 44 | 17592186044416 | 0x100000000000 |
| USE_EXTERNAL_SOUNDS | 45 | 35184372088832 | 0x200000000000 |
| SEND_VOICE_MESSAGES | 46 | 70368744177664 | 0x400000000000 |
| SET_VOICE_CHANNEL_STATUS | 48 | 281474976710656 | 0x1000000000000 |
| SEND_POLLS | 49 | 562949953421312 | 0x2000000000000 |
| USE_EXTERNAL_APPS | 50 | 1125899906842624 | 0x4000000000000 |
| PIN_MESSAGES | 51 | 2251799813685248 | 0x8000000000000 |
| BYPASS_SLOWMODE | 52 | 4503599627370496 | 0x10000000000000 |
Worked combinations
| Example | Included flags | Decimal |
|---|---|---|
| View and send | View Channel + Send Messages | 3072 |
| View, send, embed and read history | View Channel + Send Messages + Embed Links + Read Message History | 84992 |
| Kick, ban, delete messages and timeout | Kick Members + Ban Members + Manage Messages + Moderate Members | 1099511635974 |
These combinations describe stored flags, not a guarantee of effective channel access. Check channel overwrites and the role hierarchy before diagnosing an action.
JavaScript values above bit 30
const requestToSpeak = 1n << 32n; // 4294967296n
const moderateMembers = 1n << 40n; // 1099511627776n
const value = BigInt("1099511635974");
console.log((value & moderateMembers) === moderateMembers); // true
console.log(JSON.stringify({ permissions: value.toString() }));
Use decimal strings from API responses and BigInt for bitwise calculations. Do not pass a value through Number first: that can lose precision before BigInt receives it. Current named flags fit within JavaScript's safe integer range individually, but Number bitwise operators still use 32 bits and future or unknown combinations may be larger.
Do I need an all-permissions integer?
Usually you need a small named set matching the bot's actions. Administrator is an override with value 8, not a numeric sum of all flags. A hardcoded all-flags total also goes stale when Discord adds permissions. Use your library's current flag set if you specifically need to inspect all known flags.
Source and update scope
Discord's official permission documentation is the authority for current flag assignments. This reference records the checked values; it does not calculate channel overwrites or application-command access. The companion guide covers those distinctions.