Gateway intents (and privileged intents)
このコンテンツはまだ日本語訳がありません。
Status
Stable· Last verified 2026-07-11 · APIv10· Sources Gateway intents, Privileged intent review
Intents are opt-in bitflags, declared when you IDENTIFY, that tell Discord
which groups of events to send you. Fewer intents = less data, less memory, and a
smaller blast radius if your bot is compromised. Request only what you use.
How they work
Section titled “How they work”Each intent maps to a set of events. You OR the flags into one integer:
// discord.js expresses these as named flags; the raw values are bitfields.// e.g. GUILDS (1 << 0) | GUILD_MESSAGES (1 << 9) | MESSAGE_CONTENT (1 << 15)If you don’t request an intent, its events simply never arrive — a frequent “why isn’t my bot seeing messages?” cause.
Non-privileged intents (a sample)
Section titled “Non-privileged intents (a sample)”| Intent | Unlocks (examples) |
|---|---|
GUILDS |
Guild/channel/thread create/update/delete |
GUILD_MESSAGES |
MESSAGE_CREATE/UPDATE/DELETE (metadata; not content — see below) |
GUILD_MESSAGE_REACTIONS |
Reaction add/remove |
GUILD_VOICE_STATES |
Who’s in which voice channel |
DIRECT_MESSAGES |
DM message events |
GUILD_MESSAGE_TYPING |
Typing indicators |
The three privileged intents
Section titled “The three privileged intents”These expose sensitive data, so Discord gates them:
| Privileged intent | Grants access to |
|---|---|
GUILD_MEMBERS (“Server Members”) |
Member join/leave/update events; requesting full member lists |
GUILD_PRESENCES (“Presence”) |
Online/offline status and activity of members |
MESSAGE_CONTENT |
The actual content, embeds, attachments, and components of messages your bot didn’t author and isn’t mentioned in |
Without MESSAGE_CONTENT, MESSAGE_CREATE still fires, but text fields arrive
empty (except in DMs to your bot, messages that mention it, or its own messages).
This is why prefix-command bots must either enable it or migrate to
slash commands (recommended).
Enabling privileged intents — and the 2026 change
Section titled “Enabling privileged intents — and the 2026 change”You toggle privileged intents on the Bot tab of the Developer Portal. Whether you can just flip them on, or must apply for review, changed in mid-2026:
[!NOTE] Verified — access threshold is now user-based As of 2026-06-10, the review threshold shifted from “in 100+ servers” to a measure of unique users who can see your app across all its servers. Below the threshold you can toggle privileged intents on yourself; past ~10,000 unique users you must submit each privileged intent for review with a justified use case, and reapply annually. Source: Changes to Privileged Intent Access.
Practical implications:
- Small/hobby bots: enable what you need in the portal and go.
- Growing bots: apply before you approach the threshold; unapproved intents are dropped once you cross it, which can silently break features.
- Only request an intent you can justify — reviews reject “just in case.”
Security guidance
Section titled “Security guidance”- Default to no privileged intents. Reach for slash commands and interactions instead of reading arbitrary message content.
- If you must read content, scope it tightly and document why (reviewers and users both ask).
- Fewer intents also means a smaller cache and less PII at risk if your token leaks. See Security.
- Back to Gateway overview.
- Avoid needing
MESSAGE_CONTENTat all → Interactions.