Developer Portal & Docs Refresh
The Developer Portal and Developer Docs have both been updated with improved navigation, usability, and a redesigned theme, with more developer experience improvements on the way. Latest changes include:Developer Portal
- New dev portal home page with quick access to apps, docs, and new developer videos.
- New theme with updated navigation and updated light/dark support.
- New Localization support! This will use the same language you have set in the Discord client.
Developer Docs
- Reorganized structure with new tabs for each feature area and new sidebars for easier navigation.
- New guides and overviews for platform-wide features and use cases, with more on the way!
- AI & MCP support: Docs now work with AI development tools via Copy-as-Markdown, an LLMs.txt file, and an MCP server, available at
https://docs.discord.com/mcp - Existing docs URLs are stable and were preserved during the reorganization. Some titles and content were updated or moved for clarity.
What’s Next
We are working on more improvements for the portal and docs. We invite you to share any issues or feedback in the Next Gen Docs discussion thread.Discord Social SDK Release 1.8.14437
A new release of the Discord Social SDK is now available, with the following updates:Security
- Filter the bearer token in all levels of logging
- Release builds only emit log statements for Error or Warning levels of severity
- Debug builds will still have logs for Info and Verbose levels of severity
- Added a DEBUG BUILD Warning at the top of the debug log that indicates it should not be used in production
Discord Social SDK Release 1.7.14433
A new release of the Discord Social SDK is now available, with the following updates:Security
- Filter the bearer token in all levels of logging
- Release builds only emit log statements for Error or Warning levels of severity
- Debug builds will still have logs for Info and Verbose levels of severity
- Added a DEBUG BUILD Warning at the top of the debug log that indicates it should not be used in production
Discord Social SDK Release 1.6.14448
A new release of the Discord Social SDK is now available, with the following updates:Security
- Filter the bearer token in all levels of logging
- Release builds only emit log statements for Error or Warning levels of severity
- Debug builds will still have logs for Info and Verbose levels of severity
- Added a DEBUG BUILD Warning at the top of the debug log that indicates it should not be used in production
Updates to Context Menu Commands
We’ve redone the UI for User Commands and Message Commands to make it easier to find commands and unlock higher limits!Refreshed UI
The UI has been updated based on feedback! No longer do you have to scroll through a long list of commands:- Commands are now organized by their application, providing hierarchy
- Frequently used commands are now hoisted to the top for easy access
- A new search bar lets you quickly find the exact command you’re looking for
A Higher Limit
We’ve heard your feedback about the 5 command limit feeling too restrictive! With this new UI, we have increased the limit to 15 per type, providing breathing room for your app.Developer Resources
Check out the Application Commands page for details on all command types.Server-Side Message Moderation
We’ve released and documented two new API endpoints that enable you to modify the application-scoped moderation metadata on both game direct messages and lobby messages.Combined with the previously announcedMessageHandle::ModerationMetadata, and game direct message and lobby Webhook Events,
this enables server-side lobby and game direct message moderation workflows. Your game backend can now evaluate messages and attach moderation metadata that the Discord Social SDK can then deliver to game clients in real time, driving in-game message rendering dependent on moderation results.To see this in detail, have a look at the newly updated How To Integrate Moderation guide with the full server-side moderation flow.Publisher Level Account Linking
We’ve published new documentation for Publisher Level Account Linking, a feature that enables game publishers with multiple titles to implement a single authorization flow across their entire game portfolio.Publisher Level Account Linking requires Discord approval.To inquire about access, speak to your Discord account representative or contact us
- Setting up parent-child application hierarchies between publisher and game applications
- Exchanging parent access tokens for child access tokens
- Integrating child tokens with the Discord Social SDK
- Understanding token lifecycles and revocation
Community Invite Guide
We’re launching a guide to showcase the new invite endpoints and functionality. It has examples on how to create invites with roles through the UI and API and how to restrict access to an invite usingtarget_users through the API. This guide highlights use cases for community servers and walks through steps for creating and sending invites that grant roles or restrict access to specific users.Check out the new guide here!Radio Groups, Checkbox Groups, and Checkboxes in Modals
We’re introducing three new modal components: Radio Groups, Checkbox Groups, and Checkboxes. These components expand the ways users can interact with your app through modals, enabling single-choice selections, multi-select options, and simple yes/no toggles.The New Components
- Radio Group: A single-selection component for choosing exactly one option from a list. Supports the
requiredfield to allow optional selections. - Checkbox Group: A multi-selection component with configurable
min_valuesandmax_valuesconstraints for flexible selection requirements. - Checkbox: A simple boolean toggle for yes/no style questions.
Developer Resources
- Using Modal Components - Learn how to create modals
- Component Reference - Complete documentation for all available components
Next Generation Docs Project
We’re excited to announce the launch of our Next Gen Docs project! This initiative aims to improve the way developers interact with Discord’s developer documentation, making it more accessible, comprehensive, and user-friendly.Our Goal
The Discord API has evolved far beyond its origins as a platform for bots. Today, we’re a comprehensive developer platform supporting:- Discord Apps and Bots - The foundation of our ecosystem, extending Discord’s functionality with custom apps, commands, and integrations
- Discord Activities - Real-time games and social experiences that users can launch directly inside Discord
- Social SDK for Games - Bringing Discord-powered features like voice, chat, rich presence, and social graph to games
Our Next Gen Docs Journey
What we’ve done so far:- Migrated to Mintlify for a modern documentation experience
- For this migration, we preserved our existing content and familiar design but plan to evolve this over time
- We no longer have to maintain and build our own documentation platform and can instead focus on making content and improving our developer experience
- Gained new capabilities:
- PR Previews - See documentation changes before they go live! This works locally as well as in your pull requests
- More Components and Docs Features - We now have access to all of Mintlify’s documentation components that will continue to grow over time
- AI features & improved search - You can now send our docs to your LLM of choice or access them via MCP (more on this soon!)
We combed through the existing documentation to ensure everything was migrated correctly, but if you spot anything that looks off, please let us know by opening an issue or submitting feedback here. We will be actively monitoring feedback to quickly address any issues.
Why This Matters
Great documentation isn’t just about having the right information, it’s about presenting it in a way that helps developers succeed.In the coming months, we’ll be shipping changes to our documentation to ensure that it:- Reduces time-to-first-success for new developers
- Scales with complexity as your projects grow
- Stays current with our rapidly evolving platform
- Serves all skill levels from beginners to experts
Contributing to Our Vision
This transformation is happening with the developer community at its heart. We welcome:- Feedback on what’s working and what isn’t
- Content contributions through our existing PR process
- Bug reports when documentation doesn’t match reality
Community Invites Update
We’ve updated the community invite endpoints with two changes due to a security concern:- Get Target Users returns a standardized CSV file with a header
user_idand each user ID on its own line. If you relied on the header you submitted or weren’t reading it from the file you got back you’ll need to update to expect onlyuser_idas the header in the csv now. - Get Channel Invites returns a partial for roles instead of the full role object. This is a breaking change as it used to return the full role object and now only contains
id,name,position,color,colors,icon, andunicode_emoji.
Relationships.read scope
We’ve opened up therelationships.read scope for Activities under the Social SDK terms. To get access to the scope you will need to accept the Social SDK terms for your app in the Social SDK settings. Requesting approval for this scope from Discord is no longer necessary. With this scope getRelationships() in the embedded app SDK will now return a player’s relationships.The Embedded App SDK is available via npm and GitHub. You can check out our installation guide and reference to get started with it!New Invite Endpoints
We’ve added new endpoints and functionality allowing invites to grant roles and to only be accepted by specified users. These are perfect for communities that want to manage access more granularly or reward members with special roles when they join a server.Create Channel Invite has been updated to supporttarget_users_file and role_ids parameters.target_users_file: A CSV file with user IDs to specify who can accept the inviterole_ids: Role IDs for roles to assign to users when they accept the invite
- Get Target Users: Gets the users allowed to see and accept an invite
- Update Target Users: Updates the users allowed to see and accept an invite
- Get Target Users Job Status: Checks the status of the job that processes the target users for an invite from file upload
Discord Social SDK Release 1.8.13395
A new release of the Discord Social SDK is now available, with the following updates:Moderation Metadata Support
- [Coming Soon] Messages will soon support
MessageHandle::ModerationMetadata, a set of custom string key-value pairs that can be used to communicate moderation-related information between your game backend and client.- This SDK version includes the functionality to support this upcoming feature, but it will only become available after an upcoming Discord API change.
WebSocket Reporting
- WebSocket connection failures will now report an HTTP status code to the SDK log.
PlayStation 5
- Improved accuracy of timing metrics used for monitoring the health of connections and voice calls.
Discord Social SDK Release 1.7.13357
A new release of the Discord Social SDK is now available, with the following updates:- Fixed a crash on Steam Deck when calling RegisterLaunchCommand
- Fixed a crash on iOS when Deeplink Authentication fails.
New Social SDK Guide: Account Linking from Discord
We’ve added a new guide showing how to enable account linking entry points within the Discord client. With Social SDK 1.6+, Discord can now display “Link your account” prompts and buttons throughout the client to encourage players to connect their game accounts, leading to higher linking rates and better social engagement.The guide covers two implementation flows:- Connected Game Flow (recommended): Uses new callback methods to launch account linking directly in your game when players click Discord’s entry points
- Web Flow: Routes players through a web-based OAuth flow (currently only available for select partners)
Discord Social SDK Release 1.6.13305
A new release of the Discord Social SDK is now available, with the following updates:- Fixed a crash on Steam Deck when calling RegisterLaunchCommand
- Fixed a crash on iOS when Deeplink Authentication fails.
Get Guild Role Member Counts Endpoint
Apps can now use the Get Guild Role Member Counts endpoint to access the number of members that have each role!Permission Changes Going into Effect February 2026 for PIN_MESSAGES, BYPASS_SLOWMODE, CREATE_GUILD_EXPRESSIONS, and CREATE_EVENTS
We have some important permission changes that will take effect in February 2026.The introduction of the following permissions were non-breaking changes.However, the breaking changes described below - where the old permissions will no longer grant these abilities - will take effect on February 23, 2026. These changes involve a few permissions that we split from their original permission to provide more granular control over bot and user actions.What’s Changing?
1. Pin Messages Permission- The
PIN_MESSAGESpermission (1 << 51) was split fromMANAGE_MESSAGESon August 20, 2025. - Read the change log.
- Starting February 23, 2026, users and bots will need the
PIN_MESSAGESpermission to pin messages.MANAGE_MESSAGESalone will no longer be sufficient.
- The
BYPASS_SLOWMODEpermission (1 << 52) is being split fromMANAGE_MESSAGES,MANAGE_CHANNEL, andMANAGE_THREADS. - Read the change log.
- Note: This primarily affects users, as bots are not affected by slowmode restrictions.
- Starting on February 23, 2026, users will need the
BYPASS_SLOWMODEpermission to not be affected by slowmode restrictions.
- The
CREATE_GUILD_EXPRESSIONSpermission (1 << 43) was created in July 2023 and split fromMANAGE_GUILD_EXPRESSIONSfor users in December 2023. Read the change log. - As of today, bots now have access to the
CREATE_GUILD_EXPRESSIONSpermission. - Read the change log.
- Starting on February 23, 2026, bots will need the
CREATE_GUILD_EXPRESSIONSpermission to create custom emoji and stickers.MANAGE_GUILD_EXPRESSIONSalone will no longer be sufficient.
- The
CREATE_EVENTSpermission (1 << 44) was created in July 2023 and split fromMANAGE_EVENTSfor users in December 2023. Read the change log. - As of today, bots now have access to the
CREATE_EVENTSpermission. - Read the change log.
- Starting on February 23, 2026, bots will need the
CREATE_EVENTSpermission to create scheduled events.MANAGE_EVENTSalone will no longer be sufficient.
What Do You Need to Do?
If your bot performs any of the following actions, please review and update your bot’s permission requests before February 23, 2026:- Pins messages: Request the
Pin Messagespermission - Creates custom emoji or stickers: Request the
Create Expressionspermission - Creates scheduled events: Request the
Create Eventspermission
November 24, 2025
New BYPASS_SLOWMODE Permission & Permission Split
We have introduced a new permission:BYPASS_SLOWMODE. This permission allows designated roles or users to bypass slowmode restrictions in channels.- The
BYPASS_SLOWMODEpermission (1 << 52) is being split fromMANAGE_MESSAGES,MANAGE_CHANNEL, andMANAGE_THREADS. - Note: This primarily affects users, as bots are not affected by slowmode restrictions.
- Starting on February 23, 2026, users will need the
BYPASS_SLOWMODEpermission to not be affected by slowmode restrictions.
Guild Expressions and Events Permissions now available to developers
In 2023, we had introduced permission splits for guild expressions (custom emoji and stickers) and scheduled events. These changes were made to give server administrators more granular control over who can create content in their communities. Read the change log.Today, we are announcing that these permissions are now available for bot developers to use and will be required for certain actions starting February 23, 2026.Create Guild Expressions Permission- The
CREATE_GUILD_EXPRESSIONSpermission (1 << 43) was created in July 2023 and split fromMANAGE_GUILD_EXPRESSIONSfor users in December 2023. - As of today, bots now have access to the
CREATE_GUILD_EXPRESSIONSpermission. - Starting on February 23, 2026, bots will need the
CREATE_GUILD_EXPRESSIONSpermission to create custom emoji and stickers.MANAGE_GUILD_EXPRESSIONSalone will no longer be sufficient.
- The
CREATE_EVENTSpermission (1 << 44) was created in July 2023 and split fromMANAGE_EVENTSfor users in December 2023. - As of today, bots now have access to the
CREATE_EVENTSpermission. - Starting on February 23, 2026, bots will need the
CREATE_EVENTSpermission to create scheduled events.MANAGE_EVENTSalone will no longer be sufficient.
Discord Social SDK Release 1.7.13024
A new release of the Discord Social SDK is now available, with the following updates:Windows
- Fixed default audio device selection to once again prefer the default system audio device instead of the default communications device.
Xbox
- Added support for GDK 240605 to the build.
Discord Social SDK Release 1.7
A new release of the Discord Social SDK is now available, with the following updates:Authentication
- Sign in with Apple and PlayStation Network are now supported as external identity providers.
Linked Channels
- The results of
Client::GetGuildChannelsare now sorted in the order in which they appear in the Discord client. Additional properties added toGuildChannelfor type, position and parent category ID.
PlayStation 5
- Added Low Energy Mode support. Explicit control of SDK thread affinity is provided by
cpuAffinityMaskproperty ofClientCreateOptions. - Fixed a crash when destroying and recreating
Client.
Windows
- Fixed an issue which caused local crash dumps to be disabled in processes which load the Social SDK.
Voice
- The Social SDK now uses our latest audio subsystem on Windows, bringing it more in line with the desktop client. Improves device compatibility and fixes some long-standing issues like Bluetooth devices changing profiles on startup.
- Desktop clients now use WebRTC m130 internally (upgraded from m116).
- Bug fixes and improvements to DAVE E2EE protocol implementation.
Discord Social SDK Release 1.6.12767
A new release of the Discord Social SDK is now available, with the following update:Implemented a fix for a crash on Playstation when creating the Discord client, destroying it, and creating another.Discord Social SDK Release 1.5.12211
A new release of the Discord Social SDK is now available, with the following update:Bug Fix
- Fixed a crash when calling
Client::GetUserGuildson iOS devices. First occurrence of this crash introduced in 1.5.10839
Discord Social SDK Release 1.6.12170
A new release of the Discord Social SDK is now available, with the following updates:New Features
This small update to v1.6 adds some highly requested features from our partners. We found some time to sneak them in…- You can now provide custom art to display as a banner image in game invites that appear in Discord. This is done one
of two ways:
- By specifying a URL or an
asset keyto an image in theactivity.assets.inviteCoverImageparameter when callingClient::UpdateRichPresence. This method even affords you the ability to set a unique image on each invite if you want! - By uploading cover image art in the
Rich Presencetab in the Developer Portal for your Application. Note: This will be used as the fallback image if you don’t specify one viaactivity.assets.inviteCoverImage
- By specifying a URL or an
- It’s now possible to customize the displayed name for your Application in Discord’s Rich Presence. To do so, set
the
activity.nameparameter when callingClient::UpdateRichPresence - Added support for Microsoft Xbox GDK version 2025.04
- Fixed a crash when calling
Client::GetUserGuildson iOS devices
Introducing the File Upload component in Modals
Have you ever wanted to collect more than text from a user through a modal? With the new File Upload component you can! You can specify a min and max number of files accepted between 0 and 10, and if uploading files within that limit is required before submitting. Any file types are accepted, and the max file size is based on the user’s upload limit in that channel.The New Component:
Developer Resources
- Using Modal Components - Dive into creating a modal
- Check out our Component Reference for details on all available components.
Discord Social SDK Release 1.6
A new release of the Discord Social SDK is now available, with the following updates:✨ New Features
- When calling
Client::GetGuildChannels, channels are now sorted by theirpositionfield, which matches how they are sorted in the Discord client. - Messages received via the Social SDK, no longer create notifications in a Discord client for the same user, to avoid double notification on the same machine.
- Game Profile Integration: New functionality to display game data on Discord user profiles. This includes
UserApplicationProfilesupport with two new methods:Client::GetUserApplicationProfilesandClient::GetUserApplicationProfilesNoLockon the Users class, which retrieve game identity data from external authentication providers. - In-Discord Authentication Flow: Support for users to start account linking directly from Discord (rather than having to initiate it from within your game). Added
Client::RegisterAuthorizeRequestCallbackandClient::RemoveAuthorizeRequestCallbackmethods to handle authentication requests that originate from various Discord entry points. These functions support upcoming Discord client experiments that will be gradually rolled out to users over time.
⚠️ Deprecations
This deprecation aims to improve consistence across the SDK’s API surface as well as provide a safer implementation that has fewer edge cases and less potential for accidental misuse.- Deprecated
Client::GetCurrentUserAPI in favor ofClient::GetCurrentUserV2which returns optional values instead of potentially invalid handles.
🚀 Performance Improvements
- This update implements caching capabilities for the
Client::GetUserMessagesWithLimitfunction to avoid unnecessary remote API calls when sufficient messages are already cached locally.
🎤 Voice Communications Fixes and Improvements
Fixes several critical bugs with the voice communications system, as well as improved overall reliability, and noise and echo suppression and cancellation.- Fixed an issue where voice calls would sometimes transition to
Disconnectedstate instead of reconnecting properly after a network interruption. - Extended AGC2 (Automatic Gain Control 2) support to mobile platforms
🐛 General Stability and Bug Fixes
Multiple general critical bugs that can cause crashes and panics. We highly recommend upgrading to 1.6 to avoid them in your game.- Fixed critical bug where activity party privacy wasn’t properly set, causing “ask to join” to appear instead of “join” for public parties.
- Fixed critical memory safety issue preventing connection objects from being deallocated during timer callbacks.
- Fixed C# marshaling alignment bugs and double-free crashes.
- Improved gateway resilience with fallback to generic URLs on zonal gateway failures.
- Fixed WebSocket write-after-close errors preventing connection issues.
Adding More Modal Components!
We’ve added more components to modals! All select menus (User, Role, Mentionable, Channel) are now fully supported in modals. In order to use a select menu in a modal, it must be placed inside a Label component. We’ve also added the Text Display component with markdown support as a top-level component in modals.Components Now Supported in Modals:
Getting Started
- Using Modal Components - Dive into creating a modal
Developer Resources
Check out our Component Reference for details on all available components.Banner, avatar, and bio can be set on modify current member
As of September 10, 2025, bots can setbanner, avatar, and bio fields using the modify current member route.Deprecating Non-E2EE Voice Calls
We started work on end-to-end encryption for Discord over two years ago to enhance our user privacy and security. With DAVE now supported across all platforms, we’re very close to making every call fully end-to-end encrypted.Developer Impact
To support our long-term privacy goals, we will only support E2EE calls starting on March 1st, 2026 for all audio and video conversations in direct messages (DMs), group messages (GDMs), voice channels, and Go Live streams on Discord. After that date, any client or application not updated for DAVE support will no longer be able to participate in Discord calls.Implementing E2EE Voice
For developers working with Discord’s voice APIs, you can consult the updated voice documentation and the implementation examples available in our open-source repository as well as the protocol whitepaper.The Discord Developers community is also a great place to find assistance and answers to any integration questions you may have.We’re committed to making this transition as smooth as possible while delivering the enhanced privacy and security that DAVE provides to all Discord users.Discord Social SDK Release 1.5.11353
A new release of the Discord Social SDK is now available, with the following updates:Unity Plugin
- Fixed a crash primarily affecting low-end Android devices (those with armv7 architecture) in
Client::CreateOrJoinLobbyWithMetadata - Fixed a crash when passing large amounts of metadata in
Client::CreateOrJoinLobbyWithMetadata
Introducing New Modal Components!
You asked for them, and now they’re here! Modals are getting new components!!What’s New
We’re introducing a new top-level Label component for modals that have alabel, description, and can contain a Text Input or a String Select! You heard right, String Selects now work in modals!- String Selects now work in modals when placed inside a Label component
- Text Inputs can also be used inside a Label component
- When a Text Input is used in a Label component the
labelfield on the Text Input is not allowed in favor oflabelon the Label component - ActionRow + TextInput is now deprecated in favor of the new Label component for better accessibility
- The
requiredfield is now available on String Selects (defaults to true in modals, ignored in messages) - The
disabledfield on String Selects is not currently allowed in modals, and will trigger an error if used
New Layout Component
- Label - A new top-level component that lets you add a title and description to your modal components!
Updates to Modal Components
- Text Input - Text Input can now be used in a Label
- String Select - String Selects can be used in modals! Place them in a Label
Getting Started
- Using Modal Components - Dive into creating a modal
Developer Resources
Check out our Component Reference for details on all available components.Pin Permission Split
Pinning and unpinning messages now has its own permission. We splitPIN_MESSAGES out of MANAGE_MESSAGES to give more granular control over who can pin messages in a channel. This is effective immediately for both users and apps. This change will be backwards compatible until January 12th 2026 when MANAGE_MESSAGES will no longer grant the ability to pin or unpin messages.Discord Social SDK Release 1.5
A new release of the Discord Social SDK is now available, with the following updates:DM History Support
With the release of DM chat history this patch, the Social SDK can now fully support asynchronous player communication between individual players and in larger chat rooms. Players who go offline or background the game can come back to the history of the chat room and get caught up with what’s happening.- Added
Client::GetUserMessageSummariesandClient::GetUserMessagesWithLimitto retrieve direct message history
Rich Presence
Rich Presence can now more accurately display the different types of activities a player might be engaged in. Specifically, the “Competing” status may be valuable for games that host tournaments, weekend brackets, or other competitive play. Also, when you receive game invites, you can now accept them cross-device; don’t miss the group forming even if you’re AFK.- Added support for additional activity types (Listening, Watching, Competing)
- Added support for new clickable URL fields and additional user status customization
- Support for server-to-server rich presence invites and gateway-based invite handling. This means an invite can be accepted on a different device and the
Client::SetActivityInviteCreatedCallbackwill be invoked on connected SDK sessions.
Linked Channels
Linked channels are all about keeping groups of friends connected in and outside the game. You can now join a player to channel’s linked Discord server from in-game, helping them bridge that gap and stay connected with friends even when they stop playing.- Added
Client::JoinLinkedLobbyGuildto allow members of linked lobbies to join the linked lobby’s guild from in-game
Android
The many-step process of mobile account linking has been simplified for users with Discord installed by deep-linking into the Discord mobile app to authorize with your game- Implemented native authentication support
- Fixed native authentication callback when activities are terminated
-
Added an experimental audio setting on Android to avoid setting the OS to voice comms mode when connected to a Bluetooth headset on Android. This may be used if you wish to avoid the transition to voice volume controls and other related changes when connected to Bluetooth. To enable this setting, pass a
ClientCreateOptionswhen instantiating the client and set theexperimentalAndroidPreventCommsForBluetoothflag