# Discord API changelog

We check Discord's changelog and OpenAPI spec every day, because we run production integrations on the Discord API. This page lists the 114 changes we have recorded since monitoring started on 26 March 2026, newest first. Our last successful check was on 6 October 2026. We are on it; until then this page may miss the newest changes.

**In short:** 6 breaking changes and 1 deprecation in the Discord API in the last 90 days. The latest: “Custom Status Hidden by Profile Privacy Settings” (17 September 2026).

- [Official Discord changelog](https://discord.com/developers/docs/change-log)
- [Discord OpenAPI spec](https://raw.githubusercontent.com/discord/discord-api-spec/main/specs/openapi.json)
- [RSS feed: Discord API changes](https://seamless.engineering/api-changelog/discord/rss.xml)

## Discord API changes

Labels are assigned automatically. Check the vendor's note before planning work around an entry.

### September 2026

- **Age Assurance** (Other, 22 Sept 2026): What It Means for Discord Developers: Age assurance protections now limit visibility of custom statuses from user presence for private profiles and may filter DMs to Message Requests, affecting bots and apps receiving presence data.
- **New Invite Target User Endpoints and Options** (New feature, 18 Sept 2026): Added four new endpoints for managing invite target users individually (add, remove, bulk-add, bulk-delete) instead of requiring CSV file uploads.
- **Custom Status Hidden by Profile Privacy Settings** (Breaking, 17 Sept 2026): Custom status activities are now omitted from presence updates when users have restrictive privacy settings, affecting bots subscribed to guild presence.
- **Unlinking Accounts Guide** (New feature, 17 Sept 2026): New documentation guide published for best practices on unlinking Discord accounts, including handling APPLICATION_DEAUTHORIZED webhook events.
- **Shard Param Required for Get Current User Guilds with Large Bot Sharding** (Breaking, 15 Sept 2026): Apps using large bot sharding must now pass the `shard` query parameter to Get Current User Guilds endpoint; requests without it return 400 Bad Request.
- **Slash Command Improvements and Mobile Fixes** (New feature, 11 Sept 2026): Added multiline input support for string options, fuzzy search in autocomplete, and fixed multiple mobile bugs with slash commands.
- **Default File Upload Limit Increase** (New feature, 3 Sept 2026): Default file upload limit increased from 10 MiB to 20 MiB for all users, bots, webhooks, and interaction responses.
- **Discord Social SDK Release 1.10.19337 - Voice Settings** (New feature, 1 Sept 2026): Added read-only access to Discord desktop client's voice settings including mute/deafen state, volumes, and push-to-talk key via new VoiceSettings class.

### August 2026

- **PRUNE_REQUIRES_ADMIN Guild Feature** (Breaking, 27 Aug 2026): Get Guild Prune Count and Begin Guild Prune endpoints now require ADMINISTRATOR permission if guild has the PRUNE_REQUIRES_ADMIN feature enabled.
- **Account Linking on Web** (New feature, 26 Aug 2026): New guide published for account linking using standard OAuth2 web flow; removed partner-only restriction for enabling Discord entry points.
- **Game Stats Widgets** (New feature, 26 Aug 2026): New feature allowing games to configure widgets displaying player stats (rank, playtime, wins, custom metrics) on Discord profiles via Application Identity Profile.
- **Deprecation** (Deprecation, 14 Aug 2026): Battle.net Connections in Get Current User Connections: Newly created Battle.net connections no longer returned by Get Current User Connections endpoint; existing ones removed starting September 22, 2026.
- **Discord Social SDK Release 1.10.18687 - iOS OAuth Fix** (Bug fix, 13 Aug 2026): Fixed iOS web-authentication session override issue that could interfere with host app's ASWebAuthenticationSession delegate during OAuth flow.
- **Channel Obfuscation for Users and Bots** (Breaking, 12 Aug 2026): Bots can no longer see channels they lack VIEW_CHANNEL permission for; obfuscated channels show hidden name and nulled sensitive fields over Gateway; HTTP endpoint omits them entirely starting November 16, 2026.
- **Discord Social SDK Hotfix Releases 1.10.18369, 1.9.18337 & 1.8.18335** (Bug fix, 11 Aug 2026): Fixed incorrect bool marshaling across C#/native boundary and crash from iterator invalidation in lobby callbacks on PlayStation 5.
- **Channel application_id is Now Nullable** (Breaking, 5 Aug 2026): The channel object's application_id field is now nullable for future guild channels; apps must handle null values.
- **Filter File Types in File Uploads and Attachment Options** (New feature, 5 Aug 2026): Added ability to restrict file types in File Upload components and ATTACHMENT command options for improved security.

### July 2026

- **Discord Social SDK Release 1.10.18247** (Breaking, 28 Jul 2026): Updated console OS support requirements, added Xbox presence reading, Android rich presence via RPC, macOS framework changes, and WebRTC M130 update.
- **Provisional Accounts Documentation Restructure** (Other, 22 Jul 2026): Provisional accounts documentation reorganized into dedicated section with separate pages for each flow and implementation path.
- **Resolved Channel app_permissions in Interactions** (New feature, 16 Jul 2026): Resolved channel objects in interaction payloads now include app_permissions field showing bot's permissions in that channel.
- **Deprecation** (Deprecation, 7 Jul 2026): Riot Games Connections in Get Current User Connections: Newly created Riot Games connections no longer returned by Get Current User Connections endpoint; legacy connections stop being returned July 10, 2026.

### June 2026

- **Discord Social SDK Release 1.9.17379** (Bug fix, 30 Jun 2026): Fixed crash caused by re-entrant HTTP requests during connection teardown on PlayStation 5.
- **Discord Social SDK Release 1.9.17228 - Krisp Integration** (Bug fix, 25 Jun 2026): Fixed AUTHORIZE_REQUEST event resubscription issue and integrated Krisp noise suppression binaries in Unity and Unreal packages.
- **Attachment Editing and is_spoiler Param** (New feature, 24 Jun 2026): Apps can now edit attachment description and is_spoiler parameters when editing messages; attachments can be marked as spoilers via flag.
- **Documentation Fix** (Other, 16 Jun 2026): Subscription Status Values: Corrected documentation where INACTIVE (1) and ENDING (2) subscription status integer values were previously swapped; API was always correct.
- **Changes to Privileged Intent Access for Discord Apps** (Breaking, 10 Jun 2026): Privileged intent threshold changed from server-based (100+) to user-based (10,000+); apps must now reapply annually for access.
- **Discord Social SDK Release 1.9.16441** (Bug fix, 3 Jun 2026): Fixed crash caused by use-after-free in WebSocket callbacks on PlayStation 5.
- **New Lobby HTTP API Endpoints** (New feature, 3 Jun 2026): Added public endpoints for Create/Join Lobby, Send/Get Lobby Messages, and Create Lobby Channel Invites.

### May 2026

- **Discord Social SDK Release Cadence & Support** (Other, 26 May 2026): New three-per-year release schedule (April, July, November) with support window covering five most recent minor versions.
- **Account Linking Failure Modes Documentation** (Other, 22 May 2026): Expanded documentation covering Discord account bans, explicit unmerges, and OAuth2 token revocation scenarios for account linking.
- **Discord Social SDK Release 1.9.15780** (New feature, 12 May 2026): Added Xbox GDK 260400 support and integrated Krisp noise suppression across Android, iOS, macOS, and Windows.
- **New flags_new Field on Application Object** (New feature, 7 May 2026): Added flags_new field to Application object containing full set of application flag bits as string-serialized integer for flags beyond bit 30.
- **User Premium Type Field Now Requires A Scope** (Breaking, 5 May 2026): premium_type field returns 0 unless application has been approved for identify.premium scope; scope is only available to approved partners.

### April 2026

- **Voice Muting Based on Player Blocks** (New feature, 24 Apr 2026): New guide for implementing bi-directional voice muting in lobby calls; documents POST /lobbies/{lobby.id}/members/bulk endpoint for bulk member operations.
- **Voice Muting Based on Player Blocks** (New feature, 24 Apr 2026): New guide published on implementing bi-directional voice muting in lobby calls based on block relationships; documented bulk member update endpoint.
- **Activity Invites Attribution Fix** (Bug fix, 23 Apr 2026): Fixed bug where activity invites from sibling applications were sometimes attributed to wrong app; now uses application_id from invite when provided.
- **Discord Social SDK Release 1.9.15332** (Bug fix, 23 Apr 2026): Added PlayStation 5 OS 13.000 support and fixed activity invite attribution for sibling applications using Publisher Level Account Linking.
- **Proximity Voice Chat Guide for Game Developers** (New feature, 23 Apr 2026): Published new guide on adding proximity voice chat to multiplayer games using Discord Social SDK and Unity.
- **Security Updates for Provisional Account OIDC Integrations** (Other, 22 Apr 2026): Enhanced OIDC validation with stricter hostname checks and HTTP redirect blocking; existing integrations unaffected but new configurations must meet updated requirements.
- **Voice Channel Status and Start Time Documentation** (New feature, 20 Apr 2026): Officially documented voice channel status endpoint, permission (SET_VOICE_CHANNEL_STATUS), Gateway events, and audit log events for voice channel status management.
- **Deprecation** (Deprecation, 16 Apr 2026): OAuth2 Refresh Token Grant for OIDC Provisional Accounts: OAuth2 refresh_token grant for OIDC provisional accounts is deprecated; use Client::UpdateToken with fresh provider tokens instead.
- **Message Forwarding Requires Message Content Access** (Breaking, 14 Apr 2026): Applications must now have message content read access to forward messages; attempting to forward unreadable messages returns error 160014.
- **Discord Social SDK Release 1.8.14985** (New feature, 6 Apr 2026): Added Xbox GDK 251002 support.
- **RPC over IPC Documentation** (New feature, 3 Apr 2026): New documentation for Discord's RPC over IPC transport for native applications, covering socket paths, handshake flow, and IPC-specific events.

### March 2026

- **Discord Social SDK Release 1.8.14856** (Bug fix, 27 Mar 2026): Added debug plugin support for iOS Unity and Unreal packages and fixed party privacy propagation bug.
- **Search Guild Messages** (New feature, 19 Mar 2026): New endpoint for bots to search messages within a guild by content, author, channel, mentions, attachments, and embeds.
- **Discord Social SDK Release 1.8.14587** (New feature, 15 Mar 2026): Added Debug library support across multiple platforms including Unity, Unreal, Windows, Mac, Linux, Android, and consoles.
- **Developer Portal & Docs Refresh** (Other, 9 Mar 2026): Updated Developer Portal and Docs with improved navigation, new theme, localization support, reorganized structure, and AI/MCP support.
- **Discord Social SDK Release 1.8.14437** (Other, 5 Mar 2026): Enhanced security logging with bearer token filtering and severity level restrictions for debug vs release builds.
- **Updates to Context Menu Commands** (New feature, 3 Mar 2026): UI for User and Message Commands redesigned for easier discovery and higher command limits.

### February 2026

- **Server-Side Message Moderation** (New feature, 20 Feb 2026): Released two new API endpoints for modifying application-scoped moderation metadata on game direct messages and lobby messages.
- **Discord Social SDK Release 1.8.14026** (Bug fix, 19 Feb 2026): Fixed crash when linking Discord account to application while in a voice call.
- **Publisher Level Account Linking** (New feature, 18 Feb 2026): New feature enabling game publishers with multiple titles to implement single authorization flow across entire game portfolio with centralized account management.
- **Community Invite Guide** (New feature, 12 Feb 2026): New guide showcasing invite endpoints with examples for creating invites with roles and restricting access using target_users.
- **Discord Social SDK Release 1.8.13870** (New feature, 12 Feb 2026): New SDK release with PlayStation 5 OS 12.000 support and iOS code stripping for size reduction.
- **Radio Groups, Checkbox Groups, and Checkboxes in Modals** (New feature, 12 Feb 2026): Three new modal components added: Radio Groups for single-selection, Checkbox Groups for multi-selection, and Checkboxes for boolean toggles.
- **Next Generation Docs Project** (Other, 10 Feb 2026): Migrated Discord developer documentation to Mintlify platform with improved navigation, search, PR previews, AI/LLM support, and MCP server integration.
- **Community Invites Update** (Breaking, 5 Feb 2026): Breaking changes to community invite endpoints: Get Target Users now returns standardized CSV format, Get Channel Invites returns partial role objects instead of full objects.

### January 2026

- **Relationships.read scope for Activities** (New feature, 21 Jan 2026): relationships.read scope opened for Activities under Social SDK terms; no approval needed; getRelationships() now returns player relationships.
- **New Invite Endpoints** (New feature, 13 Jan 2026): New endpoints for community invites supporting role assignment and user-targeted access restrictions via Create Channel Invite, Get Target Users, Update Target Users, and Get Target Users Job Status endpoints.
- **New Invite Endpoints** (New feature, 13 Jan 2026): Added new invite endpoints and functionality allowing invites to grant roles and restrict acceptance to specified users via target_users_file and role_ids parameters.
- **New Invite Endpoints for Role Assignment and User Targeting** (New feature, 13 Jan 2026): Added Create Channel Invite support for `target_users_file` and `role_ids` parameters, plus new endpoints: Get Target Users, Update Target Users, and Get Target Users Job Status.

### December 2025

- **Discord Social SDK Release 1.8.13395** (New feature, 17 Dec 2025): Added MessageHandle::ModerationMetadata support for moderation key-value pairs and WebSocket error reporting with HTTP status codes.
- **Discord Social SDK Release 1.7.13357** (Bug fix, 16 Dec 2025): Fixed crash on Steam Deck and iOS in specific scenarios.
- **New Social SDK Guide** (New feature, 16 Dec 2025): Account Linking from Discord: New guide showing how to enable account linking entry points within Discord client with Connected Game Flow and Web Flow implementation options.
- **Discord Social SDK Release 1.6.13305** (Bug fix, 10 Dec 2025): Fixed crash on Steam Deck and iOS in specific scenarios.
- **Get Guild Role Member Counts Endpoint** (New feature, 9 Dec 2025): New endpoint allowing apps to retrieve the number of members that have each role in a guild.
- **Discord Social SDK Release 1.7.13152** (New feature, 4 Dec 2025): Added macOS 10.15 support for Intel Macs with minimum versions now 10.15 Intel and 11.0 Apple Silicon.

### November 2025

- **New BYPASS_SLOWMODE Permission & Permission Split** (Breaking, 24 Nov 2025): New BYPASS_SLOWMODE permission (1 << 52) split from MANAGE_MESSAGES, MANAGE_CHANNEL, and MANAGE_THREADS; required February 23, 2026.
- **Permission Changes Going into Effect February 2026** (Breaking, 24 Nov 2025): Breaking changes effective February 23, 2026: PIN_MESSAGES, BYPASS_SLOWMODE, CREATE_GUILD_EXPRESSIONS, CREATE_EVENTS permissions split from original permissions; old permissions will no longer grant these abilities.
- **Discord Social SDK Release 1.7.13024** (Bug fix, 20 Nov 2025): Windows default audio device selection fix to prefer system default instead of fallback.
- **Guild Expressions and Events Permissions Now Available to Developers** (Breaking, 20 Nov 2025): CREATE_GUILD_EXPRESSIONS and CREATE_EVENTS permissions now available for bots; will be required starting February 23, 2026 instead of MANAGE_GUILD_EXPRESSIONS and MANAGE_EVENTS.
- **Discord Social SDK Release 1.7** (New feature, 12 Nov 2025): Added Sign in with Apple and PlayStation Network support; linked channels now sorted by Discord client order with additional properties.
- **Discord Social SDK Release 1.7 - Major Features** (New feature, 12 Nov 2025): Added Apple Sign-in and PlayStation Network authentication, sorted guild channels by position, added Low Energy Mode support for PS5, upgraded WebRTC to m130, and improved voice reliability.
- **Discord Social SDK Release 1.6.12767** (Bug fix, 5 Nov 2025): New SDK release with crash fix for PlayStation when creating, destroying, and recreating Discord client.

### October 2025

- **Discord Social SDK Release 1.5.12211** (Bug fix, 16 Oct 2025): New SDK release with crash fix for Client::GetUserGuilds on iOS devices.
- **Discord Social SDK Release 1.6.12170** (New feature, 15 Oct 2025): New SDK release with custom invite banner images via activity.assets.inviteCoverImage, customizable app name via activity.name, Xbox GDK 2025.04 support, and iOS crash fix.
- **File Upload Component in Modals** (New feature, 15 Oct 2025): New File Upload component added to modals enabling collection of files from users in addition to text.

### September 2025

- **Discord Social SDK 1.6 - Game Profile Integration and In-Discord Authentication** (New feature, 26 Sept 2025): SDK 1.6 adds Game Profile Integration for displaying game data on Discord profiles, In-Discord Authentication Flow support, channel position sorting, performance caching improvements, and critical voice and stability bug fixes.
- **Discord Social SDK Release 1.6** (New feature, 26 Sept 2025): Major SDK release with channel sorting improvements, message notification suppression, game profile integration features, in-Discord authentication flow support, and GetCurrentUser API deprecation.
- **Discord Social SDK Release 1.6** (New feature, 26 Sept 2025): Major SDK release with guild channels sorted by position, and additional GuildChannel properties (type, position, parent category ID).
- **Adding More Modal Components** (New feature, 10 Sept 2025): User, Role, Mentionable, and Channel select menus now supported in modals within Label components; Text Display component with markdown support added.
- **Banner, Avatar, and Bio on Modify Current Member** (New feature, 10 Sept 2025): Bots can now set banner, avatar, and bio fields using modify current member endpoint.
- **Deprecating Non-E2EE Voice Calls** (Deprecation, 2 Sept 2025): Only E2EE calls will be supported starting March 1, 2026; all audio/video in DMs, GDMs, voice channels, and Go Live streams must use DAVE encryption or will disconnect.

### August 2025

- **Discord Social SDK Release 1.5.11353 - Android Crash Fixes** (Bug fix, 28 Aug 2025): Fixed crash on low-end Android devices in CreateOrJoinLobbyWithMetadata and when passing large metadata amounts.
- **Introducing New Modal Components** (New feature, 25 Aug 2025): Added Label component for modals, String Selects now work in modals inside Label components, Text Inputs can be in Label components, and deprecated ActionRow + TextInput.
- **New Modal Components - Label, String Select, Text Input** (New feature, 25 Aug 2025): New Label component for modals containing Text Inputs or String Selects; String Selects now work in modals with required field; ActionRow + TextInput deprecated.
- **Pin Permission Split** (Breaking, 20 Aug 2025): PIN_MESSAGES permission now split from MANAGE_MESSAGES; effective immediately but backwards compatible until January 12, 2026 when MANAGE_MESSAGES will no longer grant pin/unpin ability.
- **Discord Social SDK Release 1.5 - DM History and Rich Presence** (New feature, 15 Aug 2025): Added DM history support with GetUserMessageSummaries and GetUserMessagesWithLimit, new activity types (Listening, Watching, Competing), cross-device invite acceptance, and linked channels guild joining.

### February 2025

- **New Modal Components - Radio Groups, Checkbox Groups, Checkboxes** (New feature, 12 Feb 2025): Three new modal components added: Radio Group for single selection, Checkbox Group for multi-selection, and Checkbox for boolean toggles.

### November 2024

- **New BYPASS_SLOWMODE Permission** (Breaking, 24 Nov 2024): New BYPASS_SLOWMODE permission introduced to allow designated roles/users to bypass slowmode restrictions; effective February 23, 2026.
- **Permission Changes Going into Effect February 2026** (Breaking, 24 Nov 2024): PIN_MESSAGES, BYPASS_SLOWMODE, CREATE_GUILD_EXPRESSIONS, and CREATE_EVENTS permissions will no longer be granted by their parent permissions starting February 23, 2026.
- **Guild Expressions and Events Permissions Now Available to Developers** (Breaking, 20 Nov 2024): CREATE_GUILD_EXPRESSIONS and CREATE_EVENTS permissions now available to bot developers; will be required starting February 23, 2026.
- **Discord Social SDK Release 1.7 - Authentication and Linked Channels** (New feature, 12 Nov 2024): Social SDK 1.7 adds Sign in with Apple and PlayStation Network support, improved channel sorting, and Low Energy Mode support for PS5.

### October 2024

- **File Upload Component in Modals** (New feature, 15 Oct 2024): New File Upload component added to modals supporting 0-10 files with configurable min/max requirements and any file type.

### September 2024

- **Discord Social SDK Release 1.6 - Game Profile and Authentication** (New feature, 26 Sept 2024): SDK 1.6 adds game profile integration on Discord user profiles, in-Discord authentication flow support, and multiple bug fixes and performance improvements.
- **Banner, Avatar, and Bio on Modify Current Member** (New feature, 10 Sept 2024): Bots can now set banner, avatar, and bio fields using the modify current member route.
- **New Modal Components - Select Menus and Text Display** (New feature, 10 Sept 2024): User, Role, Mentionable, and Channel Select menus now supported in modals; Text Display component added with markdown support.
- **Deprecating Non-E2EE Voice Calls** (Breaking, 2 Sept 2024): Only E2EE (DAVE) voice calls will be supported starting March 1, 2026; all clients and applications must update to support end-to-end encryption.

### August 2024

- **New Modal Components - Label and String Select** (New feature, 25 Aug 2024): New Label component added for modals with title and description; String Selects now work in modals when placed in Label component.
- **Pin Permission Split** (Breaking, 20 Aug 2024): PIN_MESSAGES permission split from MANAGE_MESSAGES; effective immediately but MANAGE_MESSAGES will stop granting this ability on January 12, 2026.
- **Discord Social SDK Release 1.5 - DM History and Rich Presence** (New feature, 15 Aug 2024): SDK 1.5 adds DM chat history support, cross-device game invite acceptance, and new Rich Presence activity types.

### April 2024

- **Message Forwarding Requires Message Content Access** (Breaking, 14 Apr 2024): Applications must now have message content read access to forward messages; attempting to forward without access returns error code 160014.
- **RPC over IPC Documentation** (New feature, 3 Apr 2024): Documentation for Discord's RPC over IPC transport layer now available for native applications to communicate with local Discord client.

### March 2024

- **Search Guild Messages Endpoint Documentation** (New feature, 19 Mar 2024): New Search Guild Messages endpoint added for bots to search messages within guilds with filtering and sorting capabilities.
- **Developer Portal & Docs Refresh** (Other, 9 Mar 2024): Developer Portal and Documentation migrated to Mintlify with improved navigation, new localization support, and AI/MCP integration capabilities.
- **Updates to Context Menu Commands UI** (New feature, 3 Mar 2024): Context menu commands UI redesigned with organization by application, frequently used hoisting, and search bar; limit increased from 5 to 15 per type.

### February 2024

- **Server-Side Message Moderation** (New feature, 20 Feb 2024): New API endpoints released for modifying application-scoped moderation metadata on game direct messages and lobby messages with webhook event support.
- **Publisher Level Account Linking** (New feature, 18 Feb 2024): New documentation for Publisher Level Account Linking feature enabling game publishers to implement single authorization flow across multiple titles.
- **Community Invite Guide** (New feature, 12 Feb 2024): New guide published showcasing invite endpoints functionality for creating invites with roles and restricting access to specific users.
- **Radio Groups, Checkbox Groups, and Checkboxes in Modals** (New feature, 12 Feb 2024): Three new modal components added: Radio Group for single selection, Checkbox Group for multi-selection, and Checkbox for boolean toggles.
- **Community Invites Update - Breaking Change** (Breaking, 5 Feb 2024): Get Target Users endpoint now returns standardized CSV with only 'user_id' header; Get Channel Invites now returns partial role objects instead of full role objects.

### January 2024

- **Relationships.read Scope for Activities** (New feature, 21 Jan 2024): Relationships.read scope opened for Activities; no longer requires Discord approval, getRelationships() now available in Embedded App SDK.
- **New Invite Endpoints** (New feature, 13 Jan 2024): New invite endpoints added to grant roles and restrict access to specified users; includes target_users_file and role_ids parameters.

## OpenAPI spec changes

Differences between consecutive versions of Discord's published OpenAPI spec, as reported by oasdiff. Only changes that break or may break existing clients are listed.

### 9 September 2026: 30 potentially breaking

- `POST /channels/{channel_id}/messages` removed the request property '/allOf[#/components/schemas/MessageCreateRequest]/attachments/items/is_remix' (media type: multipart/form-data)
- `POST /channels/{channel_id}/messages` removed the request property 'attachments/items/is_remix' (media type: application/x-www-form-urlencoded)
- `POST /channels/{channel_id}/messages` removed the request property 'attachments/items/is_remix' (media type: application/json)
- `PATCH /channels/{channel_id}/messages/{message_id}` removed the request property '/allOf[#/components/schemas/MessageEditRequestPartial]/attachments/items/is_remix' (media type: multipart/form-data)
- `PATCH /channels/{channel_id}/messages/{message_id}` removed the request property 'attachments/items/is_remix' (media type: application/json)
- `PATCH /channels/{channel_id}/messages/{message_id}` removed the request property 'attachments/items/is_remix' (media type: application/x-www-form-urlencoded)
- `POST /channels/{channel_id}/threads` removed the request property '/anyOf[#/components/schemas/CreateForumThreadRequest]/message/attachments/items/is_remix' (media type: application/json)
- `POST /channels/{channel_id}/threads` removed the request property '/anyOf[#/components/schemas/CreateForumThreadRequest]/message/attachments/items/is_remix' (media type: application/x-www-form-urlencoded)
- `POST /channels/{channel_id}/threads` removed the request property '/anyOf[#/components/schemas/CreateForumThreadRequest]/message/attachments/items/is_remix' (media type: multipart/form-data)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the request property '/anyOf[#/components/schemas/CreateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookInteractionRequest]/attachments/items/is_remix' (media type: application/json)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the request property '/anyOf[#/components/schemas/CreateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookInteractionRequest]/attachments/items/is_remix' (media type: multipart/form-data)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the request property '/anyOf[#/components/schemas/CreateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookInteractionRequest]/attachments/items/is_remix' (media type: application/x-www-form-urlencoded)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the request property '/anyOf[#/components/schemas/UpdateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookUpdateForInteractionCallbackRequestPartial]/attachments/items/is_remix' (media type: application/json)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the request property '/anyOf[#/components/schemas/UpdateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookUpdateForInteractionCallbackRequestPartial]/attachments/items/is_remix' (media type: multipart/form-data)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the request property '/anyOf[#/components/schemas/UpdateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookUpdateForInteractionCallbackRequestPartial]/attachments/items/is_remix' (media type: application/x-www-form-urlencoded)
- `POST /lobbies/{lobby_id}/messages` removed the request property 'attachments/items/is_remix' (media type: application/json)
- `POST /lobbies/{lobby_id}/messages` removed the request property 'attachments/items/is_remix' (media type: multipart/form-data)
- `POST /lobbies/{lobby_id}/messages` removed the request property 'attachments/items/is_remix' (media type: application/x-www-form-urlencoded)
- `POST /webhooks/{webhook_id}/{webhook_token}` removed the request property '/anyOf[#/components/schemas/IncomingWebhookRequestPartial]/attachments/items/is_remix' (media type: application/json)
- `POST /webhooks/{webhook_id}/{webhook_token}` removed the request property '/anyOf[#/components/schemas/IncomingWebhookRequestPartial]/attachments/items/is_remix' (media type: application/x-www-form-urlencoded)
- `POST /webhooks/{webhook_id}/{webhook_token}` removed the request property '/anyOf[#/components/schemas/IncomingWebhookRequestPartial]/attachments/items/is_remix' (media type: multipart/form-data)
- `POST /webhooks/{webhook_id}/{webhook_token}` removed the request property '/anyOf[#/components/schemas/IncomingWebhookUpdateRequestPartial]/attachments/items/is_remix' (media type: multipart/form-data)
- `POST /webhooks/{webhook_id}/{webhook_token}` removed the request property '/anyOf[#/components/schemas/IncomingWebhookUpdateRequestPartial]/attachments/items/is_remix' (media type: application/json)
- `POST /webhooks/{webhook_id}/{webhook_token}` removed the request property '/anyOf[#/components/schemas/IncomingWebhookUpdateRequestPartial]/attachments/items/is_remix' (media type: application/x-www-form-urlencoded)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the request property '/allOf[#/components/schemas/IncomingWebhookUpdateRequestPartial]/attachments/items/is_remix' (media type: multipart/form-data)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the request property 'attachments/items/is_remix' (media type: application/x-www-form-urlencoded)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the request property 'attachments/items/is_remix' (media type: application/json)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the request property '/allOf[#/components/schemas/IncomingWebhookUpdateRequestPartial]/attachments/items/is_remix' (media type: multipart/form-data)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the request property 'attachments/items/is_remix' (media type: application/json)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the request property 'attachments/items/is_remix' (media type: application/x-www-form-urlencoded)

### 8 September 2026: 5 potentially breaking

- `GET /channels/{channel_id}/invites` removed the optional property '/items/oneOf[#/components/schemas/GuildInviteResponse]/liveliness' from the response with the '200' status
- `POST /channels/{channel_id}/invites` removed the optional property '/oneOf[#/components/schemas/GuildInviteResponse]/liveliness' from the response with the '200' status
- `GET /guilds/{guild_id}/invites` removed the optional property '/items/oneOf[#/components/schemas/GuildInviteResponse]/liveliness' from the response with the '200' status
- `DELETE /invites/{code}` removed the optional property '/oneOf[#/components/schemas/GuildInviteResponse]/liveliness' from the response with the '200' status
- `GET /invites/{code}` removed the optional property '/oneOf[#/components/schemas/GuildInviteResponse]/liveliness' from the response with the '200' status

### 24 August 2026: 1 breaking change

- `GET /guilds/{guild_id}/members` added the pattern '^(0|[1-9][0-9]*)$' to the 'query' request parameter 'after'

### 16 July 2026: 30 breaking changes

- `POST /channels/{channel_id}/messages` the '/allOf[#/components/schemas/MessageCreateRequest]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: multipart/form-data)
- `POST /channels/{channel_id}/messages` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/json)
- `POST /channels/{channel_id}/messages` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/x-www-form-urlencoded)
- `PATCH /channels/{channel_id}/messages/{message_id}` the '/allOf[#/components/schemas/MessageEditRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: multipart/form-data)
- `PATCH /channels/{channel_id}/messages/{message_id}` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/json)
- `PATCH /channels/{channel_id}/messages/{message_id}` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/x-www-form-urlencoded)
- `POST /channels/{channel_id}/threads` the '/anyOf[#/components/schemas/CreateForumThreadRequest]/message/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/json)
- `POST /channels/{channel_id}/threads` the '/anyOf[#/components/schemas/CreateForumThreadRequest]/message/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: multipart/form-data)
- `POST /channels/{channel_id}/threads` the '/anyOf[#/components/schemas/CreateForumThreadRequest]/message/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/x-www-form-urlencoded)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` the '/anyOf[#/components/schemas/CreateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookInteractionRequest]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/json)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` the '/anyOf[#/components/schemas/CreateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookInteractionRequest]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: multipart/form-data)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` the '/anyOf[#/components/schemas/CreateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookInteractionRequest]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/x-www-form-urlencoded)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` the '/anyOf[#/components/schemas/UpdateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookUpdateForInteractionCallbackRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: multipart/form-data)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` the '/anyOf[#/components/schemas/UpdateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookUpdateForInteractionCallbackRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/x-www-form-urlencoded)
- `POST /interactions/{interaction_id}/{interaction_token}/callback` the '/anyOf[#/components/schemas/UpdateMessageInteractionCallbackRequest]/data/oneOf[#/components/schemas/IncomingWebhookUpdateForInteractionCallbackRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/json)
- `POST /lobbies/{lobby_id}/messages` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/x-www-form-urlencoded)
- `POST /lobbies/{lobby_id}/messages` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: multipart/form-data)
- `POST /lobbies/{lobby_id}/messages` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/json)
- `POST /webhooks/{webhook_id}/{webhook_token}` the '/anyOf[#/components/schemas/IncomingWebhookRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: multipart/form-data)
- `POST /webhooks/{webhook_id}/{webhook_token}` the '/anyOf[#/components/schemas/IncomingWebhookRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/x-www-form-urlencoded)
- `POST /webhooks/{webhook_id}/{webhook_token}` the '/anyOf[#/components/schemas/IncomingWebhookRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/json)
- `POST /webhooks/{webhook_id}/{webhook_token}` the '/anyOf[#/components/schemas/IncomingWebhookUpdateRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/json)
- `POST /webhooks/{webhook_id}/{webhook_token}` the '/anyOf[#/components/schemas/IncomingWebhookUpdateRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/x-www-form-urlencoded)
- `POST /webhooks/{webhook_id}/{webhook_token}` the '/anyOf[#/components/schemas/IncomingWebhookUpdateRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: multipart/form-data)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original` the '/allOf[#/components/schemas/IncomingWebhookUpdateRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: multipart/form-data)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/x-www-form-urlencoded)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/json)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` the '/allOf[#/components/schemas/IncomingWebhookUpdateRequestPartial]/attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: multipart/form-data)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/x-www-form-urlencoded)
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` the 'attachments/items/filename' request property's minLength was increased from '0' to '1' (media type: application/json)

### 11 July 2026: 3 breaking changes

- `POST /partner-sdk/provisional-accounts/unmerge` the 'external_auth_token' request property's minLength was increased from '0' to '1'
- `POST /partner-sdk/provisional-accounts/unmerge/bot` the 'external_user_id' request property's minLength was increased from '0' to '1'
- `POST /partner-sdk/token` the 'external_auth_token' request property's minLength was increased from '0' to '1'

### 10 July 2026: 1 breaking change

- `POST /guilds/{guild_id}/bulk-ban` removed the success response with the status '204'

### 30 June 2026: 8 breaking changes

- `PATCH /channels/{channel_id}` the '/anyOf[#/components/schemas/UpdateThreadRequestPartial]/rate_limit_per_user' request property type/format changed from 'integer, null'/'' to 'integer, null'/'int32'
- `POST /channels/{channel_id}/messages/{message_id}/threads` the 'rate_limit_per_user' request property type/format changed from 'integer, null'/'' to 'integer, null'/'int32'
- `POST /channels/{channel_id}/threads` the '/anyOf[#/components/schemas/CreateForumThreadRequest]/rate_limit_per_user' request property type/format changed from 'integer, null'/'' to 'integer, null'/'int32' (media type: application/json)
- `POST /channels/{channel_id}/threads` the '/anyOf[#/components/schemas/CreateForumThreadRequest]/rate_limit_per_user' request property type/format changed from 'integer, null'/'' to 'integer, null'/'int32' (media type: application/x-www-form-urlencoded)
- `POST /channels/{channel_id}/threads` the '/anyOf[#/components/schemas/CreateForumThreadRequest]/rate_limit_per_user' request property type/format changed from 'integer, null'/'' to 'integer, null'/'int32' (media type: multipart/form-data)
- `POST /channels/{channel_id}/threads` the '/anyOf[#/components/schemas/CreateTextThreadWithoutMessageRequest]/rate_limit_per_user' request property type/format changed from 'integer, null'/'' to 'integer, null'/'int32' (media type: application/json)
- `POST /channels/{channel_id}/threads` the '/anyOf[#/components/schemas/CreateTextThreadWithoutMessageRequest]/rate_limit_per_user' request property type/format changed from 'integer, null'/'' to 'integer, null'/'int32' (media type: application/x-www-form-urlencoded)
- `POST /channels/{channel_id}/threads` the '/anyOf[#/components/schemas/CreateTextThreadWithoutMessageRequest]/rate_limit_per_user' request property type/format changed from 'integer, null'/'' to 'integer, null'/'int32' (media type: multipart/form-data)

### 23 June 2026: 9 breaking changes

- `GET /channels/{channel_id}/invites` added 'subschema #20: PRUNE_REQUIRES_ADMIN' to the '/items/oneOf[#/components/schemas/GuildInviteResponse]/guild/features/items/' response property 'oneOf' list for the response status '200'
- `POST /channels/{channel_id}/invites` added 'subschema #20: PRUNE_REQUIRES_ADMIN' to the '/oneOf[#/components/schemas/GuildInviteResponse]/guild/features/items/' response property 'oneOf' list for the response status '200'
- `GET /guilds/{guild_id}` added 'subschema #20: PRUNE_REQUIRES_ADMIN' to the 'features/items/' response property 'oneOf' list for the response status '200'
- `PATCH /guilds/{guild_id}` added 'subschema #20: PRUNE_REQUIRES_ADMIN' to the 'features/items/' response property 'oneOf' list for the response status '200'
- `GET /guilds/{guild_id}/invites` added 'subschema #20: PRUNE_REQUIRES_ADMIN' to the '/items/oneOf[#/components/schemas/GuildInviteResponse]/guild/features/items/' response property 'oneOf' list for the response status '200'
- `GET /guilds/{guild_id}/preview` added 'subschema #20: PRUNE_REQUIRES_ADMIN' to the 'features/items/' response property 'oneOf' list for the response status '200'
- `DELETE /invites/{code}` added 'subschema #20: PRUNE_REQUIRES_ADMIN' to the '/oneOf[#/components/schemas/GuildInviteResponse]/guild/features/items/' response property 'oneOf' list for the response status '200'
- `GET /invites/{code}` added 'subschema #20: PRUNE_REQUIRES_ADMIN' to the '/oneOf[#/components/schemas/GuildInviteResponse]/guild/features/items/' response property 'oneOf' list for the response status '200'
- `GET /users/@me/guilds` added 'subschema #20: PRUNE_REQUIRES_ADMIN' to the '/items/features/items/' response property 'oneOf' list for the response status '200'

### 5 May 2026: 7 breaking changes, 60 potentially breaking

- `GET /applications/@me` added 'subschema #40: ENTITLEMENT_CREATE, subschema #41: ENTITLEMENT_UPDATE, subschema #42: ENTITLEMENT_DELETE, subschema #48: LOBBY_MESSAGE_CREATE, subschema #49: LOBBY_MESSAGE_UPDATE, subschema #50: LOBBY_MESSAGE_DELETE, subschema #51: GAME_DIRECT_MESSAGE_CREATE, subschema #52: GAME_DIRECT_MESSAGE_DELETE, subschema #53: GAME_DIRECT_MESSAGE_UPDATE, subschema #59: APPLICATION_AUTHORIZED, subschema #60: APPLICATION_DEAUTHORIZED, subschema #78: QUEST_USER_ENROLLMENT' to the 'event_webhooks_types/items/allOf[#/components/schemas/ActionTypes]/' response property 'oneOf' list for the response status '200'
- `PATCH /applications/@me` added 'subschema #40: ENTITLEMENT_CREATE, subschema #41: ENTITLEMENT_UPDATE, subschema #42: ENTITLEMENT_DELETE, subschema #48: LOBBY_MESSAGE_CREATE, subschema #49: LOBBY_MESSAGE_UPDATE, subschema #50: LOBBY_MESSAGE_DELETE, subschema #51: GAME_DIRECT_MESSAGE_CREATE, subschema #52: GAME_DIRECT_MESSAGE_DELETE, subschema #53: GAME_DIRECT_MESSAGE_UPDATE, subschema #59: APPLICATION_AUTHORIZED, subschema #60: APPLICATION_DEAUTHORIZED, subschema #78: QUEST_USER_ENROLLMENT' to the 'event_webhooks_types/items/allOf[#/components/schemas/ActionTypes]/' response property 'oneOf' list for the response status '200'
- `GET /applications/{application_id}` added 'subschema #40: ENTITLEMENT_CREATE, subschema #41: ENTITLEMENT_UPDATE, subschema #42: ENTITLEMENT_DELETE, subschema #48: LOBBY_MESSAGE_CREATE, subschema #49: LOBBY_MESSAGE_UPDATE, subschema #50: LOBBY_MESSAGE_DELETE, subschema #51: GAME_DIRECT_MESSAGE_CREATE, subschema #52: GAME_DIRECT_MESSAGE_DELETE, subschema #53: GAME_DIRECT_MESSAGE_UPDATE, subschema #59: APPLICATION_AUTHORIZED, subschema #60: APPLICATION_DEAUTHORIZED, subschema #78: QUEST_USER_ENROLLMENT' to the 'event_webhooks_types/items/allOf[#/components/schemas/ActionTypes]/' response property 'oneOf' list for the response status '200'
- `PATCH /applications/{application_id}` added 'subschema #40: ENTITLEMENT_CREATE, subschema #41: ENTITLEMENT_UPDATE, subschema #42: ENTITLEMENT_DELETE, subschema #48: LOBBY_MESSAGE_CREATE, subschema #49: LOBBY_MESSAGE_UPDATE, subschema #50: LOBBY_MESSAGE_DELETE, subschema #51: GAME_DIRECT_MESSAGE_CREATE, subschema #52: GAME_DIRECT_MESSAGE_DELETE, subschema #53: GAME_DIRECT_MESSAGE_UPDATE, subschema #59: APPLICATION_AUTHORIZED, subschema #60: APPLICATION_DEAUTHORIZED, subschema #78: QUEST_USER_ENROLLMENT' to the 'event_webhooks_types/items/allOf[#/components/schemas/ActionTypes]/' response property 'oneOf' list for the response status '200'
- `POST /guilds/{guild_id}/roles` the 'name' request property's minLength was increased from '0' to '1'
- `PATCH /guilds/{guild_id}/roles/{role_id}` the 'name' request property's minLength was increased from '0' to '1'
- `GET /oauth2/applications/@me` added 'subschema #40: ENTITLEMENT_CREATE, subschema #41: ENTITLEMENT_UPDATE, subschema #42: ENTITLEMENT_DELETE, subschema #48: LOBBY_MESSAGE_CREATE, subschema #49: LOBBY_MESSAGE_UPDATE, subschema #50: LOBBY_MESSAGE_DELETE, subschema #51: GAME_DIRECT_MESSAGE_CREATE, subschema #52: GAME_DIRECT_MESSAGE_DELETE, subschema #53: GAME_DIRECT_MESSAGE_UPDATE, subschema #59: APPLICATION_AUTHORIZED, subschema #60: APPLICATION_DEAUTHORIZED, subschema #78: QUEST_USER_ENROLLMENT' to the 'event_webhooks_types/items/allOf[#/components/schemas/ActionTypes]/' response property 'oneOf' list for the response status '200'
- `GET /applications/@me` added the new 'APPLICATION_AUTHORIZED' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'APPLICATION_DEAUTHORIZED' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'ENTITLEMENT_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'ENTITLEMENT_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'ENTITLEMENT_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'GAME_DIRECT_MESSAGE_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'GAME_DIRECT_MESSAGE_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'GAME_DIRECT_MESSAGE_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'LOBBY_MESSAGE_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'LOBBY_MESSAGE_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'LOBBY_MESSAGE_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/@me` added the new 'QUEST_USER_ENROLLMENT' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'APPLICATION_AUTHORIZED' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'APPLICATION_DEAUTHORIZED' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'ENTITLEMENT_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'ENTITLEMENT_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'ENTITLEMENT_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'GAME_DIRECT_MESSAGE_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'GAME_DIRECT_MESSAGE_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'GAME_DIRECT_MESSAGE_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'LOBBY_MESSAGE_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'LOBBY_MESSAGE_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'LOBBY_MESSAGE_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/@me` added the new 'QUEST_USER_ENROLLMENT' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'APPLICATION_AUTHORIZED' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'APPLICATION_DEAUTHORIZED' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'ENTITLEMENT_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'ENTITLEMENT_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'ENTITLEMENT_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'GAME_DIRECT_MESSAGE_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'GAME_DIRECT_MESSAGE_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'GAME_DIRECT_MESSAGE_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'LOBBY_MESSAGE_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'LOBBY_MESSAGE_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'LOBBY_MESSAGE_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /applications/{application_id}` added the new 'QUEST_USER_ENROLLMENT' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'APPLICATION_AUTHORIZED' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'APPLICATION_DEAUTHORIZED' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'ENTITLEMENT_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'ENTITLEMENT_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'ENTITLEMENT_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'GAME_DIRECT_MESSAGE_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'GAME_DIRECT_MESSAGE_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'GAME_DIRECT_MESSAGE_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'LOBBY_MESSAGE_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'LOBBY_MESSAGE_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'LOBBY_MESSAGE_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `PATCH /applications/{application_id}` added the new 'QUEST_USER_ENROLLMENT' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'APPLICATION_AUTHORIZED' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'APPLICATION_DEAUTHORIZED' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'ENTITLEMENT_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'ENTITLEMENT_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'ENTITLEMENT_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'GAME_DIRECT_MESSAGE_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'GAME_DIRECT_MESSAGE_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'GAME_DIRECT_MESSAGE_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'LOBBY_MESSAGE_CREATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'LOBBY_MESSAGE_DELETE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'LOBBY_MESSAGE_UPDATE' enum value to the 'event_webhooks_types/items/' response property for the response status '200'
- `GET /oauth2/applications/@me` added the new 'QUEST_USER_ENROLLMENT' enum value to the 'event_webhooks_types/items/' response property for the response status '200'

### 22 April 2026: 85 potentially breaking

- `POST /applications/{application_id}/attachment` removed the optional property 'attachment/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages` removed the optional property '/items/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages` removed the optional property '/items/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages` removed the optional property '/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages` removed the optional property '/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/messages` removed the optional property 'attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/messages` removed the optional property 'message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/messages` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/messages` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages/pins` removed the optional property 'items/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages/pins` removed the optional property 'items/items/message/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages/pins` removed the optional property 'items/items/message/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages/pins` removed the optional property 'items/items/message/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages/{message_id}` removed the optional property 'attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages/{message_id}` removed the optional property 'message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages/{message_id}` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/messages/{message_id}` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /channels/{channel_id}/messages/{message_id}` removed the optional property 'attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /channels/{channel_id}/messages/{message_id}` removed the optional property 'message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /channels/{channel_id}/messages/{message_id}` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /channels/{channel_id}/messages/{message_id}` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/messages/{message_id}/crosspost` removed the optional property 'attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/messages/{message_id}/crosspost` removed the optional property 'message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/messages/{message_id}/crosspost` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/messages/{message_id}/crosspost` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/pins` removed the optional property '/items/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/pins` removed the optional property '/items/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/pins` removed the optional property '/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/pins` removed the optional property '/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/polls/{message_id}/expire` removed the optional property 'attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/polls/{message_id}/expire` removed the optional property 'message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/polls/{message_id}/expire` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /channels/{channel_id}/polls/{message_id}/expire` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/archived/private` removed the optional property 'first_messages/items/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/archived/private` removed the optional property 'first_messages/items/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/archived/private` removed the optional property 'first_messages/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/archived/private` removed the optional property 'first_messages/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/archived/public` removed the optional property 'first_messages/items/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/archived/public` removed the optional property 'first_messages/items/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/archived/public` removed the optional property 'first_messages/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/archived/public` removed the optional property 'first_messages/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/search` removed the optional property 'first_messages/items/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/search` removed the optional property 'first_messages/items/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/search` removed the optional property 'first_messages/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/threads/search` removed the optional property 'first_messages/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/users/@me/threads/archived/private` removed the optional property 'first_messages/items/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/users/@me/threads/archived/private` removed the optional property 'first_messages/items/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/users/@me/threads/archived/private` removed the optional property 'first_messages/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /channels/{channel_id}/users/@me/threads/archived/private` removed the optional property 'first_messages/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /guilds/{guild_id}/messages/search` removed the optional property 'messages/items/items/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /guilds/{guild_id}/messages/search` removed the optional property 'messages/items/items/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /guilds/{guild_id}/messages/search` removed the optional property 'messages/items/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /guilds/{guild_id}/messages/search` removed the optional property 'messages/items/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /guilds/{guild_id}/threads/active` removed the optional property 'first_messages/items/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /guilds/{guild_id}/threads/active` removed the optional property 'first_messages/items/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /guilds/{guild_id}/threads/active` removed the optional property 'first_messages/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /guilds/{guild_id}/threads/active` removed the optional property 'first_messages/items/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the optional property 'resource/oneOf[#/components/schemas/CreateMessageInteractionCallbackResponse]/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the optional property 'resource/oneOf[#/components/schemas/CreateMessageInteractionCallbackResponse]/message/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the optional property 'resource/oneOf[#/components/schemas/CreateMessageInteractionCallbackResponse]/message/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the optional property 'resource/oneOf[#/components/schemas/CreateMessageInteractionCallbackResponse]/message/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the optional property 'resource/oneOf[#/components/schemas/UpdateMessageInteractionCallbackResponse]/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the optional property 'resource/oneOf[#/components/schemas/UpdateMessageInteractionCallbackResponse]/message/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the optional property 'resource/oneOf[#/components/schemas/UpdateMessageInteractionCallbackResponse]/message/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /interactions/{interaction_id}/{interaction_token}/callback` removed the optional property 'resource/oneOf[#/components/schemas/UpdateMessageInteractionCallbackResponse]/message/referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /webhooks/{webhook_id}/{webhook_token}` removed the optional property 'attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /webhooks/{webhook_id}/{webhook_token}` removed the optional property 'message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /webhooks/{webhook_id}/{webhook_token}` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `POST /webhooks/{webhook_id}/{webhook_token}` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the optional property 'attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the optional property 'message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the optional property 'attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the optional property 'message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the optional property 'attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the optional property 'message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `GET /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the optional property 'attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the optional property 'message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/attachments/items/clip_events_timeline' from the response with the '200' status
- `PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}` removed the optional property 'referenced_message/oneOf[#/components/schemas/BasicMessageResponse]/message_snapshots/items/message/attachments/items/clip_events_timeline' from the response with the '200' status

### 31 March 2026: 1 breaking change

- `POST /partner-sdk/token/bot` the 'external_user_id' request property's minLength was increased from '0' to '1'

## Other APIs we monitor

- [Airtable](https://seamless.engineering/api-changelog/airtable/)
- [Brevo](https://seamless.engineering/api-changelog/brevo/)
- [DATEV](https://seamless.engineering/api-changelog/datev/)
- [Google Sheets](https://seamless.engineering/api-changelog/google-sheets/)
- [HubSpot](https://seamless.engineering/api-changelog/hubspot/)
- [Jira Cloud](https://seamless.engineering/api-changelog/jira/)
- [lexoffice](https://seamless.engineering/api-changelog/lexoffice/)
- [Linear](https://seamless.engineering/api-changelog/linear/)
- [Monday.com](https://seamless.engineering/api-changelog/monday/)
- [Notion](https://seamless.engineering/api-changelog/notion/)
- [Personio](https://seamless.engineering/api-changelog/personio/)
- [Pinterest API](https://seamless.engineering/api-changelog/pinterest/)
- [Pipedrive](https://seamless.engineering/api-changelog/pipedrive/)
- [Salesforce](https://seamless.engineering/api-changelog/salesforce/)
- [Shopify](https://seamless.engineering/api-changelog/shopify/)
- [Slack](https://seamless.engineering/api-changelog/slack/)
- [Stripe](https://seamless.engineering/api-changelog/stripe/)
- [Xentral](https://seamless.engineering/api-changelog/xentral/)
- [Zendesk](https://seamless.engineering/api-changelog/zendesk/)

## Frequently asked questions

### Has the Discord API had breaking changes recently?

Yes: 6 breaking changes and 1 deprecation in the last 90 days. The most recent is “Custom Status Hidden by Profile Privacy Settings” from 17 September 2026.

### How often does the Discord API change?

Over the period on record, Discord published about 3 changelog entries a month. Most are additions; the breaking changes and deprecations are the ones to plan for.

### Where is the official Discord API changelog?

Discord publishes it at https://discord.com/developers/docs/change-log. This page follows it daily and dates each entry.

### How do I get notified about Discord API changes?

Subscribe to this page's RSS feed (https://seamless.engineering/api-changelog/discord/rss.xml). If you would rather have someone act on them, we operate Discord integrations and handle changes like these before they reach production.

## Request a scoping call

We watch Discord because we run integrations on it. If one of yours depends on Discord, we can take it over: build it properly, operate it, and fix it when Discord changes, before your data is affected. Fixed-price scoping quote within 48 hours.

- Email: hello@seamless.engineering
- Contact form: https://seamless.engineering/#contact
