Skip to content

Reference

Discord

Set up Discord OAuth for user identity, server data, and messaging

Connect your users to Discord for identity verification, server membership data, and messaging integrations.

PropertyValue
Provider IDdiscord
CategoryCommunication
PKCESupported
Token refreshAutomatic
Redirect URIShown in Developer Portal

Go to the Discord Developer Portal

Navigate to discord.com/developers/applications and sign in.

Create a new application

Click New Application, enter a name, and click Create.

Configure OAuth2

In the left sidebar, click OAuth2. Under Redirects, add the Alter callback URL from the Developer Portal.

Get credentials

Copy the Client ID and Client Secret from the OAuth2 page.

Open the Developer Portal

Go to portal.alterauth.com and navigate to the application.

Add Discord provider

Go to OAuth Providers > Add Provider > Discord.

Enter credentials

  • Client ID: Paste your Discord Client ID
  • Client Secret: Paste your Discord Client Secret

Select scopes

Choose the scopes the application needs.

Save

Click Save. The provider is now active.

ScopeDescription
applications.builds.readRead build data for the user’s applications
applications.builds.uploadUpload or update builds for the user’s applications (approved partners only)
applications.commandsAdd commands to a guild (included by default with the bot scope)
applications.commands.permissions.updateUpdate command permissions in a guild where the user has permission
applications.entitlementsRead entitlements for the user’s applications
applications.store.updateRead and update store data for the user’s applications
botAdd a bot to the user’s selected guild by default
connectionsView the user’s linked third-party accounts
dm_channels.readSee information about the user’s DMs and group DMs (approved partners only)
emailView the user’s email address
gdm.joinJoin users to a group DM
guildsView basic information about all guilds the user belongs to
guilds.joinAdd the user to a guild where the bot already belongs
guilds.members.readView the user’s member information in a guild
identifyView the user’s basic profile from /users/@me
identify.premiumRead the user’s Nitro subscription type (approved partners only)
relationships.readAccess the user’s Discord Friends list, pending requests, and blocked users (Social SDK access required)
role_connections.writeUpdate the user’s connection and metadata for the app (not valid with the implicit grant)
  • Several Discord scopes are approval-only or Social SDK-only. Requesting them without Discord approval may cause OAuth errors.
  • Discord’s activities.read and activities.write scopes are documented as not currently available for apps, so they are not shown in Alter’s authorization-code scope picker.
  • Discord’s applications.commands.update scope is documented for the client credentials grant, so it is not shown in Alter’s authorization-code scope picker.
  • Discord’s messages.read, rpc, rpc.*, and voice scopes are local client/RPC or voice surfaces rather than normal Discord HTTP API access-token permissions, so they are not shown in Alter’s HTTP proxy-oriented picker.
  • Discord’s webhook.incoming scope returns webhook material in the token response; Alter does not expose that payload as a managed webhook credential, so it is not shown in the picker.
  • For most user-facing integrations, identify and email are sufficient.
  • See the Discord OAuth2 documentation for more details.

Alter policy rules can target these attested operations and families for operation-level and parameter-aware controls.

Operation IDFamiliesMethodProvider path
create_messagesendPOST/channels/{channel_id}/messages
execute_webhooksendPOST/webhooks/{webhook_id}/{webhook_token}
crosspost_messagesendPOST/channels/{channel_id}/messages/{message_id}/crosspost
list_messagesreadGET/channels/{channel_id}/messages
get_messagereadGET/channels/{channel_id}/messages/{message_id}
delete_messagedeleteDELETE/channels/{channel_id}/messages/{message_id}
bulk_delete_messagesdeletePOST/channels/{channel_id}/messages/bulk-delete
get_channelreadGET/channels/{channel_id}
update_channelwritePATCH/channels/{channel_id}
delete_channeldeleteDELETE/channels/{channel_id}
list_guild_channelsreadGET/guilds/{guild_id}/channels
create_guild_channelwritePOST/guilds/{guild_id}/channels
create_dmwritePOST/users/@me/channels
get_guildreadGET/guilds/{guild_id}
update_guildadminPATCH/guilds/{guild_id}
list_my_guildsreadGET/users/@me/guilds
list_guild_membersreadGET/guilds/{guild_id}/members
get_guild_memberreadGET/guilds/{guild_id}/members/{user_id}
delete_guild_memberadminDELETE/guilds/{guild_id}/members/{user_id}
ban_user_from_guildadminPUT/guilds/{guild_id}/bans/{user_id}
unban_user_from_guildadminDELETE/guilds/{guild_id}/bans/{user_id}
bulk_ban_users_from_guildadminPOST/guilds/{guild_id}/bulk-ban
list_guild_bansreadGET/guilds/{guild_id}/bans
list_guild_rolesreadGET/guilds/{guild_id}/roles
create_guild_roleadminPOST/guilds/{guild_id}/roles
delete_guild_roleadmin, deleteDELETE/guilds/{guild_id}/roles/{role_id}
add_guild_member_roleadminPUT/guilds/{guild_id}/members/{user_id}/roles/{role_id}
delete_guild_member_roleadminDELETE/guilds/{guild_id}/members/{user_id}/roles/{role_id}
create_channel_invitewritePOST/channels/{channel_id}/invites
invite_revokedeleteDELETE/invites/{code}
create_webhookadminPOST/channels/{channel_id}/webhooks
delete_webhookadmin, deleteDELETE/webhooks/{webhook_id}
list_channel_webhooksreadGET/channels/{channel_id}/webhooks
get_my_userreadGET/users/@me

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.