Discord · OAuth Scopes

Discord OAuth Scopes

OAuth 2.0 derived

Discord publishes 33 OAuth 2.0 scopes via the implicit, clientCredentials, and authorizationCode flows. Scopes are the fine-grained permissions an application requests at authorization time to act against the Discord API on a user’s behalf.

Tokens are issued from https://discord.com/api/oauth2/token.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

ChatCommunicationGamingMessagingSocialVideoVoice
Scopes: 33 Flows: implicit, clientCredentials, authorizationCode Method: derived

OAuth endpoints

Authorization URL
discord.com/oauth2/authorize https://discord.com/oauth2/authorize
Token URL
https://discord.com/api/oauth2/token https://discord.com/api/v10/oauth2/token
Flows
implicitclientCredentialsauthorizationCode

Scopes (33)

ScopeDescriptionFlows
activities.read allows your app to fetch data from a user's "Now Playing/Recently Played" list - requires Discord approval authorizationCode, clientCredentials, implicit
activities.write allows your app to update a user's activity - requires Discord approval (NOT REQUIRED FOR GAMESDK ACTIVITY MANAGER) authorizationCode, clientCredentials, implicit
applications.builds.read allows your app to read build data for a user's applications authorizationCode, clientCredentials, implicit
applications.builds.upload allows your app to upload/update builds for a user's applications - requires Discord approval authorizationCode, clientCredentials, implicit
applications.commands allows your app to use commands in a guild authorizationCode, clientCredentials, implicit
applications.commands.permissions.update allows your app to update permissions for its commands in a guild a user has permissions to authorizationCode, clientCredentials, implicit
applications.commands.update allows your app to update its commands using a Bearer token - client credentials grant only clientCredentials
applications.entitlements allows your app to read entitlements for a user's applications authorizationCode, clientCredentials, implicit
applications.store.update allows your app to read and update store data (SKUs, store listings, achievements, etc.) for a user's applications authorizationCode, clientCredentials, implicit
bot for oauth2 bots, this puts the bot in the user's selected guild by default authorizationCode, clientCredentials, implicit
connections allows /users/@me/connections to return linked third-party accounts authorizationCode, clientCredentials, implicit
dm_channels.read allows your app to see information about the user's DMs and group DMs - requires Discord approval authorizationCode, clientCredentials, implicit
email enables /users/@me to return an email authorizationCode, clientCredentials, implicit
gdm.join allows your app to join users to a group dm authorizationCode, clientCredentials, implicit
guilds allows /users/@me/guilds to return basic information about all of a user's guilds authorizationCode, clientCredentials, implicit
guilds.join allows /guilds/{guild.id}/members/{user.id} to be used for joining users to a guild authorizationCode, clientCredentials, implicit
guilds.members.read allows /users/@me/guilds/{guild.id}/member to return a user's member information in a guild authorizationCode, clientCredentials, implicit
identify allows /users/@me without email authorizationCode, clientCredentials, implicit
messages.read for local rpc server api access, this allows you to read messages from all client channels (otherwise restricted to channels/guilds your app creates) authorizationCode, clientCredentials, implicit
openid for OpenID Connect, this allows your app to receive user id and basic profile information authorizationCode, clientCredentials, implicit
relationships.read allows your app to know a user's friends and implicit relationships - requires Discord approval authorizationCode, clientCredentials, implicit
role_connections.write allows your app to update a user's connection and metadata for the app authorizationCode
rpc for local rpc server access, this allows you to control a user's local Discord client - requires Discord approval authorizationCode, clientCredentials, implicit
rpc.activities.write for local rpc server access, this allows you to update a user's activity - requires Discord approval authorizationCode, clientCredentials, implicit
rpc.notifications.read for local rpc server access, this allows you to receive notifications pushed out to the user - requires Discord approval authorizationCode, clientCredentials, implicit
rpc.screenshare.read for local rpc server access, this allows you to read a user's screenshare status- requires Discord approval authorizationCode, clientCredentials, implicit
rpc.screenshare.write for local rpc server access, this allows you to update a user's screenshare settings- requires Discord approval authorizationCode, clientCredentials, implicit
rpc.video.read for local rpc server access, this allows you to read a user's video status - requires Discord approval authorizationCode, clientCredentials, implicit
rpc.video.write for local rpc server access, this allows you to update a user's video settings - requires Discord approval authorizationCode, clientCredentials, implicit
rpc.voice.read for local rpc server access, this allows you to read a user's voice settings and listen for voice events - requires Discord approval authorizationCode, clientCredentials, implicit
rpc.voice.write for local rpc server access, this allows you to update a user's voice settings - requires Discord approval authorizationCode, clientCredentials, implicit
voice allows your app to connect to voice on user's behalf and see all the voice members - requires Discord approval authorizationCode, clientCredentials, implicit
webhook.incoming this generates a webhook that is returned in the oauth token response for authorization code grants authorizationCode, clientCredentials, implicit

Source

OAuth Scopes

discord-scopes.yml Raw ↑
generated: '2026-07-11'
method: derived
source: openapi/discord-openapi-original.yml, openapi/discord-rest-api-openapi.yml
schemes:
- name: OAuth2
  source: openapi/discord-openapi-original.yml
  flows:
  - flow: implicit
    authorizationUrl: discord.com/oauth2/authorize
  - flow: clientCredentials
    tokenUrl: https://discord.com/api/oauth2/token
  - flow: authorizationCode
    authorizationUrl: discord.com/oauth2/authorize
    tokenUrl: https://discord.com/api/oauth2/token
- name: OAuth2
  source: openapi/discord-rest-api-openapi.yml
  flows:
  - flow: authorizationCode
    authorizationUrl: https://discord.com/oauth2/authorize
    tokenUrl: https://discord.com/api/v10/oauth2/token
scopes:
- scope: activities.read
  description: allows your app to fetch data from a user's "Now Playing/Recently Played" list
    - requires Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: activities.write
  description: allows your app to update a user's activity - requires Discord approval (NOT
    REQUIRED FOR GAMESDK ACTIVITY MANAGER)
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: applications.builds.read
  description: allows your app to read build data for a user's applications
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: applications.builds.upload
  description: allows your app to upload/update builds for a user's applications - requires
    Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: applications.commands
  description: allows your app to use commands in a guild
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
  - openapi/discord-rest-api-openapi.yml
- scope: applications.commands.permissions.update
  description: allows your app to update permissions for its commands in a guild a user has
    permissions to
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: applications.commands.update
  description: allows your app to update its commands using a Bearer token - client credentials
    grant only
  flows:
  - clientCredentials
  sources:
  - openapi/discord-openapi-original.yml
- scope: applications.entitlements
  description: allows your app to read entitlements for a user's applications
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: applications.store.update
  description: allows your app to read and update store data (SKUs, store listings, achievements,
    etc.) for a user's applications
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: bot
  description: for oauth2 bots, this puts the bot in the user's selected guild by default
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
  - openapi/discord-rest-api-openapi.yml
- scope: connections
  description: allows /users/@me/connections to return linked third-party accounts
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
  - openapi/discord-rest-api-openapi.yml
- scope: dm_channels.read
  description: allows your app to see information about the user's DMs and group DMs - requires
    Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: email
  description: enables /users/@me to return an email
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
  - openapi/discord-rest-api-openapi.yml
- scope: gdm.join
  description: allows your app to join users to a group dm
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: guilds
  description: allows /users/@me/guilds to return basic information about all of a user's guilds
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
  - openapi/discord-rest-api-openapi.yml
- scope: guilds.join
  description: allows /guilds/{guild.id}/members/{user.id} to be used for joining users to a
    guild
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
  - openapi/discord-rest-api-openapi.yml
- scope: guilds.members.read
  description: allows /users/@me/guilds/{guild.id}/member to return a user's member information
    in a guild
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: identify
  description: allows /users/@me without email
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
  - openapi/discord-rest-api-openapi.yml
- scope: messages.read
  description: for local rpc server api access, this allows you to read messages from all client
    channels (otherwise restricted to channels/guilds your app creates)
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
  - openapi/discord-rest-api-openapi.yml
- scope: openid
  description: for OpenID Connect, this allows your app to receive user id and basic profile
    information
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: relationships.read
  description: allows your app to know a user's friends and implicit relationships - requires
    Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: role_connections.write
  description: allows your app to update a user's connection and metadata for the app
  flows:
  - authorizationCode
  sources:
  - openapi/discord-openapi-original.yml
- scope: rpc
  description: for local rpc server access, this allows you to control a user's local Discord
    client - requires Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: rpc.activities.write
  description: for local rpc server access, this allows you to update a user's activity - requires
    Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: rpc.notifications.read
  description: for local rpc server access, this allows you to receive notifications pushed
    out to the user - requires Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: rpc.screenshare.read
  description: for local rpc server access, this allows you to read a user's screenshare status-
    requires Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: rpc.screenshare.write
  description: for local rpc server access, this allows you to update a user's screenshare settings-
    requires Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: rpc.video.read
  description: for local rpc server access, this allows you to read a user's video status -
    requires Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: rpc.video.write
  description: for local rpc server access, this allows you to update a user's video settings
    - requires Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: rpc.voice.read
  description: for local rpc server access, this allows you to read a user's voice settings
    and listen for voice events - requires Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: rpc.voice.write
  description: for local rpc server access, this allows you to update a user's voice settings
    - requires Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: voice
  description: allows your app to connect to voice on user's behalf and see all the voice members
    - requires Discord approval
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml
- scope: webhook.incoming
  description: this generates a webhook that is returned in the oauth token response for authorization
    code grants
  flows:
  - authorizationCode
  - clientCredentials
  - implicit
  sources:
  - openapi/discord-openapi-original.yml