OAuth2 scopes catalogue
Status
Stable· Last verified 2026-07-11 · APIv10· Source OAuth2 scopes
Scopes declare exactly what an authorization may do. Request the minimum — each extra scope is more data at risk and more hesitation at the consent screen. Several scopes are gated: they only work for approved partners, or only via the client-credentials grant, or are not available to apps at all.
Access tiers
Section titled “Access tiers”- General — usable by any app.
- Partners only — requires Discord approval (“approved partners only”).
- Client-credentials only — usable only via the client-credentials grant.
- Not available to apps — documented but not grantable to third-party apps.
The catalogue
Section titled “The catalogue”| Scope | Grants | Access |
|---|---|---|
identify |
/users/@me without email |
General |
email |
Adds email to /users/@me |
General |
connections |
The user’s linked third-party accounts | General |
guilds |
Basic info about the user’s guilds | General |
guilds.join |
Add the user to a guild (with a bot present) | General |
guilds.members.read |
The user’s member info in a guild | General |
gdm.join |
Join the user to a group DM | General |
bot |
Add a bot to a user-selected guild | General |
applications.commands |
Add commands to a guild (included with bot) |
General |
applications.commands.permissions.update |
Update command permissions in a guild | General |
applications.commands.update |
Update commands via Bearer token | Client-credentials only |
applications.entitlements |
Read entitlements for the user’s apps | General |
applications.builds.read |
Read build data for the user’s apps | General |
applications.builds.upload |
Upload/update builds | Partners only |
applications.store.update |
Read/update store data (SKUs, listings, achievements) | General |
role_connections.write |
Update the user’s linked-role connection metadata | General |
webhook.incoming |
Return a created incoming webhook in the token response | General |
identify.premium |
Read the user’s Nitro (premium) type | Partners only |
relationships.read |
The user’s friends / pending / blocked (Social SDK) | Partners only |
dm_channels.read |
See the user’s DMs and group DMs | Partners only |
messages.read |
Read messages across the client (local RPC) | Partners only |
voice |
Connect to voice on the user’s behalf | Partners only |
activities.read |
The user’s Now Playing / Recently Played | Not available to apps |
activities.write |
Update the user’s activity | Not available to apps |
rpc |
Control the user’s local Discord client | Partners only |
rpc.activities.write |
Update activity via local RPC | Partners only |
rpc.notifications.read |
Receive notifications via local RPC | Partners only |
rpc.voice.read |
Read voice settings / listen for voice events | Partners only |
rpc.voice.write |
Update the user’s voice settings | Partners only |
[!NOTE] Verified Access tiers above reflect the “approved partners only” / “client credentials only” / “not currently available for apps” annotations in the official scope list. Re-verify before depending on a gated scope — availability changes.
Choosing scopes
Section titled “Choosing scopes”- “Login with Discord” →
identify(addemailonly if you need it). - Show the user’s servers →
guilds. - Add your bot to a server →
bot+applications.commands, paired with a minimal permission bitfield, never Administrator. - Linked Roles →
role_connections.write— see Linked Roles.
- Authorization-code flow — how scopes are requested and granted.
- Other grants — client-credentials & implicit.