跳到內容

Gateway intents (and privileged intents)

本頁內容尚未翻譯。

Status Stable · Last verified 2026-07-11 · API v10 · 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.

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.

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

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.”
  • 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.