Yes, and it most likely will stay this way but the current upload (>v3.0.0) is not based on discord anymore. Also this is a discord problem and can't be fixed here
#github-notifications
1 messages · Page 1 of 1 (latest)
Sie haben Recht, aber diese Struktur gilt nur, wenn Sie eine Interaktion erhalten. Aussi, désolé pour les messages d'engagement. L'anglais n'est pas ma langue maternelle.
Confused as to why you used german...and french?
While writing a parser for the docs I realized that there are multiple formats and some unnecessary formats for the tables containing api types/enums
I wrote a little tool to extract the table headings and manually modified every table with those headings.
Previously we had the following headings for tables:
| Field | Type | Description | Valid Types || Name | Type | Description || Field | Type | Description || Name | Value | Note |- `| Permission | Value | Ty...
I think the re-ordering and standardisation of Name | Value vs Value | Name is fine but I don't like the removal of columns. The columns like required oauth2 scopes, defaults, or required relations (such as message sending which can't be expressed with solely ?) provide a lot of value when visually grepping the tables and shoving in the text makes it harder to read.
in addition to the issue with removing columns, imo this is unnecessary, and I don't think the docs should be edited solely for automated parsing, especially to the detriment of human readers.
This issue should be fixed now I believe. Let us know if you continue to see this behavior.
Agreed. As a writer of a proof of concept docs parser, these docs are written by humans, for humans.
I support a change that allows us to use the documentation as machine readable. When we created Dasgo, we had to manually parse everything out and the lack of standardization led to us requiring numerous regex strings and weeks of effort.
We use Dasgo to generate a majority of — the almost completed — Disgo (including all 174 endpoints Discord provides). A machine readable API would allow one to update type libra...
I also made a PoC parser and its perfectly fine to handle switching of table headers, just read the headers. The only issue is missing nullable/missing ?s which may be in a note like "all are optional" but header ordering means nothing.
| KEYWORD | 1 | check if content contains words from a user defined list of keywords. Max 3 per guild |
| SPAM | 3 | check if content represents generic spam. Max 1 per guild |
| HARMFUL_LINK | 2 | check if content contains any harmful links. Max 1 per guild |
| presets | array of [keyword preset types](#DOCS_RESOURCES_AUTO_MODERATION/auto-moderation-rule-object-keyword-preset-types) | the internally pre-defined wordsets which will be searched for in content by `KEYWORD_PRESET` triggers |
| keyword_filter | array of strings * | substrings which will be searched for in content by `KEYWORD` triggers |
| KEYWORD_PRESET | 4 | check if content contains words from internal pre-defined wordsets. Max 1 per guild |
This does not make the docs more machine readable in any meaningful way. Making markdown tidier does not make these docs usable as a machine readable api specification.
Moreover these changes are finite at best because when new documentation is added any associated tables will not be written following the loose convention established here.
There are also no changes to the meta documentation outlining the conventions established and no CI action provided to verify the consistency of an...
Removing columns like these just ruins human readability.
enumerator for overwrite type
| Name | Value | Descrition |
I wouldn't exactly call this a field, as its simply an enumeration.
| role | "0" | overwrite for a [role](#DOCS_TOPICS_PERMISSIONS/role-object) |
| member | "1" | overwrite for a [guild member object](#DOCS_RESOURCES_GUILD/guild-member-object) |
it could confuse people, because it should be a string not a number
The documentation currently has it under int. I just change it to number. If that is true, then I can commit this suggestion.
I personally think that bots should not be able to DM users unless the user DMs the bot first, as this is being abused by bots which DM advertise, send fake giveaway DMs and other hacked bots.
Example:
Without intent, starting a DM Channel - POST /channels/@me => Cannot create a DM with a recipient which did not DM the application.
Without intent, GETting a DM Channel, or both of those with the intent - POST /channels/@me => (DM Channel)
I'm not sure this would help. If a spammer/hacker wants to send advertisements or fake giveaway DMs, I would imagine they'd already be using regular user accounts (not tagged as bots), so this intent wouldn't do anything to them.
Bots which have their token leaked are abused for those purposes, I have seen a few
And well, users cannot send arbitrary embeds anymore which makes the giveaway message from a user look much faker
This is still an occurring issue.
202207220111.mp4
This is not really a bug, so I've reclassified this as a feature request.
it's considered not a bug
After going through the comments and reviews i have decided that it's better for both humans and parsers to add the columns back. I have added the columns back, but still renamed a few of them, as well as made some minor QOL changes.
It would be great to allow fields to have a tick and when someone checks / unchecks it to receive an event or something like that
See someone's profile by just tapping on the mention, which you just typed (without sending the message)
If the issue is that bot tokens are being leaked, you have far worse issues to worry about than someone using the leaked tokens to send spam.
Also, the inability to send embeds as a non-bot user is unlikely to be a deterrent for spammers. Many spammers are very dedicated and will happily figure out a way to make the lack of embeds work.
I think this is not good idea and I have two reasons for it:
- Moderation bots cannot send to DM information about moderation actions for them
- Verification (captcha) bots cannot send to user message with captcha message
Bots which have their token leaked are abused for those purposes, I have seen a few
ok, discord will have dm start as priveleged intent but... if bot approved to dm intent and bot start spam to members in dm. but developers have +1 complexity to have moderation functions.
Description
On the Applications section of the developer portal, when sorting applications by "Date Created", applications created after July 22 (with a 19-digit ID) are sorted first, while they should be sorted last.
Steps to Reproduce
Have at least two applications: one with an 18-digit ID, and one with a 19-digit ID, and sort applications by "Date Created" in the developer portal.
##...
Crap, I didn't have notificiations on 🤦
Here we are several months later. I don't have any steps to reproduce, but I am still facing the same issue.
Should I make a new issue? Continue here? I don't really know what to do.
Description
I have a role manager bot which has a /ping command which lets moderators mention certain roles without them having access to the mention everyone permission.
I ran into an issue where the bot doesn't seem to be able to ping roles anymore after I switched to slash commands.
I used to create a normal channel message before but since I have to respond using an interaction response now that isn't an option anymore.
Steps to Reproduce
- Set up the bot so it has permi...
Also I am 99.99% sure with worked without issue two weeks ago so it may be a very recent bug.
Description
I will admit, this is a slight misuse of slash command argument expectations. The use I've made for a discord bot uses both Discord mentions as well as Reddit usernames. If we tell discord to expect a discord mention, it's impossible to mention a reddit username without providing a different argument.
Instead, we can tell Discord to expect a String and allow users to ping someone, or provide a reddit username as a string.
When using this configuration, the command becom...
These types of bots could then apply for these intents. Pretty sure the cases you named would count as valid uses.
Suggested fix: In such cases, quietly swap minimum and maximum length and treat the request as successful if there are no other errors.
This is a known issue. Interaction responses are webhooks under the hood, and therefore use the @everyone role's permissions (instead of the bot's permissions)
This is planned to be changed on July 28 to use bot's permissions when checking for the MENTION_EVERYONE (and USE_EXTERNAL_EMOJIS) permission for interaction responses and application-owned webhooks.
So your bot should start to work as expected after July 28 wi...
Think maybe there should be a note on why this is different.
Don't know if this should be part of that note, but using the /api route causes all subdomains to redirect to stable discord as well which is a huge pain in the butt when you're only logged in to canary or ptb on web.
Ah nice thanks for the info! I guess I must have been mistaken with the ping working earlier then.
Description
Fetching guilds on the guild 222078108977594368 (specifically) returns a 500 response both when accessed via the bot API and the client (server settings > integrations).
Note: fetching hooks on each individual channel of the guild works and will return the webhooks.
@IanMitchell here is the reminder you asked for
Steps to Reproduce
GET /guilds/222078108977594368/webhooks
Expected Behavior
Getting webhooks
Current Behavior
500
Screenshots/Vid...
Description
When using bearer tokens to update command permissions missing application.commands.permissions.update scope make api return code 40001 instead of 50026. This causes confusion around why the respective request fails.
Steps to Reproduce
- Get a bearer token with the oauth flow with missing
application.commands.permissions.updatescope - Use that token to send a request to
/applications/app_id/guilds/guild_id/commands/command_id/permissions - Api returns 401 Stat...
Description
Oauth2 url generator is missing some of the available scopes
Steps to Reproduce
- Go to https://discord.com/developers/applications
- Click OAuth2 and URL Generator.
Expected Behavior
Listed scopes should include applications.commands.permissions.update applications.commands.permissions.update `.
Current Behavior
It does not include applications.commands.permissions.update in the scope list.
Screenshots/Videos
No response
Client and System...
Suggested fix: In such cases, quietly swap minimum and maximum length and treat the request as successful if there are no other errors.
Secretly change user input instead of properly 400ing telling them the input is in fact, incorrect?
Description
matched_content and content are documented as optional, but as of a recent change (like 3-4 days), are no longer provided when the message content intent is disabled. This goes against the documentation, and is a breaking change.
Steps to Reproduce
Can't provide curl requests due to this being over the gateway.
- Provide the automod execution intents to the gateway when connecting, while making sure the message_content intent is not provided.
- Have the manage...
This statement is rather ambiguous because "often" implies that it does NOT apply to every request containing a top-level resource; or started by a top-level resource. The problem is that this statement is also the only sentence regarding Discord's Per Resource Rate Limits; barring X-RateLimit-Scope which only indicates that a 429'd request is a Per Resource Rate Limit. There is also no clarification why the X-RateLimit-Scope calls Per Resource rate limits shared, which could imply that mul...
Given that @jhgg is at least a Senior Staff Engineer at Discord, and also the initial announcer of Discord Rate Limits, he may also be able to confirm the question in https://github.com/discord/discord-api-docs/issues/5144#issuecomment-1192012368.
Suggested fix: AutoMod policy executions should happen on a stealth drop, i.e., shadow ban, basis.
Then, the delay should be fixed to exactly 1800 seconds, to allow for propagation but make the actual read recovery time impossible to guess.
Suggested fix: AutoMod policy executions should happen on a stealth drop, i.e., shadow ban, basis.
There has already been a documentation fix?
Adds some npm boilerplate to make local link checking easier.
Hello There , how are y'all , hope you are all fine .
It will be nice if discord adds a feature to make application commands only appear in bot's dms and only work there .
changing "npm install" to run a different command seems like a bad idea
I'd like to bump this up, because I have the same issues. I have accessibility concerns, and I cannot read light text on a dark background. To me, this is like being in a wheelchair at a subway station that doesn't have elevators. I just can't work with it!
The last time I was in this type of situation, I had to fight tooth and nail, downloading a bunch of custom CSS extensions and manually changing each element one by one.
Please please please tell me that this isn't the case here. I...
it doesnt run a different command it just runs alongside the normal package install, although I'm not sure about concurrency. "postinstall" would be better here
they plan to revamp the dev portal and this is a high priority feature
Description
When using the V9 gateway, discord allows you to enable the MESSAGE_CONTENT intent without it being approved for the application.
Instead, this should still close the socket with a 4014: Disallowed Intents close code. However, it should allow you to enable it if you are approved.
This way, a library can already provide the intent before updating to v10, so bot devs can properly prepare and transition to the future versions smoothly. It doesn't really make sense for a ...
You could install a darkmode browser extension, for now
Sorry I meant lightmode* haha
About Me is intended as a description, not as something dynamic.
This could easily be abused, and interactions are meant and built for users only. Bots also can't account for what a user might actually do, only what the developer thinks they'll do, so you'd be better off recruiting users to test your bot.
Partial support for this would be nice in regards to configuring slash command permissions, but webhooks wouldn't have much use on mobile, since mobile devices don't usually have access to whatever code is executing a webhook.
Mention rate limit and global message limit would be good, since Discord can be proactive, compared to the reactivity of bots.
Instead of auto kicking (or anything automatic) a bot when it gets an intent, a better idea would be to send a system message to the server owner when a bot in their server gains a new intent, saying what is now shared.
Slow mode controls an entire channel, and is like denying the send message permission temporarily, then regranting it, and with permission changes already under manage channel, that (in my opinion) invalidates this suggestion.
Descriptions can be dynamic too. For example, motd.
Descriptions can be dynamic too. For example, motd.
The full name of motd is message of the day, that explicitly is made to be dynamic.
Mobile users can still access services such as GitHub to configure a webhook.
Hello, I really love discord, but there is one feature I really miss.
My community and I are playing different tactical games where you use internal VOIP and so you have to set push to mute hotkeys in discord. But it is different each time which keys have to be set. A cool feature would be to able to set them per game, so set hot keys for game A are not set for game B or desktop etc.
General Client feature suggestions should be made at https://dis.gd/feedback - this Repo is for Discord's API/SDK :)
Thanks, I will put it there :)
General Client feature suggestions should be made at https://dis.gd/feedback - this Repo is for Discord's API/SDK :)
Description
According to RFC 6749 §5.2, the server should respond with invalid_request if the request is missing required parameters:
invalid_request
The request is missing a required parameter, includes an
unsupported parameter value (other than grant type),
repeats a parameter, includes multiple credentials,
utilizes more than one mechanism for...
I get what you're saying here, the problem is that's not actually what its like. Its not a temporary revocation of permissions, its an extra layer separate from permissions that says how often you can use said permission.
Probably a better approach would be having 3 permissinos, pin, delete, and slow mode bypass + management, but given discord has "planned" to separate pin and delete for so long, grouping management into this is a far easier request at the moment.
Yep it is a good idea, I hope discord add this feature soon.
Description
Responding to an interaction received via webhook directly with a multipart/form-data file upload causes "This interaction failed" when uploading a 160kb file, but works when uploading a 150kb file.
I have tested with multiple file types including images, text and binary, with and without content-length, changed keepalive timeout headers, boundary encoding...
I am unsure at which exact size the issue starts, but somewhere between 150kb and 160kb the responses start fail...
Background
The only way to authorize a user to login with Discord is through OAuth2, forcing mobile developers to redirect users to the browser to sign in.
Problem
The user experience requires that users remember their Discord credentials because they are likely not signed into mobile web.
Solution
Enable deep linking to the Discord app for authorization. This will save user's time (no remembering passwords) and improve...
| type | integer | `1` for an action row |
Automod is useless if it can only detect English or the language you type the banned words in. (If your server isn't just English).
And even if your server is just English, people will user other languages.
This prevents "auto" from "mod" to be good enough.
Yes I know auto mod won't replace "manual" mods, but I do think language learning will improve the auto mod quite significantly.
I'm confused on why you made a new comment instead of a reply to the other comment.
Can confirm, does not work on iPhone XR running iOS 14.3 and iPad Air 3rd Generation running iPadOS 14.4.2
Hm. I just read the changelog entry and now its somewhat obvious this was an (hopefully) accidental breaking change after the change was initially made.
Description
Hello, I am currently facing an issue where global slash commands for my bot (with ID 808706062013825036) are not appearing for some users in a particular server (with ID 351064956478685184). Below is the minimum code I am using to create the global slash command, and I can confirm that this command (/slashtest) does appear for all members in other servers, but only appears for one member in this particular server. I have confirmed that all users have the `use_applicati...
Description
The OAuth2 topic of the developer documentation does not mention that PKCE is supported.
Steps to Reproduce
View OAuth2 topic in documentation
Expected Behavior
PKCE should be mentioned that it is supported by Discord OAuth2.
Some information about usage of PKCE.
Current Behavior
PKCE is not mentioned at all in OAuth2 topic.
Screenshots/Videos
No response
Client and System Information
Not relevant
Not sure if it should be a separate changelog entry since its changing its old documentation
Yeah sure it's not advice to separate
Has there been any consideration of allowing command permissions to be set by category? I was surprised to see that automod could be set up to whitelist categories when there isn't a similar feature for setting command permissions. This would vastly simplify our permission settings and save us a lot of work as we frequently create/delete channels and currently have to denylist a couple dozen commands for each of them.
, it will be rolled out to mobile soon
In the snippet for the client credentials grant, the module base64 is imported, but not used at all. This pr removes that import
How is that related to the topic lol
Are there any more details on this? Would love to try it out, even if in beta + alpha
managing webhooks is already on ios and android beta anyway
No? I'm on the Android Beta and can't manage webhooks.
update your app, it's on RNA
I updated my app, still no, and I don't see what genetics has to do with Discord.
RNA = React Native Android in this context, I can see Webhooks in Server Settings on Android Alpha 139.4
RNA = React Native Android in this context, and I can see Webhooks in Server Settings on Android Alpha 139.4
I'm on 139.4 and can't see it. Maybe it's a rollout?
Same as always been. No difference from before.
On Fri, Jul 29, 2022, 3:58 PM Suspense @.***> wrote:
what do you see
—
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/discussions/5187#discussioncomment-3284220,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASINGSP7YHSU3ABC45B5CU3VWRAV7ANCNFSM53PTNCDQ
.
You are receiving this because you commented.Message ID:
@.***
com>
what do you see
Same as always been, no difference from now and before.
and if possible can you share a screenshot
and if possible can you share a screenshot


I said "managing" not "creatibg". The second screenshot isn't from the webhooks tab.
Create one from desktop or go to a channel where bots created some/you followed some announcement channels, then go back to settings, you'll see them there
I said "managing" not "creating", plus the second screenshot isn't from the Webhooks tab. Create one from desktop or go to a channel where bots have created some or you followed some announcement channels, then go back to settings, you'll see them there
It wasn't there, but it shows up now. Probably lag? I don't know.
Thank you so much! This method worked. The URL has been generated.
Always happy to help ^^
Description
You are able to give permissions to an application command but not take them back.
Steps to Reproduce
- Go to a server where you have manage server permissions, manage role permissions and you can manage some channels (not all).
- Head over to Server Settings -> Integrations -> Bots and Apps and select any application with application commands.
- Select a command (you can also use the global permissions), remove for "All Channels"
- Try to re-add per...
Hi you, didn't think anyone was there!
I'm still facing this problem in the API, receiving 404 with Unknown Entitlement. It seems that the user is not found. <img alt="image" width="971" src="https://user-images.githubusercontent.com/3102127/155575023-5420648a-5c50-418e-b8dd-eb4cf77552b9.png">
Did you ever find the way to do this @ivanseidel ? I am getting the same error. If you rename percent_complete to something else, it replies with
{
"percent_complete": [
"This field is required"
]
}
...
Haven't Discord's Video capabilties stabilized?
When trying to use the application.flags provided by the READY dispatch, I also noticed that these flags are incorrect on v9:
The application payload I receive on gateway v9 shows these flags:
{
"flags" : 8691712,
"id" : 420321485757087746
}
Which includes the GATEWAY_MESSAGE_CONTENT flag, since 8691712 & (1 << 18) == 1 << 18. However, I have this flag disabled:
."
}
Add voice message, some times voice message is better than calling or texting
Description
Currently only on PC, I and my users have been experiencing an issue when using slash commands which take an attachment as an argument. As soon as I press send, the message says "This interaction failed" and clyde sends a messaging saying:
"Your message could not be delivered. This is usually because you don't share a server with the recipient or the recipient is only accepting direct messages from friends. You can see the full list of reasons here: https://support.discord.c...
This is a general Discord gesture request not an API request like this discussion section is for
This is a general Discord gesture request not an API request like this discussion section is for
I can confirm I get this too with another bot.
One of my users reported this [ Stable 139674 (8d84d45) - Win10 64 bit ] but works fine for me [ Stable 139460 (ea9eb84) - Win10 64 bit ] using the same bot.
Description
In Desktop/PC app, when someone tries to place one attachment the other one gets deleted and vice versa, no error appearing.
Steps to Reproduce
- Write a command that takes two or more attachment arguments
- Try to attach both arguments
Expected Behavior
The user should be able to attach both attachments without them getting deleted.
Current Behavior
When you upload one of the attachment arguments, the other one gets deleted, making it impossible for the ...
You are being rate limited - this is the correct way it should be though
Can confirm this happens on Desktop with Stable 139630 (a5dcd43) Host 1.0.9005 Windows 10 64-Bit (10.0.22622).
However, the issue is not present on iOS App 137.0 (33973) stable and the command works normally.
| DISCOVERABLE | Administrator* | Enables discovery in the guild, making it publicly listed |
the features table should be kept as is, would be weird to not include these there
is it supposed to actually duplicate the features above? think you could remove these ones from the Guild Features table
i think unless the larger list is named "non mutable features" then for the sake of completness they should remain
I can confirm this bug!
Stable 139674 (8d84d45) Host 1.0.9005 Windows 10 64-Bit (10.0.19044)
I just switched from message command system to slash command system TODAY. For my bot, this interaction is essential. What a bad luck.
Maybe I was to blame. I am sorry.
As the author of my bot, I'm the only one who's able to send interactions with attachments, other users are not able to complete this interaction and fails with the same message as original issue.
added interaction followup create return type
It is correct that we can't test everything a user might try to do, but this is more about testing the actual functionality.
Also, a test suite often contains regression tests which make sure, that you don't re-introduce bugs you previously fixed.
If you are a developer, you should know the importance of automated testing. Especially because it is a reproducable test which doesn't forget to test one thing.
A solution proposed above your comment would be ideal, which would include a set...
Client and System Information
I'm using both Firefox and Brave browser, along with the latest version of Discord on desktop. The error is the exact same on all platforms.
Updata, on mobile (ios for what we have tested), it works
still down bad, was losing my mind - at least I know I am not alone
still down bad, was losing my mind - at least I know I am not alone
I second this
According to Ian 1's last post on #api-announcements, the SEND_TTS_MESSAGES permission is also affected by the change to calculate permissions on interactions and webhooks.
I can confirm I am getting the same issue.
I am also getting the same issue.
Using api v10 instead of v9 did nothing fyi.

Also can confirm this issue! Strange that I moved to api v10 some time ago, and didn't get any errors at that moment.

this is a discord issue, the bot is irrelevant
I just have one webhook created in our server, suddenly it stopped working. So I checked the webhook settings and the webhook was gone. I tried to create a new webhook and I get the same "internal server error" as above. This has been weeks now, not hours. So I dont think its a temporary outage or anything like that? And also I am in admin role, so it should not be an authority issue.
Description

Steps to Reproduce
Create a webhook in a guild
execute the created webhook with an emoji from a different guild
Curl requests for creating the webhook have not been provided as authorisation is with a user token.
I used discohook to execute the webhook, rather than manual execution, copyable [here](https://discohook.org/?data=eyJtZXNzYWdlcyI6W3siZGF0Y...
I screwed this up when testing user created webhooks, forgot the use external emojis permission. Leaving this open because the documentation should probably specify this permission applies to webhooks but it doesn't: https://discord.com/developers/docs/resources/webhook#execute-webhook
This is the only 'Structure' table in all of the docs to use 'Name' instead of 'Field' for its first column
Similar to the scope of this PR, there's a large inconsistency between marking fields in a table as optional. There are numerous resources that have ? on the name, others on the type and whatnot. I believe normalising the table headers is the first big step towards ensuring consistent documentation.
Where the "?" is placed differentiates nullable and optional fields. https://discord.com/developers/docs/reference
its not fixed, its still occurring for me

yeah still happening to me too with Canary 139877 (bb2442a)
yeah still happening to me too with Canary 139877 (bb2442a)
just ian again
Similar to the scope of this PR, it would be nice if we had a PR separate to normalize optional field values. There's a large inconsistency between marking fields in a table as optional, with some areas having
?on the name, others on the type, or the description outright saying "null."I believe normalising the table headers is the first big step towards ensuring consistent documentation. Documentation is meant to be read by humans, sure, but allowing a docs parser format things s...
It was explicitly pointing that the event is only for Application Command and "in a guild".
Possibly superseded by #5227
Description
Currently, if you input multiple options while using a slash command, it doesn't matter what order you specify them, _hoistedOptions will ALWAYS output the options in the same order you created them in the SlashCommandBuilder.
Steps to Reproduce
- I have a command named
/createwith optionsname,cost, andtype. Each of these is optional. - I run the command
/create type:Food cost:45 - Log the output of interaction.options._hoistedOptions
- Notice the `co...
This is a problem because the order of options is critical to my bot's function. I create 1 long string out of everything given, and the option that gets appended to the end is important. If it's always in the same order, my system does not work.
Context:
I run a neuralnetwork and use these options to build a "primetext" to feed into it. Whatever is at the end of the primetext, the NN then continues off of it.
Description
When entering an emoji into an option on mobile, it only calculates the length of the name of the emoji, not the full formatted emoji.
Steps to Reproduce
- Create a text option with a min length set to 23 characters (the minimum possible for a custom emoji with ID).
- Observe that the option works fine on desktop and web
- Observe that the option does not work on mobile
Expected Behavior
The emoji should calculate into the length of input before sending the c...
Yep, this is now implemented on desktop. Mobile is soon to follow. Work is complete on Android (not yet deployed), and iOS is up next.
Yep, this is now implemented on desktop. Mobile is soon to follow. Work is complete on Android (not yet deployed), and iOS is up next.
This feature has been merged and deployed.
If an interaction is owned by an application with a bot in the server, the interaction will respect the bot's permissions for MENTION_EVERYONE, USE_EXTERNAL_EMOJI, and SEND_TTS_MESSAGES.
The same is true for webhooks created/owned by bots in the server.
Interactions owned by an application without a bot in the server will continue to respect @everyone for those permissions.
This feature has been merged and deployed.
If an interaction is owned by an application with a bot in the server, the interaction will respect the bot's permissions for MENTION_EVERYONE, USE_EXTERNAL_EMOJI, and SEND_TTS_MESSAGES.
The same is true for webhooks created/owned by bots in the server.
Interactions owned by an application without a bot in the server will continue to respect @everyone for those permissions.
probably not really related to the API, client feature requests go to https://dis.gd/feedback.
also, there is already a pop-up when holding a mention (not really what you want, but there are some info)

Description
Permission calculation for webhook and interaction responses is available, but when updating an interaction, it hasn't been updated, there is still the old permission calculation system
Steps to Reproduce
create an interaction with a component that update during the update you will see that the emotes are not displayed anymore because everyone has no permission to send external emotes yet the bot can
Expected Behavior
have the same behavior as when I send an inter...
Currently, the Supports Commands badge only display if a bot 1 or more global commands. However, some bots, like MEE6, have "categories" to enable in which all commands are guild commands given to a server when a category is enabled. However, just 1 guild command shouldn't be enough to enable the badge if there are no global commands, as it could be the developer just testing slash commands. So for bots that do things similar to MEE6, if 75%+ guilds have at least 1 gu...
We want the badge to signify that a command is available for users who see it - the intent is to convey information rather than for it to serve as just a vanity item. To that end, we restricted it to global commands only - I don't think this is something we are considering changing. We don't want the badge to appear on a bot when there are no guild commands in the guild the user is viewing the bot in, since it would be confusing to them.
We want the badge to signify that a command is available for users who see it - the intent is to convey information rather than for it to serve as just a vanity item. To that end, we restricted it to global commands only - I don't think this is something we are considering changing. We don't want the badge to appear on a bot when there are no guild commands in the guild the user is viewing the bot in, since it would be confusing to them.
- having 75% of servers actually being users of the bot, let alone configuring it, is a high estimation
- you say "bots like MEE6", but these bots also have global application commands so there's no need for a special case
- it doesn't really "support commands" out of the box like the badge is meant to mean
Thank you, Mason!
Now for the numbers, Mason, what do they mean
Thanks for the followups. I think a separate but related issue cropped up and that has also been fixed.
5501664 [docs] add resume_gateway_url documentation - daisyzhou
For now resume_gateway_url is still always "wss://gateway.discord.gg/" but in a few weeks we'll start sending different values for resume_gateway_url
"wss://gateway.discord.gg/" will always work but may force a faster reconnect starting in a couple months
| v | integer | [API version](#DOCS_REFERENCE/api-versioning-api-versions) |
e1e562b Update docs/topics/Gateway.md - daisyzhou
Your client should store the `session_id` and `resume_gateway_url` from the [Ready](#DOCS_TOPICS_GATEWAY/ready), and the sequence number of the last event it received. When your client detects that it has been disconnected, it should completely close the connection and open a new one (following the same strategy as [Connecting](#DOCS_TOPICS_GATEWAY/connecting)) to `resume_gateway_url`. Once the new connection has been opened, the client should send a [Gateway Resume](#DOCS_TOPI...
Failure to respect the `resume_gateway_url` may result in your client being forced to reconnect again after a short period of time.
Thanks for the followups. I think a separate but related issue cropped up and that has also been fixed - should be on stable shortly
My bot does not get the interaction, It sticks on "Sending command"
@typpo
Looks like the issue has been resolved. Works just fine for me.
Where the "?" is placed differentiates nullable and optional fields. https://discord.com/developers/docs/reference
To further reiterate, this is a matter of inconsistency. I'm 100% for PRs that try to normalise, standardise or apply any form of consistency.
Out of curiosity, what will the property return in the future?
there is no inconsistency between the nullable and optional indicators, they are different things that are clearly documented to have different meanings. that's like saying the existence of both "a" and "b" is an inconsistency
Hmm, alright. I will give it another shot in the morning.
Will there be new error scenarios we need to prepare for if the resume URL is invalidated?
This PR is gold, standardization is a must have in a large project like the Discord API. Having a standard for markdown is a good start and helps remove confusion.
Removing extra tidbits of information removed for consistency is bad, that information as danny pointed out is useful.
there is no inconsistency between the nullable and optional indicators, they are different things that are clearly documented to have different meanings. that's like saying the existence of both "a" and "b" is an inconsistency
For clarification, there are numerous resources that place the nullable field marker ? with "null" mentioned in the field description. Stuff like this is inconsistent and serves as noise to reading the documentation, which either way can be read from a human or m...
6ed3ffa Update docs/topics/Gateway.md - daisyzhou
0aa0869 Update docs/topics/Gateway.md - daisyzhou
we'll make an actual announcement in the ddevs server in a few days to ask people to make this change and share timelines! we aim to give you plenty of time to do it.
Out of curiosity, what will the property return in the future?
This is to prepare for some internal changes to tolerate GCP Availability Zone outages better, in the future there will probably be a set of resume urls that point to different zones and we ask that you reconnect to the one that you get in the ready payload
...
False alarm. It was working, but the problem is now back. Exact same error.
ian i think the trolling has gotten too far
ian i think the trolling has gotten too far
Who's Ian?
This is still happening for me on iOS, but Android is fine
I'm still getting this even with PKCE @night
Who's Ian?
basically a clone of me, but older
works for me in Canary 140141 (042a785), thanks for the fix!
Description
I created a webhook on Github to send all deployment events to a Discord channel. These events seem to be rejected with HTTP 400.
Steps to Reproduce
I am providing the rejected payload:
{
"deployment_status": {
"url": "https://api.github.com/repos/podkrepi-bg/frontend/deployments/619900440/statuses/1177038693",
"id": 1177038693,
"node_id": "DES_kwDOEzALAs5GKC9l",
"state": "success",
"creator": {
"login": "imilchev",
"i...
You need to append /github to the webhook's url.
I have that. It works for other events but these ones get rejected
Quick question: if the resume fails (the gateway responds with OP9 Invalid Session), can we send an IDENTIFY directly to the resume gateway? Or are we expected to disconnect from the resume gateway, and reconnect to wss://gateway.discord.gg/ to start a new session?
I think there should be an option to allow multiple files to be attached to a single command option. This could be achieved by having maximum and minimum count properties on attachment options. This would give developers greater control over what users can upload.
I fully understand that a similar effect can be achieved by having multiple options that all accept one attachment each, but this can make the user experience very clunky in my opinion. My bot, for example, requires users to upl...
Don't quote me on this, but iirc that is how it works but there is a bug with it at the moment.
Description
If a guild has a few webhooks trying to retrive them all will endup with the request timing out.
Solution
Add a guild limit of like 1k and bump up per channel limits to 25 per type as followed channel hooks sharing the same limit as ordinary just makes no sense
Steps to Reproduce
Try to fetch a guilds webhooks where there are a few channels with lots of webhooks
Expected Behavior
The guild has a limit on the total amount of webhooks allows so this situati...
I wanted the DM channels to provide via the API the client locale of the user that the bot DMed. This would make it a lot easier on systems like the one attached below.

This system consists of the bot generating an invitation link already redirected to add it to the invitation server. This would be good so that I could send the message in the same language as the user.
Can confirm issue no longer occurs for me on the latest stable
Maybe just the same styles as normal buttons (excluding emojis and link buttons)
Description
There was a change recently changing how webhooks/interaction responses permissions work, allowing them to have the permissions of the bot account, instead of the base/everyone permissions, and so be able to mention everyone/roles. So this issue is based on the assumption it was attempted to be fixed already.
After this change, I tested in every such way, trying to get this to work, and I cant get it to work. My goal was to ping a role with a slash interaction response.
...
Are you able to use multiple file attachment command options? Like /test file1:test.jpg file2:test.webp?
When sending ephemeral messages invite links do not show the server details (they just appear like a link without any embed) WHY is that! and what should we do if we wanted to show the server details along with the ephemeral message!!!
you can have multiple options if you need multiple attachments, but each option can only have one attachment. and there's currently a bug that doesn't let you upload more than one attachments across multiple options
Invite links show an embed for me.

i think this is only possible for CUSTOM INVITE links.
Why did you make a whole thread instead of replying to me?
i think that's only possible for CUSTOM INVITE links.
below there are two messages for the same link..
one is ephemeral which didn't show an embed However the second message which is not ephemeral, but shows an embed.

I still cannot reproduce, maybe show evidence with links you do not want to censor.
Why did you make a whole thread instead of replying to me?
By accident.
As I mentioned in my second paragraph, I am aware this is possible, but for bots like mine that require any number of attachments between 1 and 5, having 5 options when they won't all be used most of the time makes the command look very cluttered, especially on small screens. I would much prefer if I single option were able to accept a specified number of attachments if the developer chose to allow it.
This could probably be implemented alongside #3286 , but I don’t think there’s been any indication of whether that’ll happen or not.
I still cannot reproduce, maybe show evidence with links you do not want to censor.
Maybe later, important thing to note, is both of my links starts with https, and both of them are invites on a specific channel on that guild.
looks like pmnzt is on desktop and ooliver1 is on mobile, that’s probably why you’re getting different results
looks like pmnzt is on desktop and ooliver1 is on mobile, that’s probably why you’re getting different results
Each embed shows on desktop too
I still cannot reproduce, maybe show evidence with links you do not want to censor.
Maybe later, important thing to note is both of my links start with https, and both of them are invites on a specific channel on that guild.
Normal invite links cannot be a global guild invite, invites are only on channels.
.
Currently, You can only input text into a modal. I would like to see the ability to also add mentions and emojis built into Modals.
Different ways to implement:
- You can create a new type for Emoji's and Mentions
- You can make it so when someone types
@or:It will start to show emojis/users based on what you entered
I am having the same issue, it seems to be related to the Discord server, not the bot. I have a test server for my bots where the new feature works, however when I use the exact same setup on a different server it does not work. Same bot, same permissions, different results.
I thought that maybe the bot has to be remade or something so I recreated it in the Discord developer portal but the new one I made had the exact same behaviour.
@advaith1 Do you have any other information about classifying endpoints to per-resource rate limits prior to sending a request?
I looked into this for user pinging, I assume it's the same for role pinging.
iirc if you defer the interaction first it won't ping
Is this a re-openable issue or something we can update documentation on whether it's still possible to award achievements in this fashion @night ?
I looked into this for user pinging, I assume it's the same for role pinging. iirc if you defer the interaction first it won't ping
I have not deferred the interaction, and as I said, the exact same code works on one server but not another.
Description
When trying to turn off the "Public Bot" box in the developer portal for a bot, this error message is displayed:
"Cannot have install fields on a private application."
The actual error is that the bot cannot be private unless the OAuth2 Default Authorization Link is set to 'None'. The current error message is not sufficiently clear enough to diagnose the problem and I was forced to find the solution through a Reddit post.
Please consider revising the error message t...
Aforementioned Reddit thread with the solution is here:
https://www.reddit.com/r/discordapp/comments/txqprv/error_trying_to_make_my_bot_private/
As responses work the same as webhooks, the @everyone role must have permissions to mention @everyone, @here and All Roles.
<img width="471" alt="image" src="https://user-images.githubusercontent.com/30734036/183286803-27a94187-5e58-4993-bde0-a6526f486932.png">
<img width="345" alt="image" src="https://user-images.githubusercontent.com/30734036/183286805-54ce3e8e-85f3-442c-8dd1-42d92c8feafe.png">
As responses work the same as webhooks, the @everyone role must have permissions to mention @everyone, @here and All Roles.
<img width="471" alt="image" src="https://user-images.githubusercontent.com/30734036/183286803-27a94187-5e58-4993-bde0-a6526f486932.png">
<img width="345" alt="image" src="https://user-images.githubusercontent.com/30734036/183286805-54ce3e8e-85f3-442c-8dd1-42d92c8feafe.png">
But this was changed recently.
As the above comment says, and as I mention in my issue, it was apparently already fixed/changed - and this issue is saying it wasn't fixed. Either way its a ridiculous suggestion to let everyone mention everyone.
I noticed I was wrong about this working as it should on my test guild. I accidentally had the Mention Everyone permission on for the everyone role from some earlier testing a few weeks ago. So disregard what I said before about this being different on different servers, this is a global bug.
Would it be possible to have these limits documented somewhere? There have been multiple times now where these limits are changed without warning, and the only indication is that images that were fine before no longer work when set as an avatar. This leads to proxy bot creators trying to guesstimate the new requirements and users of those bots getting confused and frustrated
We'd really appreciate some transparency with these changes, or at least some way to find the exact dimensions and f...
Description
Sending null for all entity fields returns 500 Internal Server Error
Steps to Reproduce
✔️ Send a PATCH request to a scheduled event (Tested with EXTERNAL type, should work with STAGE_INSTANCE and VOICE too though.) with the following payload:
{
"entity_type": null,
"entity_id": null,
"entity_metadata": null
}
❌ It returns a 500 Internal Server Error.
Expected Behavior
It should return 400 Bad Request.
Current Behav...
Somehow #4154 repeats itself
Documents the expiration delay of ephemeral attachments
Hello lam Arezoomohammadalizadehrami
Description
Mentioning a user in a normal message was inviting them into private threads, but not in an ephemeral message
For a few days now, when a bot mentions a user inside a private thread, even in an ephemeral message, it automatically adds the user into the private thread (as long as the bot has the permission to add a user into the thread)
This results into users getting added to the threads without knowing what added them
Steps to Reproduce
Make a private thread
Make a b...
در دوشنبه ۸ اوت ۴ ریوا در ۱:۵۲ imanataee @.***> نوشت:
Description
Mentioning a user in a normal message was inviting them into private
threads, but not in an ephemeral message
For a few days now, when a bot mentions a user inside a private thread,
even in an ephemeral message, it automatically adds the user into the
private thread (as long as the bot has the permission to add a user into
the thread)
This results into users getting added to the threads without knowing ...
The exact duration of ephemeral attachments is not something you should rely on, so we do not document this.
As noticed during a [conversation](#381887113391505410 message) on the Discord API server, there are currently some inconsistencies between the "Opcodes and Status Codes" and "Gateway" pages.
The former says that we should reconnect on OP7 before reidentifying/resuming, while the later doesn't mention this.
T...
Description
Game developers who had a game for sale before the stores were deprecated are unable to use the Developer Portal for accounting purposes, and no proof of sales have ever been sent from Discord.
The self-serve Analytics section of the Developer Portal (via discord.com/developers/applications/) does not work, making it impossible to get any sort of proof of sales for accounting purposes. The last payment was received last quarter, making the issue still relevant to accountin...
This is a bug and the fields will be added soon (in the next couple of days) to make it consistent, so I'm going to close this out
I also had this same issue. The error message is wrong, it should complain about the request body, but instead it says bots cannot use the endpoint. Bots can use the endpoint, it's just that the bot submits the data wrong 🙂
Description
So, as mentioned in the title, there is an bug in Discord API, that causes to 'hide' about me section of bot in desktop client.
It causes serious problems, when you have important informations to show for users, when they click bot profile.
Steps to Reproduce
- Head to Discord Developers Site
- Create any application that is a bot
- Head to General Informations
- Set bot description
- Log in Desktop Client
- Invite Bot
- Click it's profile
Expected Behavio...
Tempest is a Discord API wrapper for Applications (interactions), written in Golang. It aims to be fast, cache free and higher level than other Discord API wrappers made for Discord Applications.
It was created as a better alternative to discord-interactions-go which is "low level" and outdated.
I haven't found any specific requirements for uploading own library to Discord docs so in case Tempest would miss something - let me know. I created it primarily to have fast & higher level library/framework to work with interactions on http instead gateway.
Here's already https://github.com/bsdlp/discord-interactions-go added to the documentation but it's outdated and adds barely anything so it's hard to call it library. By looking at JavaScript or Python positions I guess that it's ok t...
See this discussion.
Thanks for info! However, that's about libraries, so about:

Tempest if it would be added - would be in Interactions:

Are those counted as 1:1 with being a library? There's n...
Sorry, missed that the library is an HTTP one 😅. As far as I can tell the discussion I linked should technically still apply, although it does not appear to have been implemented for HTTP-based interaction libraries yet.
Feel free to dismiss my comment.
This issue is also on Android (React Native)
Can reproduce
Desktop canary:
Canary 140672 (156c86e) Host 0.0.136 Linux 64-Bit (5.15.0-43-Generic)
Web stable:
Stable 140575 (12c29a3) Linux 64-Bit
Web ptb:
Ptb 140672 (156c86e) Linux 64-Bit
Web canary:
Canary 140672 (156c86e) Linux 64-Bit
but not on iOS stable 137.0
App: 137.0 (33973) stable; Manifest: W/"f9921cec4a08f7e9fe631ba73d351f59"; Build Override: N/A; Device: iPhone10,4 OS 15.5;
and not on iOS stable 138.0
A...
Description
In the embeds there is the thumbnail property but the width and height do not work
Steps to Reproduce
Create an embed with a thumbnail and add width and height property
{
color: 9731306,
fields: [],
author: { name: 'Music Added', icon_url: undefined, url: undefined },
thumbnail: {
url: 'https://i.scdn.co/image/ab67616d00001e025fa646a4cfcd17842fdd7bbd',
width: 200,
height: 200
},
description: '**[Heart - Alone](https://open.spotify.com/...
This is working as intended:
https://discord.com/developers/docs/resources/channel#create-message
For the embed object, you can set every field except type (it will be rich regardless of if you try to set it), provider, video, and any height, width, or proxy_url values for images.
This is working as intended:
https://discord.com/developers/docs/resources/channel#create-message
For the embed object, you can set every field except type (it will be rich regardless of if you try to set it), provider, video, and any height, width, or proxy_url values for images.
I don't really understand what that means
the width and height properties are read-only; the only thing you can set is the url
Builds off of #5282 to include a changelog for resume_gateway_url
"zone" is not defined here, we might want to name this differently, unless we want to include the specifics of availability zones
30b37e5 [docs] add resume_gateway_url documentation (#5... - daisyzhou
58d6ec4 resume_gateway_url changelog (#5301) - shaydewael
Quick question: if the resume fails (the gateway responds with OP9 Invalid Session), can we send an
IDENTIFYdirectly to the "resume gateway"? Or are we expected to disconnect from the "resume gateway", and reconnect towss://gateway.discord.gg/to start a new session?
@daisyzhou would it be possible to get an answer on this?
Quick question: if the resume fails (the gateway responds with OP9 Invalid Session), can we send an
IDENTIFYdirectly to the "resume gateway"? Or are we expected to disconnect from the "resume gateway", and reconnect towss://gateway.discord.gg/to start a new session?
Whatever the answer to this, we should explicitly detail it in the docs.
Description
Using a command interaction to open a modal from within a forum thread while it is not opened in 'Full View' causes the submission to fail and the interactions endpoint to return a 400 error with the response {"message": "Cannot execute action on this channel type", "code": 50024}.
If instead the modal is submitted with the thread in Full View, it succeeds.
Steps to Reproduce
- Create or open an existing thread inside of a forum channel that is not in Full View.
...
Description
Select inputs dont appear in modals on mobile at all, while they work just fine on desktop
Steps to Reproduce
Send a modal with a select. I'm using Discord.py so I have no clue how the raw payload looks like, so I can't post it.
If it matters, I'm sending the Modal as a response to a Button interaction.
Expected Behavior
The Modal to appear as it does on Desktop
Current Behavior
Select doesn't appear
Screenshots/Videos

As a result, the pull request is being made to address this issue can be resumed upon confirmation (via https://github.com/switchupcb/disgo/pull/19 logs).
Description
When my bot bans a user it DMs the user their ban reason before banning them. However as of recently this fails if the first message in the DM channel is being sent by the bot.
Steps to Reproduce
- Create a DM channel with a user (there has to be no prior direct message history with the user)
- Attempt to send a message to the DM channel
- Observe
Expected Behavior
The direct message gets sent just fine
Current Behavior
The direct message gets blocked w...
Thanks for the report! We've identified the issue and are working on getting the fix out shortly
These aren't currently supported because they don't work on Mobile 😛.
This is a word which is capitalised, whilst all other field name's are lowercase. I've changed this to be lowercase for consistency.
There is now a Riot Games connection, and it also adds the League of Legends connection if you have an account for it
| reddit | Reddit |
| riotgames | Riot Games |
alphabetical order
bro got his servers all in 500 folders
8 folders
Maybe add a note that lol gets added indirectly?
just wondering, so when the mobile app also support multi account login?
thewes no pwobwem with the ui tehe uwwuw it nevew had any pwobwems befowe owo nuwzzwes uww feet uwwuw it wiww nevew have pwobwems meow nyaah~ :3
Yep, seeing the same on Desktop 0.0.268 (0.0.268)
on Android you can install the Discord app twice if you want (Duplicate/Parallel Apps/Second Space)
thewes no pwobwem with the ui tehe uwwuw it nevew had any pwobwems befowe owo nuwzzwes uww feet uwwuw it wiww nevew have pwobwems meow nyaah~ :3
Please delete this
As a developer, I would like to see SVG (.svg) added to the list of image formats.
As a developer, I would like to be able to upload SVG files as Rich Presence Activity Assets.
As a developer, I would like to be able to use external SVG images via media proxy.
arbitrary SVGs cannot be displayed because they can include scripts and stuff
Why hasn't this been merged yet? Is this still subject to change?
Description
At the moment translations provided in name_localizations on CHAT_INPUT commands and options have to be written in lower-case characters where possible. For some languages this can result in being forced to use very unnatural looking and even orthographically wrong translations. In German for example, all common nouns are capitalised. With this restriction however they all have to be written in lower-case.
Steps to Reproduce
I guess in a way it's a change request so I c...
This was almost immediately fed back when slash command naming restrictions were announced and there wasn't any movement on this back then so unfortunately this is likely not going to change. This also not a localization issue because the default language your commands use is completely up to you; it's really an issue with the name restrictions:
CHAT_INPUT command names and command option names must match the following regex
^[-_\p{L}\p{N}\p{sc=Deva}\p{sc=Thai}]{1,32}$with the unicode f...
@Mehgugs I disagree. Since we didn't have localisations before, most bots that wanted to be used internationally had to default to English. And in English this is not much of an issue.
This bug is pretty much a show-stopper for the whole feature to me. I can't release translations for my bot with this. :(
Users can't type the commands because they are never shown what to type. So they can only really click on commands in the menu.
This is simply a statement of the facts; this was an issue for international developers before localization was designed. There is nothing to disagree with here?
They should be able to be displayed, and just including scripts shouldn't really matter.
My point is that it becomes much more of an issue with names being translateable.
Technically it was an issue before already and I don't doubt that there are developers who wanted to write their default command names in languages other than English. But I would expect that for most bot developers using languages other than English was just not feasible before.
We currently have no plans to change this. To my knowledge all our officially supported languages (the ones you can put as keys in localizations, including english), should still immediately understandable under our restrictions. Also fwiw lower-kebab-case is orthographically incorrect in english as well. You are also free to put whatever language you want as default, it doesn't have to be english.
@darkshade9 the issue is marked as invalid, so don't have much hopes up.
They did not change how the endpoint acts nor its documentation since I opened the issue.
And if you would ask: I could not figure it out either.
Description
When I use a slash command, the bot's interaction reply will be shown with a little header in the client: It says "$username used /blah". If the command has a localised name in my client's language, that name is shown in that header. (I couldn't test what language it is shown in for other users - hopefully the one for their locale.)
However, if I use a message command and the bot replies, the header uses the default name of the command, not the localised one. (In the c...
@devsnek Thank you for your consideration and I see your point about it still being immediately understandable. I will live with it looking unnatural. :-)
It's beside the point of this ticket but I just wanted to clarify:
I understand that technically I am able to use any supported language as the default. My point was that the use cases for doing that are just very limited because English is the lingua franca on the internet. Either you're writing a bot for a very small audience where yo...
can still repro even without the type param in the example
Unsure about optional/nullable since I don't have access to a youtube/twitch integration to test with, just assuming it's optional.
Example from /guilds/{guild.id}/integrations:
{
"id": "...",
"type": "discord",
"name": "...",
"account": {},
"application": {},
"enabled": true,
"scopes": [
"applications.commands",
"webhook.incoming",
"bot"
],
"user": {}
}
Is it impossible to include a filter against "scripts and stuff"?
Structure from Twitch integration, it is optional
{
"id": "...",
"type": "twitch",
"name": "...",
"account": {
"id": "...",
"name": "..."
},
"user": {
"id": "...",
"username": "...",
"avatar": "...",
"avatar_decoration": null,
"discriminator": "...",
"public_flags": 0
},
"revoked": false,
"enabled": true,...
Structure from Twitch integration, it is optional
Cool, thanks for checking
As I said above, just the existence of JavaScript in SVG should not really a problem, as scripts in it should not be able to be run unexpectedly (XSS) if you use it properly. If they are, it means that you set it up incorrectly, or you did it on purpose.
If Discord will allow SVGs for preview in channels, or for RPC activity assets so they can be displayed in users' profiles, they will embed them in img tags, just like they do for GIFs, JPGs, PNGs, or any other image format...
Okay, but they will be supported, as I understand?
Someone people have told me they aren't supported at all (implying it won't be supported either).
Description
the error message is incorrect
Steps to Reproduce
send enough messages in a channel to get yourself rate-limited
Expected Behavior
"message": "You are being rate limited."
Current Behavior
message: "The write action you are performing on the channel has hit the write rate limit."
Screenshots/Videos

Client and System Information
Ca...
This is a bug and the fields will be added soon (in the next couple of days) to make it consistent, so I'm going to close this out
This doesn't change that the documentation is currently out of sync with the behavior. This is furthered with this commit https://github.com/discord/discord-api-docs/commit/a003d94dbd21af355703b4b3456e6fe09ff3e3dd which makes the documentation out of sync with itself, giving conflicting information in two different locations while not clarifying when one is...
This reverts commit a003d94dbd21af355703b4b3456e6fe09ff3e3dd.
Continued continuation of https://github.com/discord/discord-api-docs/pull/5242 and https://github.com/discord/discord-api-docs/issues/5241
These keys are always provided, but for a period were not provided. This re-specifies they are always provided.
I've opened another pr to bring the documentation back in sync.
This was silently fixed in the past few days, so I suppose it no longer is a bug, but I'm disappointed that it was not acknowledged.
Is there any documentation on how this behavior will work when this feature is enabled?
You'll still be able to fetch all invites, aswell as create them, just users trying to join via them will get an error.
Does that also affect joining via discovery and lurking (or possibly even OAuth guilds.join) or is it purely restricted to invites?
It's a channel-global rate limit shared by all users sending messages in that channel, rather than a rate limit just for your client, hence the different message to make that distinction clear. Your own rate limit may not be exhausted yet, but the channel-global limit is.
TIMEOUT actions can also be used with the MENTION_SPAM trigger type, subject to the same permission limitations.
As I said above, just the existence of JavaScript in SVG should not really a problem, as scripts in it should not be able to be run unexpectedly (XSS) if you use it properly. If they are, it means that you set it up incorrectly, or you did it on purpose.
...
I was replying to Advaith
Mark GET /guilds/{guild.id}/audit-logs query string params as optional for clarity and consistency with other GET endpoints
It's a channel-global rate limit shared by all users sending messages in that channel, rather than a rate limit just for your client, hence the different message to make that distinction clear. Your own rate limit may not be exhausted yet, but the channel-global limit is.
True but it's also sent when a single user hits the channel send limit for themselves.
Description
As documented here, https://discord.com/developers/docs/change-log#calculated-permissions-in-interaction-payloads , applications always have the EMBED_LINKS and ATTACH_FILES permissions when responding to interactions. However, this are not provided in the app_permissions field when the bot is not in the guild, even though these permissions are documented as being provided.
Steps to Reproduce
Prerequisites: have a button or slash command in a guild, without the bot th...
Why
Because sometimes you can have a select and another button, and having the button on its own line can look ugly.
Use Cases
- a select to add/remove objects from a list, and a button to switch between removing and adding.
- a select together with a message delete button. As you can see below, having the button near the select looks much nicer than at the bottom of it.
- additionally, if we'll also have support for another button before the select, we can use buttons as arrows to...
Description
Whenever I try to broadcast the entire screen on discord, the content is not shared, with the other participants seeing only the black screen being broadcast.
Steps to Reproduce
When entering an audio channel, I click on the Share your screen button.
In the window to choose which screen I want to share, I choose the option Entire Screen. And then the option Live.
Expected Behavior
I hope that everything that is being presented on my screen will be shared wi...
[discord/discord-api-docs] Issue opened: #5319 External emojis stopped working in follow up messages
Description
I am fairly certain this a discord problem. If not, please correct me. I ran a simple test sending the same message with an external emoji as a command interaction reply and a follow up to this same interaction. The external emoji worked fine in the reply but not the follow up. This same test was working a couple weeks ago but has recently stopped working. I have gone through discord.js support and they believe their is a bug in the discord API.
- discord.js@v14.2
- The e...
This issue tracker is for Discord API related issues. Submit client related issues here
It effects discovery yes, not sure about the scope.
What needs edited @advaith1
gamesdk was abandoned a long time ago, even stuff like buttons in activity isnt added but was said to be complete in 2020
its not even documented, you are writing code blind
At least I can't use these anywhere
I believe that is completely incorrect.
The prefix guild_ represents that this is a guild channel type
Internally it does not start with GUILD_ for threads.
I wonder when and why this change was made.
Aj, could you elaborate on that?
3812cb5 Fix outdated channel names. (#5322) - IllagerCaptain
Why was this instantly merged without waiting for community feedback? Given that these docs are largely maintained by us I think we should have time to discuss changes properly.
a283e0e Lowercase letter for consistency (#5305) - TheUntraceable
9b8cbd9 Mark GET /guilds/{guild.id}/audit-logs params... - Zoddo
Quick question: if the resume fails (the gateway responds with OP9 Invalid Session), can we send an
IDENTIFYdirectly to the "resume gateway"? Or are we expected to disconnect from the "resume gateway", and reconnect towss://gateway.discord.gg/to start a new session?@daisyzhou would it be possible to get an answer on this?
oh, good question. If the resume fails, please reconnect to the main gateway entry point (in theory whatever you have cached from the Get Gateway or Ge...
Agree this can go in the Interactions section for now, although that needs cleanup & guidelines too at some point
a64a2ee Add Tempest library for Interaction libraries (... - Amatsagu
87efe03 Clarify Interaction Create Gateway event (#5276) - SQKo
6219df9 Remove nonexistent samsunggalaxy connection (#5... - advaith1
4ca01c5 don't use resume_gateway_url on resume failure - daisyzhou
7f5cbe3 Add limit for attachment descriptions (#5233) - MinnDevelopment
optional: "with data of the" -> "which point to the"?
Because there's not really any extra data included here I think, right?
Description
When using the POST /guilds/{guild.id}/channels endpoint with a bot token, it is not able to create a channel of type 15 (Forum Channel) (50024: Cannot execute action on this channel type). This however isn't the case for clients, as creating Forum Channels in the client works just fine.
Steps to Reproduce
`curl --location --request POST 'https://discord.com/api/v10/guilds/{guild.id}/channels'
--header 'Authorization: Bot {token}'
--header 'Content-Type: app...
As a note,
It's also possible that your client cannot reconnect in time to resume, in which case the client will receive a Opcode 9 Invalid Session and is expected to wait a random amount of time—between 1 and 5 seconds—then send a fresh Opcode 2 Identify.
This content is odd. It feels like this is saying "you can waiting 1-5 seconds after receiving an Op 9 and then send an IDENTIFY **on the same WS connection t...
Are you trying to create one on a server that has access to them? They are not fully released yet
Are you trying to create one on a server that has access to them? They are not fully released yet
.. yes.
I can't reproduce on a guild with BOT_DEVELOPER_EARLY_ACCESS in features or one in the experiment rollout.
I can reproduce in the JDA server (125227483518861312) which does have access to forums. I cannot create a forum with a bot, but I can with the client.
I also encountered this bug a few months ago. I believe it has been fixed now, I can no longer reproduce this.
Agreed, I am unable to repro this now
Description
When you are creating a thread on a message in the client, the name of the thread is optional:

However, in the API, the name is not optional. It would be nice to make it optional so that we can use the same default name algorithm that Discord does, without having to reverse...
Oops, I guess I'm meant to post this as a feature request. Closing.
When you are creating a thread on a message in the client, the name of the thread is optional:

However, in the API, the name is not optional. It would be nice to make it optional so that we can use the same default name algorithm that Discord does, without having to reverse engineer it and ...
Don't forget to make sure that <18 developers can't use this feature!
Or... Make it so ONLY Verified Bot Devs can use the feature, since they have to submit an ID for verification anyways
[discord/discord-api-docs] New comment on pull request #5296: Fix Invalid Session opcode description
Closing this PR because this info is now accurate with the upcoming change with the resume_gateway_url: https://github.com/discord/discord-api-docs/pull/5282#issuecomment-1215405806
[discord/discord-api-docs] New comment on discussion #5182: Ability to request temporary permissions
It won't make things safer, let alone better from a user experience perspective.
I think I understand the idea. Some bots need certain "critical" permissions only to ensure the operation of a single, very little used feature, like applying a server backup.
First, 5 minutes is enough to raid. Second, you can't force bots to use a temporary permission system. Malicious bots will continue to request essential permissions when adding them.
Users should be careful about the permissions th...
The purpose of a thread, in my opinion, is to react to a message that opens up a conversation on a subject related to the message. The subject must be explicit for accessibility reasons. Imagine emails without subjects, how would you find your way around?
Sorry if this sounds rude, but did you read the suggestion?
Or give the possibility to a bot to modify the permissions of other bots (integrations). This would automate the process and would be even better I think.
It wouldn't matter much if people I work with somehow get my token and leak it.
I hope your bot never gets certified. Dumbest thing I've ever read related to security.
0-day's or CVE's can't give hackers access to my bot.
If someone finds a critical zero day on your bot, IP whitelisting won't help you.
The attacker will have compromised the bot process which is launched on the server linked to the IP which has been whitelisted.
One of my music nodes could become compromised...
some details about this issue:
Technically, bots don't have bios; applications have descriptions. The /profile endpoint inserts the application's description into the bio field in the user object, which is actually "" in the real user object.
Recently, a user_profile object was added, and the clients now read bio, banner, and accent_color from user_profile, instead of user. However, the API doesn't put the application description into user_profile, so the client does...
the rest of them say "with data of the" so I just copied that; should I change it for all of them?
That's so weird, oh well, I guess that's fine then
fd36aa3 Document message_reference on Thread Created me... - advaith1
I hope your bot never gets certified.
Seems very unprofessional to go "I hope <bad thing> happens because I disagree or think you are wrong.
Lol ? If your node is compromised, I hope you're hung up and isolated because privilege escalation does exist.
In that case, if we should not implement good security because [x] vulnerability might exist, why bother with any security in the first place?
You are very naive for someone who uses the term CVE.
The term CVE is not very...
If anyone has to manually implement this algorithm this is what I came up with using Discord.js. I'm sure I missed a bunch of weird details and off by one errors (coming from Discord themselves) but as far as I could tell this has the same results as the client.
// This is an approximation of Discord's own algorithm done in the Discord client
// It does not, however, strip away invalid characters like dots and slashes.
private generateDefaultThreadName(message: Message): string {
...
Read past the images, it actually explains the point of this discussion.
On my plate to tackle early this week. Thanks for the detailed report @advaith1! Very helpful
#5322 updated channel type names in the channel types table, but it didn't update them everywhere else. This PR updates the channel type names in other places, and also fixes table spacing and notes that announcement channels used to be called news channels.
Worth noting that it doesn't strip away any "invalid" characters, because Discord doesn't seem too sure what invalid characters are. For example, it is valid to have dots in thread names, but the client's default name generator replaces all dots with spaces. Since I didn't want to look for all of these characters I just didn't touch anything like that.
Description
API is applying configurations with invalid fields that should return an error explaining that the fields are invalid, I tested applying it by the test bot and the API is accepting these configurations, I verified in the Discord Client that they are actually applying and the API is returning a status code 500 when the settings are applied.
(I'm using google translator there will probably be a typo.) :(
Steps to Reproduce
Bug actions[0].type:
I added thi...
Description
Allow bots to access the "insights" of the server from the API.
Why This is Needed
The server insights are really handy even if it misses some things. However, for those who manage several servers, it becomes annoying to have to download them in CSV format to reuse them in software or scripts.
If bots were able to retrieve this information, I'm sure it would be possible to automatically import the data into online tools or other software.
I can imagine deep...
so the harmful link filter was moved out of automod and is instead turned on globally?
[discord/discord-api-docs] New comment on discussion #5182: Ability to request temporary permissions
Yes, it's useless to protect yourself from malicious bots. The goal is to reduce the incidence of a compromised bot by reducing its attack surface. Giving administrative permissions for one-time actions is a security issue if the permission is not removed, since in the event that the bot is compromised, a malicious actor could use it to destroy the server or perform other unwanted actions. The temporary permissions will greatly reduce this risk for the bots using it.
[discord/discord-api-docs] New comment on discussion #5182: Ability to request temporary permissions
I updated the description to clarify the goals of this suggestion. It's not about protecting against malicious bots, the goal is to reduce the incidence of compromised bots.
[discord/discord-api-docs] New comment on discussion #5182: Ability to request temporary permissions
I updated the description to clarify the goals of this suggestion. It's not about protecting against malicious bots, the goal is to reduce the incidence of compromised bots.
Personally I'd like to be able to request approval for the specific action
This will make the user experience worse, as these permissions are usually requested on moderation commands with the goal of being run quickly. Imho a system based on the command arguments would be better (giving the permission only for mem...
[discord/discord-api-docs] New comment on discussion #5182: Ability to request temporary permissions
Yes, it's useless to protect yourself from malicious bots. The goal is to reduce the incidence of a compromised bot by reducing its attack surface. Giving administrative permissions for one-time actions is a security issue if the permission is not removed, since in the event that the bot is compromised, a malicious actor could use it to destroy the server or perform other unwanted actions. The temporary permissions will greatly reduce this risk for the bots using it.
In this case it is the...
I understand your point but I read carefully. I was just pointing out the accessibility problem implied by the optionality of the title. Currently the name of the threads is mandatory on the beta version of Discord. If they changed this tiny behavior it is for a reason that is surely related to what I wrote. I should have made it clear, sorry about that. Conclusion, from my point of view, whether on the client or on the API, the title should be mandatory. After that, nothing will prevent you ...
@RealAlphabet I still don't think you understand, so let me clarify. In the client, the thread name is optional if, and only if, you start your thread on a message. It uses the message content to generate a default thread name, and sends this name to the API. The resulting thread will always have a name.
I was just pointing out the accessibility problem implied by the optionality of the title.
Nobody is saying that threads should be able to be without a name. There is no a11y problem...
Your answer is irrelevant.
I'm not trying to decriminalize people. I'm just pointing out the problem with such a state of mind from a security point of view. Where you don't seem to have understood or read what I wrote, is that just because you have security features doesn't mean you have to give a damn and start leaking your credentials everywhere. Do you agree with the user's comment?
The reason I wrote this is to remind you that just because we have a security mechanism doesn't mean we s...
This feature has been asked a lot of time, but we don't have any reply about it.
I want to create a game on discord which use a camera to show a graphic interface.
This could be cool to use it and very helpfull for developper.
I tried it on the BETA Discord version on an Android device. Maybe it's only mandatory on mobile. Before updating to BETA (before yesterday) the title was also optional for me.
I think you have indeed picked up a behavior that doesn't seem to be very well defined by Discord at the moment.
Even though my opinion hasn't changed I think you did the right thing by bringing it up.
Adds action types AUTO_MODERATION_FLAG_TO_CHANNEL (144) and AUTO_MODERATION_USER_COMMUNICATION_DISABLED (145), as well as the optional fields auto_moderation_rule_name, auto_moderation_rule_trigger_type, and channel_id for the three automod audit log types.
Get 'Current User Guilds' > 'Query String Params' uses a 'Required' column instead of marking optional fields with a question mark like the rest of the docs.
Wait a second, it look like all of the "Query String Params" tables follow this format. Is there a reason they're different?
Eventually we do plan on adding selects to modals, but there is no timeline on when that will happen and we are not actively working on it.
Webhooks owned by verified applications should have the checkmark on them. This could prevent confusion when a webhook made by a verified app sends messages and people think it might be imitating the actual bot when in reality it is the actual bot.
They aren't all using this format.
- Some tables use question marks.
- Some tables use a Required column as you have noticed.
- Some tables have a Default column that implies it's optional.
- Some tables even use all the three at the same time.
It's just "normal" inconsistencie...
Quick question: if the resume fails (the gateway responds with OP9 Invalid Session), can we send an
IDENTIFYdirectly to the "resume gateway"? Or are we expected to disconnect from the "resume gateway", and reconnect towss://gateway.discord.gg/to start a new session?@daisyzhou would it be possible to get an answer on this?
oh, good question. If the resume fails, please reconnect to the main gateway entry point (in theory whatever you have cached from the G...
Webhooks can have custom usernames. These shouldn't have a verification checkmark
Webhooks can have custom usernames. These shouldn't have a verification checkmark
Fwiw, your screenshot is showing creating a thread not from a message (the option to make it private doesn't exist when starting from a message) but even when creating from a message it does still require the thread name (I tested on iOS btw, so should be the same on RNA)
they should also be listed in Create Guild and Modify Guild for consistency with threads
Description
Posting to POST /guilds/{guild.id}/channels or POST /channels/{channel.id}/threads or POST /channels/{channel.id}/messages/{message.id}/threads is allowed with any name. However, Discord removes characters that it considers invalid and sometimes replaces it with something else. It would be very beneficial for us developers if this replacement process was documented, preferably with a RegEx of characters that will be removed/replaced with something else.
Suggestion
...
Reverse engineered findings
Feel free to post comments below this post with your findings. Helps other people implement this until Discord releases their official restrictions.
Channel names
- Spaces are replaced with
-. Tested withU+0020,U+00A0,U+1680,U+180E,U+2000-U+2009,U+200A,U+200B,U+202F,U+205F,U+3000,U+FEFF - ???
Thread names
- The following characters are removed:
/\"#:<> - ???
Hey @night. Bumping this old discussion. Is this being considered? An OG audio tag would be really nice to have, for those of us who want to build applications for music communities and have a way to embed directly into discord. I've been looking at a feedback app for a discord community, and there isn't really a great option to do some fancy discord things
Characters that have one are transformed into their lowercase variant.
Have one what? Uppercase character? If so, it seems that's display-side only, or at least was that way up until recently. One of our moderators trolled and set a channel name to ThIs KiNd Of CaSe, because people using third-party discord clients saw the uppercase characters, while everyone else just saw the normal lowercase.
Do note this was multiple months ago now, it may have changed.
Adds a mention of how only the longest string counts towards the 4k command character limit when localized strings are present
Have one what?
Characters that have a lowercase variant
it seems that's display-side only
Very interesting, I don't have time to test right now but if someone could verify that would be great! Thanks for the input.
Description
I cannot figure out the specifics, however I have figured out a snippet that can reproduce the issue 100% of the time.
Steps to Reproduce
✔️ Send a PATCH request to a scheduled event (Tested with EXTERNAL type, should work with STAGE_INSTANCE and VOICE too though.) with the following payload:
Expected Behavior
It doesn't return 500 Internal Server Error.
Current Behavior
It returns 500 Internal Server Error.
Screenshots/Videos
No response
##...
Description
We're pulling comments from a feed to embed in a channel. We noticed that someone responded in Hebrew or Yiddish and the RTL characters caused the entire field value to get pooched.
Steps to Reproduce
Embed regular text with RTL text
Expected Behavior
The RTL text should still appear in the same spot, but should not alter the bullets or datetime placement
Current Behavior
Everything gets moved around in the field's value
Screenshots/Videos
![Untitled]...
Description
When sending the "allowed_mentions" parameter as part of the json params with the https://discord.com/developers/docs/resources/webhook#execute-webhook endpoint, it doesn't work.
Steps to Reproduce
send (for example)
"content": "",
"allowed_mentions": {
"parse": []
}
with to params to https://discord.com/developers/docs/resources/webhook#execute-webhook whilst pinging someone in the content, and it will ping the user/role anyway.
Expected Behav...
264938a Remove bad links filter (#5327) - Jupith
f460aae Harmful link filter error (#5328) - Jupith
711a13f Update valid automod rule types for TIMEOUT a... - shiftinv
a0dd54b Update list of unreleased automod trigger types... - MinnDevelopment
380b9c2 Update explanation of command character limit, ... - infinitestory
Updates the description of how a slash command's size is computed for the purposes of the 4000 length limit. Also describes how localization fields affect the size computation.
Closing in favor of https://github.com/discord/discord-api-docs/pull/5343, which adds a few more fixes to this text.
I know this proposal has already been answered but I would like to bring it up to date.
If follow-ups are allowed for ephemeral messages, we should be able to edit or delete them without requiring user interaction.
Conformity with everything said about most threads I could find on the subject
Indeed, ephemeral messages can be "dismissed" by the user. Except that if you do this, it doesn't prevent the bot from continuing to send messages thanks to follow-ups. **This means tha...
This seems to be fixed with the released version of localised commands.
Quick question: if the resume fails (the gateway responds with OP9 Invalid Session), can we send an
IDENTIFYdirectly to the "resume gateway"? Or are we expected to disconnect from the "resume gateway", and reconnect towss://gateway.discord.gg/to start a new session?@daisyzhou would it be possible to get an answer on this?
oh, good question. If the resume fails, please reconnect to the main gateway entry point (in theory whatever you have...
Sadly this bug resurfaced for me - for commands where it was initially working after release.
Maybe some search index that breaks or is not getting updated correctly with the localised names?
I would just like to state, so people don't get confused. This is an optional change that we prefer people implement. But if you do not, the worst that will happen is we will just disconnect your web-socket a bit more often, in hopes that your reconnect will land you to the right destination.
So, the worst case is "you have to resume a bit more often as we bump you around until your connection lands on the right zone."
Bumps @actions/core from 1.6.0 to 1.9.1.
Changelog
Sourced from @actions/core's changelog.
1.9.1
Randomize delimiter when calling core.exportVariable
1.9.0
Added toPosixPath, toWin32Path and toPlatformPath utilities #1102
1.8.2
Update to v2.0.1 of @actions/http-client #1087
1.8.1
Update to v2.0.0 of @actions/http-client
1.8.0
Deprecate markdownSummary extension export in favor of summary
actions/toolkit#1072
actions/to...
27436f4 Bump @actions/core from 1.6.0 to 1.9.1 - dependabot[bot]
I just played around with this using user context commands and was unable to repro this issue. Please comment if you're still seeing this behavior, but closing this for now.
I just played around with this using user context commands and was unable to repro this issue. Please comment if you're still seeing this behavior, but closing this for now.
Since switching to the HTTP-only system, a massive number of users have complained that it isn't clear if they've pressed a button (for example, see this kind of feedback is common). For reference, when a user presses a button, the reply to the interaction contains the updated message content (which shouldn't invoke any ratelimits, as there is no request to Discord being made). The volume of button presses would make creating an additional ...
Jup, adding my plus one as well. The only options right now are API implementations with random dependencies or weird implementations. Just generating your own types/api calls is way nicer and more elegant imho.
Can't believe I'm saying this, but it was easier with webservices with WSDL back in the day...
These four object tables are the only ones in the docs that use "Name" instead of "Field" and they share their exact signature with Application Commands->Application Command Object->Application Command Types. This brings them in line with the other tables in the docs.
Could be a dupe of #5227
Could be a dupe of #5227
That one also did a lot of other things that removed information, like extra columns and the distinction between nullable and optional, and has since been closed for it.
I would just like to state, so people don't get confused. This is an optional change that we prefer people implement. But if you do not, the worst that will happen is we will just disconnect your web-socket a bit more often, in hopes that your reconnect will land you to the right destination.
So, the worst case is "you have to resume a bit more often as we bump you around until your connection lands on the right zone."
Which, is of course not preferred.
It'd be nice to have something automated but based on my experience parsing the docs it's not nearly as simple as it sounds
It'd be nice to have something automated but based on my experience parsing the docs it's not nearly as simple as it sounds
Then why make this PR? Consistency changes that are not enforced are useless.
I did lots of research on this and the closest match I got were the [joypixels/emoji-toolkit] sources, where all names also existed in Discord, but this list is not exhaustive. For example, the family and job emojis are not covered. Where does Discord get this data from and is there any way of getting it (maybe even from the official API)? I'm just looking for a 1:1 mapping of Discord names to Emojis.
For context: I want to bring Emojis into Minecraft and would like to give users...
see: https://github.com/discord/discord-api-docs/issues/671
TLDR discord is not interested in providing this information
Okay, thank you for linking the other discussion. What I found is https://github.com/DSharpPlus/DSharpPlus/blob/master/DSharpPlus/Entities/Emoji/DiscordEmoji.EmojiUtils.cs which generated its mappings from https://static.emzi0767.com/misc/discordEmojiMap.min.json
Though, this JSON source seems to be (geo-)blocking all requests from Germany in relation to the war, so I need to un-generate the CSharp code I guess.
see: https://github.com/discord/discord-api-docs/issues/671
TLDR discord is not interested in providing this information
this is just due to the client caching webhooks as users (and badly, when messages have different names and avatars), pretty sure it isn’t really intended and it probably shouldn’t be relied on
I don't see how the lack of a CI workflow makes consistency worthless. The docs managed to stay consistent up until these four tables without one.
When the Nsfw field will be a feature and announced (i know it exists but it's undocumented, I'm asking if is there any eta to document it)
the nsfw field is subject to change and is not released, do not set it (if you already set it, remove it)
Description
When observing Voice State Updates, disconnecting a user using Right-Click - Disconnect will return a Voice State Object where the field channel_id still returns the channel the user was previously connected to.
It should however return null, as the user has been disconnected from the channel.
Steps to Reproduce
Obse...
Description
Guild schedule event creator is None
Steps to Reproduce
wait for guild_scheduled_event_create and print event creator to console
Expected Behavior
i want to see member, who created this event
Current Behavior
event creator returns None
Screenshots/Videos
this is simple code to test this bug
import nextcord
from nextcord.ext import commands
bot = commands.Bot(command_prefix = '!', intents = nextcord.Intents.all())
@bot.event
async ...
Description
Having a server with no public channels and a vanity url set will cause GET ..../vanity-url to alternate every request, either returning the correct code and uses, or returning empty values. Each time the request succeeds a GUILD_UPDATE event is emitted with the vanity_url property changing depending on the response of the rest request.
Steps to Reproduce
Set a vanity
Make all channels private
Expected Behavior
GET ..../vanity-url has a consistent respons...
This is actually terrible, increase the GD timer to like 10 seconds for the love of god
I really wish I could give this multiple upvotes. Either we need better visibility of our interactions, or bots need multiple free requests per interaction.
this is just due to the client caching webhooks as users (and badly, when messages have different names and avatars), pretty sure it isn’t really intended and it probably shouldn’t be relied on
These mentions are also added to the chat box when shift clicking the name of a Webhook on desktop or when tapping the name on mobile. If its not intended, the client shouldn't have a way to mention webhooks IMO.
This is technically a bug, though unlikely to ever be fixed since it isn't really breaking anything.
Is it possible to officially support this behaviour?
Adding on to this, when this documentation is written, please note the length/format requirements for the additional parameters under section 4 of RFC 7636. Several major OAuth2 providers (GitHub, GitLab, Google, Facebook) are more permissive than the spec dictates, making Discord a bit of an exception here (in a good way).
I just spent several hours trying to figure out what `{"error": "invalid_request", "error_description": "Invalid "c...
When creating a message, allow bots to add empty reactions - adding a reaction without increasing the reaction count.
Use Cases
Polls, Starboards and Suggestions.
This feature exists for upcoming forum channels, but unfortunately you can only set one reaction at a time:

Its currently retrievable via oauth2
The volume of button presses would make creating an additional response (such as an ephemeral message in addition to the original message edit) not feasible due to ratelimits (for example, button presses could easily exceed 50 presses per second).
Interactions/followups are webhooks under the hood. This means they have their own ratelimits and don't count towards the bot's global ratelimit, [as documented here](https://discord.com/developers/docs/interactions/receiving-and-responding#end...
How does it work? It would be nice to have more than one (at least two, up and down voting), and to have it work on normal messages.
Description
I have created a slash command with a default permissions value of "0". In my guild, I have given @everyone permission to use this command. Despite this, only server admins can use the command. If I remove the default_member_permissions property from the command everyone can use it again.
Steps to Reproduce
- Create a slash command with a
default_member_permissionsvalue of"0" - Allow
@everyoneto use the command - Attempt to use the command as a user ...
Additionally, if I create guild commands with a default_member_permissions value of "0", no commands are visible to non-admins even if no default_member_permissions is set for the application commands.
Setting it to "0" will prohibit anyone in a guild from using the command unless a specific overwrite is configured or the user has admin permissions.
Discord appears to be ignoring the overwrite.
The everyone overwrite is treated specially and refers to the permissions in default_member_permissions
Granting the permission to a role rather than @everyone does appear to resolve the issue.
Is the specific @everyone handling actually documented somewhere? Also, the fact that the client shows @everyone having permissions that it actually doesn't still seems like an issue (though, granted, a different issue to the one reported here).
| Slash Command \*\* | </NAME:COMMAND_ID> | </airhorn:816437322781949972> |
mentions are only available for slash commands since other application commands aren't global in the same way
Description
This issue is similar to #5319, but applies to webhooks created by the bot itself, not part of the interaction system.
- External emojis still work with user-created webhooks.
- It's not because of a bot token also being sent, I've tested without bot too.
Steps to Reproduce
Have a bot account:
- Create a webhook.
- Send a message with that webhook containing an emoji from a server the bot is not a member of.
Expected Behavior
I expect to see an emoji.
C...
This is a known issue that was an unintended side-effect of the recent changes to how external emojis work.
This was declared an unexpected breaking change, but I still think Discord should fix the issue, as it affects a lot of bots.
A little update from another discord user:
the tupperbox / pluralkit devs have spoken to them ( discord devs ) abt fixing it but discord is currently like 'nah, we're gonna keep it like this for now'
come on Discord, just ban the specific bots mimicking nitro and leave others alone
Description
my bot wont ping a role in interaction.reply my bot has MentionEveryone perms as well as admin in the server (Slash Command)
Steps to Reproduce

Wont ping the role
Expected Behavior
It should be pinging the role @Session Pings
Current Behavior
The role is not being pinged
Screenshots/Videos

Since this has now been implemented I am specifying this feature request to having prefilled arguments in the application command tag which would work like:
</NAME SUB_NAME [ARGUMENT:VALUE]:ID>
this would copy the prefilled arguments to the textbox.
This would be helpful for advanced moderation e.g. when you view a moderation case the developer could embed a command like
</REMOVECASE [CASE:12]:1234567890123456789> to easily remove the case without needing to search for a command...
Another way to implement it without inventing a new syntax is using query parameters, so a command mention could look like </data:996947661854867477?name=Blaze>.
Definitely seconding this though - it can help with migration as bots add commands and have to reorganise, and I believe @VelvetThePanda has some more complicated use-cases where other options don't quite work.
I hope your bot never gets certified. Dumbest thing I've ever read related to security.
Ah yes, thanks for being so nice /s
Maybe don't act like the average offended Twitter user? Talk to me like a normal human being and tell me exactly why and how I'm stupid. It's like @ooliver1 said, it's really unprofessional. Jesus christ just leave sentences like this out.
If someone finds a critical zero day on your bot, IP whitelisting won't help you. The attacker will have compromised the bot...
lmao I just saw the edit
Most security mechanisms are good to go, especially a whitelist system.So don't put words in my mouth.
how much of a hypocrite can you be? You're literally assuming everything about me and how I do things just so your arguments work.
IP Whitelist avoid that dangerous people use your token for raiding your server !
So it's like a firewall and it's very usefull for protect your own discord bot
Currently, if a user interacts with any Component or Context-Menu command, you can only respond by sending a message.
The Discord client on desktop does have Toast support builtin. (They show up if banning or timing out goes wrong afaik)
I think it should be possible for bots to respond to such Interactions by sending a Toast message (For example when giving roles a "Role added" toast is less intrusive than a whole message)
7c4c497 Update the thread archiving docs (#5365) - ajpalkovic
7c5e883 Update channel type names in other places (#5330) - advaith1
I can reproduce in the JDA server (125227483518861312) which does have access to forums. I cannot create a forum with a bot, but I can with the client.
What's the full request you're making and error you're getting?
What's the full request you're making and error you're getting?
Request:
curl \
-H "Authorization: Bot $token" \
-H 'Content-Type: application/json' \
-d '{"name": "test-forum", "type": 15 }' \
-XPOST https://discord.com/api/v10/guilds/125227483518861312/channels
Response:
{
"message": "Cannot execute action on this channel type",
"code": 50024
}
I think this'll be fixed naturally once it fully rolls out
It's just gated to english only and certain client versions it looks like:
- filters:
- guild_has_feature: [COMMUNITY]
- guild_member_count_range: [200, '*']
- user_locale: ['en-US', 'en-GB', 'en-CA']
- client_build_number_range: [129531, '*']
So, you can try to fake those headers
But in hindsight, definitely doesn't surprise me it doesn't work for bots, but nothing I can realistically do a...
Description
Most of the servers have a bot-commands channel or other specific channels (or specific roles for commands etc.). Setting default permissions to all applications one by one is tedious for me. So I think it would be an easier and useful way to setting command permissions for server moderators/admins.
How it works?
Default permissions will be automatically applied to all applications' default permissions. (If no permissions have been applied to application.)
Conc...
That's somewhat ridiculous, why does the code not exempt bots from locale or build number checking?
There's certainly no way for now to see what commands the bot has and manage a particular command externally without writing a program. I wonder if we can manage commands for a bot from the dev portal. Let's say we wan't to delete a command. We can just head over to the dev portal and delete it. It will be more convenient than writing a script to delete it. We should also be able to edit the basics of a command like description default_member_perms dm_access n all...
just wondering, so when the mobile app also support multi account login?
I don't think there were any plans to bring account switcher to the mobile app. Would really love to see one though.
Small Idea I just wanted to throw in. I would really appreciate it if the results that come up in the command browser when searching commands could be matched even more fuzzy than they are at the moment. As of now, it just checks whether the given strings is a simple substring of the full qualified name of a command. It would be great if they results could match as fuzzy as in the little concept video I included below.
Fuzzy matching allows for way faster and more convenient searching of a...
Is it intentional that there is no audit log entry for disabling invites?
Description
It seems the "hide after inactivity" option for threads is not working properly and is not closing the thread after the inactivity duration
What happens is that the threads will not be shown in the channel list of participants, but does not get archived (basically like a forum post)
This results into hidden active threads that can quickly result into servers hitting the 1000 threads cap
Steps to Reproduce
- Create a thread with any "HIDE AFTER INACTIVITY" amount
- ...
A helpful CM in the Discord Admin Community pointed this out:
https://github.com/discord/discord-api-docs/pull/5365
It has been mentioned that:
Threads automatically archive after 7 days of inactivity (as a server approaches the max thread limit this timer will automatically lower, but never below the
auto_archive_duration). "Activity" is defined as sending a message, unarchiving a thread, or changing the auto-archive time. Theauto_archive_durationfield previously controlled how ...
It sounds like this is working as intended. The docs were updated yesterday to reflect this change.
We'll keep an eye on how many servers are hitting the thread limit as always, but right now it's seven, across all of Discord which is a good sign that things are still working.
Apologies, you were right about it not working :D One of the parts of the new system actually didn't get deployed, so I've kicked that off and I'll make sure that happens today!
Amazing! Thank you for the attention and care @ajpalkovic <3
For me as a bot developer, I wish there would be a websocket event for creating AuditLogs. This would make it easier to read out the AuditLog.
I have fixed this on main. It should be deployed soon. Thanks for reporting!
just wondering, so when the mobile app also support multi account login?
I don't think there were any plans to bring account switcher to the mobile app. Would really love to see one though.
Yeah, would be nice
Are things working better now?
I made a bot solution for the auto-archive before the bug report, so my threads went down from 1000 to 100, which makes me unable to confirm if things are better now
But I can try to turn the bot off to make sure or make 900 threads (?)
An endpoint with the ability to utilise the already implemented pause invites feature could be useful for bots.
[discord/discord-api-docs] New comment on discussion #5371: Ability to disable invites using bot API
Bots can already do it:
- GET the guild to get the current features array
- add
INVITES_DISABLEDto the array - PATCH the guild with the updated array
In addition to that, Slash command mentions seem to be implemented quite inconveniently in general on Android.
When tapping a mention, the given ID is not obeyed at all. Instead the command name is just inserted into the chat bar and the command browser opens as if you searched for this name.
Is there any reason for this behaviour?
iOS also just inserts the text
Now works on android too (it was in alpha for a few months)
do not set the command nsfw field, it is not released and will change in the future
I'll stop using it when it stops working. It's an essential feature.
That problem on all mentions in an embed.
Description
USE_EMBEDDED_ACTIVITIES is not visible in required permissions, and if the command only has that one required permission, it opens a blank modal.
Steps to Reproduce
- Create a command with
USE_EMBEDDED_ACTIVITIES(549755813888) as its default permissions. - Look at required permissions field in the slash command configuration in the integration page.
- Notice it shows a blank modal.
Expected Behavior
It would say what permissions the command requires.
...
As a workaround, you can try the lowercase latin letter Satillo ꞌ
https://www.fileformat.info/info/unicode/char/a78c/index.htm
Great use case, I'd like to see private threads too, but frankly I just can't wait to get access to forums in general.
As a workaround, you can try the lowercase Latin letter Satillo ꞌ or the Hebrew letter Yud י which look similar to an apostrophe and are accepted by the current command validation.
-
'LATIN SMALL LETTER SALTILLO' (U+A78C) - ꞌhttps://www.fileformat.info/info/unicode/char/a78c/index.htm -
'HEBREW LETTER YOD' (U+05D9) - יhttps://www.fileformat.info/info/unicode/char/05d9/index.htm
Note: As Hebrew is a right-to-left language the symbol may be more difficult to position in the t...
The Ukrainian language uses an apostrophe. Omitting it may change the meaning of the word. Currently the apostrophe can't be used in command names. I request to include it in the name validator.
Great use case, I'd like to see private threads too, but frankly I just can't wait to get access to forums in general.
Hey,
i am the lead-developer on a 75k member discord server (704715447764779178) and we thought about rebuilding our support ticket system that is currently using private threads with the new forum channels when they gonna get released.
Sadly in the docs it's stated that forum channels will only contain public threads so such a rebuild wouldn't be possible.
In our ticket system we got multiple categories (report, ticket, bot-support, applications) of ticket types you can select from a d...
Any update on datepicker for commands?
thewes no pwobwem with the ui tehe uwwuw it nevew had any pwobwems befowe owo nuwzzwes uww feet uwwuw it wiww nevew have pwobwems meow nyaah~ :3
i had a stroke trying to read this
Discord does not give any ETA.
There is no Announce for this to be available. At least i have not seens any.
the repeated, automated performance of actions towards the Discord API a violation of their Developer ToS.
that means i can't make bot status change automatically after some minutes?
I'll stop using it when it stops working. It's an essential feature.
It can stop working at any time, and the discord developers have stated themselves you should not use the field until it is released. Nothing is stopping you using local validation of the channel.
Description
When an ephemeral message is edited, either through a chat input command interaction reply edit or a message component interaction update, the value of allowed_mentions is completely ignored. That means that, whether you've previously passed allowed_mentions as { parse: [] }, for example, or you passed that value in the edit, both will be ignored and the users/roles will always be pinged upon editing. The same behavior cannot be replicated with non-ephemeral messages. Also ...
Nothing is stopping the discord devs from releasing an essential feature a year after it was promised. I don't want my users to view nsfw commands in normal channels, it's a bad look.
This PR is an attempt to clarify, expand, and organize the existing Gateway documentation. I'm not going to merge this for a bit since it's large (and maybe controversial). I also wanna verify my understanding of a few of the Gateway concepts, and understand if there are any sections that need to be expanded more. Hopefully this isn't a flop lol
Main files are docs/topics/Gateway.mdx, docs/topics/Gateway_Events.md, and docs/images/gateway-lifecycle.png
🚧 TODO
- [ ] I'm making ...
Sad to remove a tutorial :/ we can add it back eventually, but Gateway needs to be removed which will require a decent bit of work.
Also they are removing their free plan unfortunately so it's going to be outdated in a bit.
I'm not sure this adds any additional information (and the above are technically API errors as well)
I'm not sure this adds any additional information (and the above are technically API errors as well)
The information this PR is suppose to add is that not all errors are Invalid Form Body and not all errors include a list of errors i.e. .errors list.
just clarifies it a bit i think. feel free to modify the wording a bit if you want.
Create a new guild command. New guild commands will be available in the guild immediately. Returns `201` if a command with the same name does not already exist, or a `200` if it does (in which case the previous command will be overwritten). Both responses include an [application command](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-object) object.
Create a new global command. Returns `201` if a command with the same name does not already exist, or a `200` if it does (in which case the previous command will be overwritten). Both responses include an [application command](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-object) object.
96bd188 document APPLICATION_COMMAND_BADGE applicatio... - vvito7
5582b28 Update explanation of command character limit, ... - infinitestory
Yeah...an eventual goal of mine is to write up some sort of style guide so we can standardize things like tables across the documentation. Right now, very inconsistent though :/
They aren't all using this format.
- Some tables use question marks.
- Some tables have a Required column as you have noticed.
- Some tables have a Default column that implies it's optional.
- Some tables even use all the three at the same time.
It's just "nor...
for now, gunna close this since the other query params one follow the other pattern. definitely would like to update them to be the same one way or the other in the future though.
| components | array of [component objects](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/component-object) | Components included in the action row. Cannot include another action row |
03ba219 Add scopes field to integration structure (#5... - shiftinv
4f19243 Correct mislabeled column header (#5275) - UndarkAido
I believe this is just an experiment right now
it is out to all community servers as of today
I like the idea of checking links locally, but I agree with @advaith1 that npm install shouldn't be modified here. Also with this, npm run build would be run twice in the Github workflow.
@SuperchupuDev tried to touch on it in the explanation, but .mdx is required for the break tags (<br/>) which is what let me convert the intents list into a table (which is easier to read than just in a code block). im not set on this choice if most people disagree with it.
(side note: im working on some new components that will require some files to be converted to .mdx so im thinking this will become a more common pattern, or all files just may be converted at once.)
Description
I am unable to see slash commands for new bots in the UI when typing / in a server I own with more than 50 integrations. (I define "new bots" as bots that are not shown in the integrations tab due to the visible integration limit; they are defined as "old bots" otherwise.) All of the bots have the applications.commands scope enabled. Invites of some of the old bots and none of the new bots used the permissions query parameter.
I was able to see slash commands from ...
ah i see now, definitely in favor of mdx files in the repo! i think converting every md file to mdx can be a good idea
So many use cases that I can do if this idea is implemented in whatever method
50 is a hard limit, that's why they dont display after the limit is reached. afaik they have no plans to change that due to infra issues and a very low % of servers running into the limit
Hello everyone, I have a feature request that is usefull !
I want to add a time options on slash command which convert for exemple "1y20m10h40min10s" (1 years 20 minutes 10 hours 40 minutes and 10 seconds) to Unix Time (sended to bot).
Very strange that your markdown parser doesn't support the HTML br tag for native md files (renders just fine in GH for example), but way happier to hear that it actually supports mdx. Gonna have to plug https://github.com/IanMitchell/hackweek-discord-api-docs again which did indeed do this md=>mdx conversion which allowed us to make a lot of usability changes.
Does support for mdx mean that we can contribute our own components in this repo? I.e. the first thing I'd do is copy the Snowflak...
The internal API validation for setting this feature is a bit incorrect, and I've just created 6 public update webhooks when setting BOTH community and invites_disabled features in the same api request. The backend creates the public update webhook but errors with a 403 on the invites_disabled feature as the community feature wasn't initally set. This in turn doesn't remove the public_updates webhook but doesn't save it as the webhook, either. Then another webhook is created on the next reque...
That'd be awesome! Thank you for what you do, @shaydewael.
Oh lol I just made myself very confused... I redid this PR later but with more new tables in #5346
Woops, I forgot that I had made #5275 when I made this, now that it's been merged I've removed that header from this commit.
@ckohen we were discussing that in dapi yesterday :)
I encountered this bug today. I set the auto_archive_duration to 1 hour. After 1 hour, the thread is hidden in the client, but it is not archived. I can still react and press buttons in it. And for what it's worth, discord.js does not emit a threadUpdate event after this hour is up, which indicates to me that the API is still broken around this.
@MarcusOtter as people mentioned earlier in this thread, that is an intentional change documented in #5365; auto_archive_duration now controls hiding, not archiving
Ah, I skimmed the docs PR and missed the last part. Thanks.
Threads automatically archive after 7 days of inactivity (as a server approaches the max thread limit this timer will automatically lower, but never below the
auto_archive_duration)
Hello, since its beginning, discord has been the target of a lot of exploits and botting software.
Having improved its security with custom captcha and hcaptcha bot detection, discords API calls still remain unprotected and easily compromised.
Most apps/sites use signing of HTTP requests to fight more efficiently against botting/exploiting API's and networks, such a security measure is also quite easy to implement.
This is just a suggestion and would outdate/block 100% of today's p...
their devs are so bad lol.. shouldve been added since the start
what are you talking about? if the official Discord clients can do a request then anything can technically do the request.
yes, ofc but people would have to reverse enineer the platform, etc...
- wouls still outdate block all current programs exploiting api
- skids/skilless people will have a hard time making such programs
- There wont be open 10k open src acc gens / mass dm etc... programs on github
within a week, everything would be leaked again though
You have a point, but I don't understand why they shouldn't implement this, took me months to get that level and a lot of trouble, a lot of people have quit trying to use TikTok API's.
( they also have a big default which is leaving they api compatible with lower versions, yes first tiktok versions still works, which means that they api still remain vulnerable but still less exploited, I think that discord would take care of this problem )
My main point is that its too easy to missuse and spam api's, thats it.
I can simply open devtools copy a request and make a loop and there I have it, mass dm, account gen, bruteforce, nitro gens/boosters etc...
Discord has anti-abuse measures to block malicious use like that. and you cannot "gen" nitro and boosts out of thin air
Description
Setting INVITES_DISABLED and COMMUNITY features in the same API request causes an unsuitable state.
The backend creates the public update channel follower webhook but errors with a 403 on the INVITES_DISABLED feature as the guild didn't have the COMMUNITY feature at the beginning of the request. However, this doesn't remove the public_updates webhook, but doesn't save it as the public update channel follower webhook either, creating a phantom webhook that cannot be delete...
Addtionally, when fixing this issue, would a dev please remove all or all but one of the public update channel followers from guild ID 755083284416954428?
yh thats why discord had to revoke all promos on the last collab with https://www.toweroffantasy-global.com because it got clearly spammed to hell, and people could gen them almost out of "thin air"
without mentionning the million codes made with https://medal.tv
Assuming you mean this, the purpose is not to protect against automated systems. It is to ensure that the request is not tampered with (in particular, for situations where the request is not protected by TLS at every stage between the client and the server). While that is quite interesting, it is not very applicable to anti-spam systems.
Its not really spam that targetet here, just generally the missuse of discords api
+1 to adding support for long and/or short day formatting options. A bot I am developing features a reminder system, of which users can set daily and weekly reminders for whatever they may need. When users create said daily or weekly reminder, the bot will reinforce the time (and day of the week) that they'll be reminded, mostly for confirmation reasons.
While I am able to use the t (short time) formatting option to display the correct time-of-day for the user for daily reminders, the s...
@ajpalkovic
Hi, is there any way around this change?
Threads in my server get used more than normal channels, archive after 1h or 24h kept our sanity.
Now with them archiving after 7 days, I have approx 40 threads open now.. (in my channel list) which is hell.
If you want to see every time AutoMod has put someone in timeout, there isn't any way apart from manually storing each event for when AutoMod triggered. Can we either have more data in the audit log which allows us to query the audit log and built this ourselves, or alternatively give us an endpoint (similar to /{guild_id}/bans) which allows us to directly query AutoMod logs. It's also not possible to just use "channel.history" or any kind as the message objects don't reveal any information r...
Good point, although if discord implements signing, it should be more than just 1 header (most companies just use a hmac sha1 hash with a "secret" key) better would be an own hashing Algorithm for example (2 different algos that hash 2 different strings for example current time+request body the other algo hashes request url + fingerprint) now the Algorithms need to be obfuscated ofcourse so ollvm or vmprotect may be a good choice + anti debugging stuff.
It's also not possible to just use "channel.history" or any kind as the message objects don't reveal any information regarding AutoMod.
They do...
If you request the messages in the channel that the automod notification was posted, you get this:

yh thats why discord had to revoke all promos on the last collab with https://www.toweroffantasy-global.com/ because it got clearly spammed to hell
{{Citation needed}}
people could gen them almost out of "thin air"
One cannot simply get free Nitro or Server Boosts just by calling/spamming some API endpoints. If they really can, {{CN}} as well. If you meant something different ...
This is also a issue for the people who are doing the giveaways knowing who entered as well before the giveaway is done!
Not knowing who entered means not knowing who to let know that there is a giveaway!
Currently, if min_length and max_length are the same, it displays the error "Must be between X and X in length.", which is good for when min_length and max_length are different, but when they are the same, it is badly worded. A better way to display this would be "Must be X in length." or "Must be X characters in length.".

discord.gg/discord-testers was archived and the new one is no longer public. Bug reports are now reported on support.discord.com.
According to Grammarly and Thesaurus.com, it is correct the way it is. The period goes inside the quotation mark.
Ppl disliking it are prolly just skids that are worried to not be able to make discord scripts anymore lmaoooo, and yh I am talking about some serious algorithm including different encryption methods
I mean u can just sniff http calls and simply replicate the process not even having to reverse engineer anything or look at the src. Scripts on GitHub show how simple it is. This is the main issue I am talking about.
Are you sure you're not just doing armchair security? This wouldn't stop scripting and it would likely be reverse engineered within a day.
At most it would just obsolote the older ones but if the people actually care about sending spam requests they would... you know... update their scripts?
And I see that u are disagreeing with my statements, I know what I am talking about, just look up "discord promo gen" and you'll find a scary lot working ones. If you ever looked on how to gen promo codes, you would understand that I am talking facts here.
yes, of course but it would be harder and if discord does it's job right people wouldn't be able to reverse it, frequent updates and skilled devs are enough to keep it safe.
@xtekky they don’t rly know what Reverse engineers are capable of…
there's a huge community around discord, all it takes is one person to reverse engineer it, and it would be spread around fast
nah, bro people would be selling it not leaking and the reason why there is a big community around it is because discord is too ez bruh they need to change, I don't get why people so mad
and I haven't seen mssdk or Argus around here or even selling same goes for x-bogus on TikTok I have seen a lot of people complaining and abandon because of that.
Yeah, maybe they will just sell it like how people do with TikTok.
Discord adding this = less skids and less api abuse
The people hating on this idea are skids who don't know how to reverse engineer 😂
Yeah I don't see any negative point on adding that lmao, the only one being having skilled devs, a feature discord apparently does not have.
Good security devs against reverse engineers is incomparable, big advantage on the company side.
cool really cringe being the easiest platform to be reverse engineered.
last L u took is when u had to invalidate all promos on towerof fantasy
I'm just trying to make a good suggestion please elaborate a main negative point on why this is a bad idea
This post really appears to be speculation without any real substantive discussion or viable technical suggestions - and thus has devolved into trolling.
As such, I am locking this post.
This post really appears to be speculation without any real substantive discussion or viable technical suggestions - and thus has devolved into trolling.
As such, I am locking this post.
Changed the not working link to a working link.
@Meqativ: Ignore the above gibberish. That was clearly just a typo and it is trying to justify the mistake by "citing" articles which have nothing to do with that.
no, IllagerCaptain is correct.
Description
For over the past 24-25 hours, my bot has had the Interaction Followup endpoint ratelimited with a cloudflare 1015 error.
These ratelimits are continous with a retry after of 1 hour after which I get 2-5 minutes without a ratelimit before immediately being hit with another 1015 ratelimit
Only the v10 API is affected (at least for me)
Steps to Reproduce
curl -vvv "https://discord.com/api/v10/webhooks/ID/TOKEN"
Expected Behavior
A proper discord response (200)...
Same applies to slash command responses for me. Emotes of servers the bot isn't member of aren't rendered anymore. Weirdly, they are rendered very well when using buttons.
@IllagerCaptain & @advaith1 You guys are wrong. Your references are referring to speech and citation, this is an emphatic quote and is correct for the period to be outside to keep the term intact.
However, following your assertion that the paragraph is just description text... not a "User Type string" or anything technical; one could argue for the removal of all of the quotations marks in this snippet which would probably be cleaner.
The deprecated versions of the API have a set deadline which is not mentioned in the api versions table. I think it would be very helpful to have them documented here because those deadlines are otherwise very difficult to find. (I don't even know where to find them tbh)
Considering Discord is a US-based company and uses American English throughout, the period is in the right spot. Also Hacktoberfest is in October, you posted this PR early
Since Modals are a thing in the Discord API, shouldn't Popups be introduced as well?
The base functionality would just be showing messages. For example you have a popup saying why a certain command failed with a button dismiss it.
I think it would be a good way to keep modals consistent and neat. 👍
Probably a duplicate of #4056
[discord-api-docs] New discussion #5389: Plans to change the name of the values of a boolean option?
Currently when an option is of type "Boolean", its values are "True" and "False", something that cannot be clear to some users, in my opinion it should say "Yes" or "No" and according to the language that the Discord user has, since currently besides saying only "True" and "False", it is always in English.

It's close, but not at all what I meant when I mentioned Popups 😁
f9b3497 Consistent object table columns (#5346) - UndarkAido
I believe this issue was fixed a while back
1a7f76c Fix game selling deprication link to support we... - victorioxd
It's also not possible to just use "channel.history" or any kind as the message objects don't reveal any information regarding AutoMod.
They do...
If you request the messages in the channel that the automod notification was posted, you get this:

This is much better than I thought it was, but still could be easier :)
@ckohen this is probably a conversation for a different context. i'll likely just remove the mdx part from this PR and save it for another, broader one.
I would prefer if the mdx changes were saved for a separate pr, I think it'll make the diff more obvious to read.
Does this actually ping, or just highlight in the app?
This is currently intended behavior. I think there are some threads in the discussions tab about this if you want to discuss that further.
This change isn't necessary.
c908891 Update OAuth2 Base authorization URL (#5237) - Zoddo
0d23c51 Fix Update User Achievement endpoint (#5260) - advaith1
Hi, this potentially sounds like you're on a shared host, which may be resulting in the Cloudflare block you're seeing. You said that only the v10 API is affected; do other API versions work?
b3a575c add application_commands field to audit log str... - Mateo-tem
Sorry, we don't plan to update support for this anytime soon.
01a1567 Move Application Command Interaction Data Optio... - apacheli
Hi, I've merged your PR but please keep language in this repository appropriate in the future.
7e3e3a3 Document ban delete_message_seconds and remov... - advaith1
This is currently working as intended.
do you have access to our react native android app? I feel it should work there
The comments here are correct, the fields you're talking about are read-only.
Yes, audit log entry info values are strings, so we technically can't share this definition with channel api.
[discord/discord-api-docs] Issue opened: #5390 \`image/apng\` is unsupported when uploading stickers
Description
Perhaps this would be better fitted as a feature request? I'm unsure, so I'll just go on ahead and flag this as an issue:
Using POST /guilds/guild.id/stickers with the type of the file set to image/apng yields a 400 with the error code 50046 - Invalid Asset.
For clarity, I do not mean the actual Content-Type header in the request - that is correctly set to multipart/form-data.
image/png works, so I'd generally not bother opening such an issue, but in th...
I also opened a discussion related to this a while ago https://github.com/discord/discord-api-docs/discussions/4941
It would be better if the type is automatically determined by discord.
image/apng is not a mime type sadly, which is an example of why #4941 should be implemented.
Adding this to our bugs backlog!
9a1a57b Update forum channel docs - ajpalkovic
I think I got everything but hard to say for sure :)
| id | snowflake | the id of the tag |
| topic? | ?string | the channel topic (0-4096 characters for `GUILD_FORUM` channels, 0-1024 characters for all others) |
73d3bfc Update docs/resources/Channel.md - ajpalkovic
b162bfa Update docs/resources/Channel.md - ajpalkovic
b487c88 emoji clarifications - ajpalkovic
the emoji id types should be “snowflake or number” or “snowflake or 0”
what does "name of the unicode emoji" mean exactly?
In channel flags 1<<4 is missing for GUILD_FORUM channels
what does "name of the unicode emoji" mean exactly?
uh, I think it's like thumbs_up for example?
idk should be the same as other places, like welcome_channel.emoji_name for example
the emoji id types should be “snowflake or number” or “snowflake or 0”
why?
###### Default Reaction Structure
| Field | Type | Description |
|------------|-------------------|-----------------------------------------------------------|
| emoji_id | snowflake or 0 | the id of a guild's custom emoji, or 0 if a unicode emoji |
| emoji_name | ?string | a unicode emoji, or null if a custom emoji |
###### Forum Tag Structure
| Field | Type | Description |
|------------|----------------|----------------------------------------------------------------------------------------------------------------|
| id | snowflake | the id of the tag |
| name |...
the emoji id types should be “snowflake or number” or “snowflake or 0”
why?
Snowflakes are documented to always be a string in the HTTP API, unless the request has incorrect data. 0 is returned as a number, not a string, so it does not fit the requirements of a snowflake field.
honestly, ideally this field should just be null not 0, as I mentioned earlier
this should be above the Default Reaction Object section
Minor nitpick, but shouldn't the other cells also line up with this one?
| Features | Required Permissions | Effects |
| ---------------- | --------------------- | --------------------------------------------------------- |
| COMMUNITY | Administrator | Enables Community Features in the guild |
| INVITES_DISABLED | Manage Guild | Pauses all invites/access to the server |
| DISCOVERABLE | Administrator* | Enables disco...
huh, indeed it is, weird
How do I specify that, ?default_reaction_emoji? I'm guessing?
| COMMUNITY | Administrator | Enables Community Features in the guild |
| INVITES_DISABLED | Manage Guild\*\* | Pauses all invites/access to the server |
| DISCOVERABLE | Administrator\* | Enables discovery in the guild, making it publicly listed |
\* Server also must be passing all discovery requirements
\*\* Server must have `COMMUNITY` enabled
i think the community requirement is just for now and it will probably be removed in the future
Pretty sure comm is only needed just now bc it places you in the experiment.
93ba9d3 nullable default reaction - ajpalkovic
can this field only be set on forum channels, or other channels too?
if it can only be set on forum channels, that should be mentioned
if it can be set on other channels, why is it only visible on forum channels in the UI?
Will the channel template field be documented?
Will the channel template field be documented?
Is it even in testing?
On the guilds I have access to play around with forum channels, this field can't be set (It gets ignored / 403)
oh, i didn't know setting it got blocked
Yes, any other route and using this endpoint with any other api version works.
Also, this is a DigitalOcean VPS not a shared host
@zeylahellyer I have also made a support ticket and have received no response for some reason...
Could this still be changed to be consistent with other emoji in the API?
"emoji": {
"id": 123,
"name": "chillin",
"animated": true
}
Description
When using the 'created thread' event it dispatches it twice rather than once.
As such when using a moderation bot that logs thread creation, it posts it twice.
Steps to Reproduce
Use any moderation bot to log thread creation, set up a channel and have it log/post it
Expected Behavior
For bot using the thread creation event to dispatch it once
Current Behavior
bot using the thread creation event dispatches it twice, thus posting thread creation messages t...
From what I can see it's been happening since the 16th of august or prior.
This seems like a mistake, I don't think you can convert a forum channel type?
This character range also needs to be updated
Is this copied client-side or in the api?
I think this table is missing applied_tags
Just in case it isn't already known, the audit log handling in the client can't handle tag updates on posts:


May I ask why it is 0 instead of being ommitted/nullable? Seems pretty inconsistent to me :man_shrugging:
Having the same issue just now. Created a few webhooks, I suppose it's a rate limiter.
Uh, not right now, I'm just documenting what's implemented, but feel free to file a feature request for it
Will the channel template field be documented?
Nope
In #5391, the available_tags feature has been documented which introduces a new Forum Tag Object. Unlike reactions and guild custom emoji, this does not use the standard emoji object layout of name, id, animated. Instead it has an emoji_name and emoji_id field, which are mutually exlusive.
I'd prefer if this was more standardised and always provided a partial emoji, similar to reactions:
Custom:
"emoji": {
"id": 123,
"name": "chillin",
"animated": tr...
Interactions for apps without a bot integration in the context will have their app_permissions always have Attach Files and Embed Links in the next API deploy
Adds message content intent section under the intents section, and changes the warnings scattered throughout the docs.
Won't be deployed until message content privileged intent is enforced
Description
When replying to a normal message sent by the bot, it is considered a "mention" and the bot is able to see the message content of the message replying to the bot.
When the message you are replying to was sent by a slash command, this no longer works. Replying to the message never counts as a ping unless the bot is mentioned separately in the message, and the bot cannot read this message content.
I have a bot that was relying on being able to "ping-reply" to messages sen...
Here's the letter Yod - or more correctly spelled, Yood: י.
I object to this, because ' & 'יdon't look alike at all in some fonts (Discord's one doesn't have Hebrew support, so it fall backs to system default), where Yood has a "roof" like a reverser`
I'm aware of letter variations. On my phone (Android) and computer (Arch Linux), they both display similar to an apostrophe.

Although, as you mentioned, the system default font can potentially vary and display differently for other users.
There are other issues with the Hebrew as mentioned, but the Latin Saltillo option still seems like it shouldn't be a problem unless some...
Did some edits to the emoji fields
looks like:
- the emoji id and name fields are not optional
- emoji_id is 0 if a custom emoji or no emoji is set
- emoji_name is null (not an empty string) if a unicode emoji or no emoji is set
also emoji_name is not the name of a standard emoji, it is the actual emoji like
emoji_name: "🅰️"and in other emoji fields, for custom emojis,
nameis the name of the custom emoji; why is that not the case here?
fyi, i...
77473c8 Update forum channel docs (#5391) - ajpalkovic
In my server, I might use more than 50 integrations/bots because of multiple reasons:
- Most of the invited bots that I find useful are built for specific purposes (e.g. server lists, games) or have premium/unlockable features (e.g. 24/7 music).
- I want to have backup bots available in case a particular bot goes offline or does not respond to interactions for some reason.
- I would prefer not to kick some bots because of the bots' popularity or the impact on the overall member count (an...
The ML spam filter has been released to all servers, so I edited the note about unreleased triggers. The mention spam filter is out to about 20% of servers currently.
Intents must be requested through the dev portal, not through support.
Apps that qualify for verification must be approved for the privileged intent(s) [during verification](https://support.discord.com/hc/en-us/articles/360040720412-Bot-Verification-and-Data-Whitelisting) before they can use them. If your app is already verified, you can request additional privileged intents in the Developer Portal.
Also I think the verification team now wants intents to be requested...
typo
To specify privileged intents in your `IDENTIFY` payload, you must enable the privileged intents your app needs. To toggle privileged intents, navigate to your app's settings in the Developer Portal. Click on the **Bot** page, and under the "Privileged Gateway Intents" section you can enable the toggle for each intent your app needs. Verified apps can only use privileged intents once they've been approved for them.
> Like other privileged intents, `MESSAGE_CONTENT` must be approved during verification or afterwards by applying in the Developer Portal. You can read more about the message content intent review policy [in the Help Center](https://support-dev.discord.com/hc/en-us/articles/5324827539479).
including (but not limited to) the
content,embeds,attachments, andcomponentsfields
according to everything else this is an exhaustive list; if it isn't then the full list should be published, instead of a partial list.
`MESSAGE_CONTENT (1 << 15)` is a unique privileged intent that isn't directly associated with any Gateway events. Instead, access to `MESSAGE_CONTENT` permits your app to receive message content data across the APIs, specifically the `content`...
The POST /channels/{channel_id}/tags, DELETE /channels/{channel_id}/tags/{tag_id}, and PUT /channels/{channel_id}/tags/{tag_id} routes are undocumented. Is this because we're not supposed to use them or because of an oversight?
those routes are deprecated and were replaced with PATCHing the channel with the new tags array
Couple things here:
- Discord is eventually consistent, events may come through 0-N times.
- Thread "create" happens at many different points when you interact with threads and contains a
newly_createdparameter to indicate actual creation. ref1 [ref2](https://discord.com/developers/docs/topics/gatewa...
pretty sure the new Android app uses commands v2 so this no longer applies
fyi, it'll return null instead of zero "soon"
given this PR is merged – and thus available for implementation – won't this be a breaking change?
fyi, it'll return null instead of zero "soon"
given this PR is merged – and thus available for implementation – won't this be a breaking change?
Ah yes, another "may change soon" after a merge.
The
POST /channels/{channel_id}/tags,DELETE /channels/{channel_id}/tags/{tag_id}, andPUT /channels/{channel_id}/tags/{tag_id}routes are undocumented. Is this because we're not supposed to use them or because of an oversight?
Don't use them, we'll get rid of them in the future.
We added support for editing them via the patch channel endpoint, which in hindsight is a much better way to do it because it also allows for reordering tags, which the current APIs don't allow
Ah yes, another "may change soon" after a merge.
There's no need for the attitude.
This is a case of us listening and responding to y'alls feedback!
Before merging this PR a change was merged that switched it from emoji_id=0 to emoji_id=null.
It was just waiting on a deploy, which is why I said "soon", so that you knew it wasn't live right now.
I checked just now and it looks like it was deployed last night, so the docs match the API behavior now, crisis averted!
Preface: I don't consider this a breaking change per se, especially based off of your explanation.
However, the emoji_id field is not documented as nullable in the docs right now (it needs to be ?snowflake).
Ok, I can update the docs for that
As for getting a zero back still, I bet if you grab the channel via the HTTP API it returns null and not zero, is that right?
If so it's just forum channels that are cached in memory on our end that haven't been reloaded yet, hmm
As for getting a zero back still, I bet if you grab the channel via the HTTP API it returns null and not zero, is that right?
Yup, that seems to be the case.
👍 Well "soon" will be a bit longer then :D
But they'll reload all the caches in the next couple of weeks
With the new forum channels it would be really helpful if the resolved partial channels also contained applied_tags for the threads and available_tags for the parent forum channel.
Description
The POST /guilds/{guild.id}/channels endpoint doesn't support setting default_thread_rate_limit by default when creating a new forum channel.
Steps to Reproduce
fetch("https://canary.discord.com/api/v10/guilds//channels", {
"headers": {
"authorization": "Bot ",
"content-type": "application/json",
},
"body": JSON.stringify({ type: 15, name: "example-forum", default_thread_rate_limit: 10 }),
"method": "POST"
});
Expected Behavior
...
there's matched_content as well: https://discord.com/developers/docs/topics/gateway#auto-moderation-action-execution-auto-moderation-action-execution-event-fields
i'm not sure we just want to be listing out random fields as an exhaustive list here—they probably make more sense in the references for the specific responses.
it's impressive how consistently i spell this wrong
I personally use keyboard navigation often and view it as an important accessibility feature. However, buttons currently require repeatedly pressing tab which is frustrating when trying to use buttons many times. I would suggest having a specific keyboard shortcut that jumps to the buttons on the focused message.
Thank you, Smeagol
the mention spam filter is now out to all servers as well.
So I need to transfer a bot from a team to another team, anyway I don't see why you couldn't transfer unverified bots to team you own with a 30 day cooldown of transferring the team's ownership to prevent scammers
As well requiring 2fa or explaining in support or both.
Thank you
maybe something like this?
`MESSAGE_CONTENT (1 << 15)` is a unique privileged intent that isn't directly associated with any Gateway events. Instead, access to `MESSAGE_CONTENT` permits your app to receive message content data across the APIs. For the message object, this applies to the `content`, `embeds`, `attachments`, and `components` fields; for other objects, the affected fields (if any) are listed in that object's documentation.
Updated this a bit—lmk if confusing. I can take a deeper pass after I fold this into the updated Gateway documentation if it still needs some work
\* Server also must pass all discovery requirements
Description
In a bot's profile, the commands in the "try my commands" section (highlighted with a red box) are not showing localized strings.
Currently, my Discord client's language is set to Traditional Chinese (Taiwan)
When I hover over the command, it shows its description:
As you can see, it is in English.
However, the bot supports Traditional Chinese (Taiwan), as shown below, the bot shows the localized command description for the same command.
This issue currently exis...
| nonce? | integer or string | returned only in the `MESSAGE_CREATE` event, can be used to verify a message was sent (up to 25 characters) |
Currently, only 2.5.6 is linked due to bugs on newer versions (https://github.com/discord/discord-api-docs/commit/436481f433091c1df3812e646ad09166350c6caf), but there have been updates since then, including adding Apple silicon support (https://github.com/discord/discord-api-docs/discussions/3229#discussioncomment-2999282), so I added a link to the latest version (3.2.1) while keeping the 2.5.6 link in case people still need it.
8e41a2a Add Message Content Intent section (#5394) - shaydewael
It only applies to forum channel.
762082a Doesn't look like anything to me (#5163) - advaith1
As the Discord Testers is closed for a good while now, the bug report form became the official way to report bugs to Discord that are not related to the api. This pull request replaces the link in the issue templates accordingly.
Description
If you @ mention a bot, it is expected that you receive message content even without needing the message content intent. This is documented on https://support-dev.discord.com/hc/en-us/articles/4404772028055-Message-Content-Privileged-Intent-FAQ
If an embed for a website is uncached, Discord will fire MESSAGE_CREATE with en empty embeds array, and will fire a MESSAGE_UPDATE containing the new embeds array if such an update is necessary. If Discord already cached th...
Description
Unlike the client, the API doesn't seem to deduplicate tag IDs; PATCHing a forum thread with "applied_tags": [123, 123] applies that same tag twice.
The client displays repeated tags fine, editing that thread's tags results in them being deduplicated on the client side.
Steps to Reproduce
curl -X PATCH -H "$AUTH" -H "Content-Type: application/json" \
-d '{"applied_tags": ["977184348098920458", "977184348098920458"]}' \
https://discord.com/api/v10/chann...
68abddf add message content changelog (#5409) - shaydewael
8794b7b Update terms of service and developer policy (#... - shaydewael
Description
Bot-owned webhooks do not provide their content when fetching the messages over the rest API using the bot token as authorisation.
Steps to Reproduce
-
Have an application that doesn't have the message content intent
-
Create a webhook with that bot
-
Execute the webhook with some message content.
-
Attempt to fetch the created message with the bot token as authorisation.
Expected Behavior
The message had content returned by the api.
Current Behavior
Th...
⚠️ Today, message content is becoming a privileged intent for verified bots and apps as previously detailed
Any app that does not have the message content intent configured in its settings within the Developer Portal wiIl receive empty values in fields that expose message content across Discord's APIs (including the content, embeds, attachments, and components fields). Thes...
As a temp workaround, you should be able to use the webhook token to fetch message content in this case
Description
So I have a command /rename command with two options:
playerwhich has autocomplete options and is requirednamewhich is also required, and has to be between 8 and 32 characters
Turns out, the second option needs to be filled in before autocomplete options can be shown to the user if that second option has length requirements. Without doing this, any autocomplete request will 400 for the user (showing "Loading options failed") and won't even be requested from ...
Bots can already view pfp and banner image/color-- with the new beta profile theme option, bots should be able to access those colors too. From what I've gathered by looking at the network requests that the discord app sends when opening a profile, it sends a request to "https://canary.discord.com/api/v9/users/484170415720235009/profile?with_mutual_guilds=false" which includes "theme_colors" item in "user_profile". Now, it's already established that bots won't be getting access to all of the ...
I would love to be able to access this information. It would add a little bit of spice for user info embeds or other small little tweaks on websites with oauth2. Has the same purpose as bots being able to see the banner afaict
The same issue happens to me toady.
The event gets sent per-action taken on the message that gets filtered by AutoMod, which is annoying way of doing it and just wastes resources on both ends, for Discord and the bot developer.
(currently it can be up to 3, so if they add more actions to choose from then it will result in more events being sent for a single message that gets filtered)
Maybe this could be changed to an array of the actions taken on the message vs sending it up to 3 times for a single message blocked.
Again, there isn't enough information here. The issue could be with permissions, allowed mentions, any number of things. I don't see any viable steps to reproduce, let alone a library agnostic report.
Description
Opening an uncached user profile from a replied, context interaction will crash the client.
Steps to Reproduce
- Find a context interaction that was called just anywhere from a user that you don't have cached.
- Click on the user's pfp that's next to the " used " text.
Expected Behavior
loads up the uncached user's profile
Current Behavior
crashes the instant you try to open the profile
Screenshots/Videos
It would be nice to be able to use user and message commands in voice channels by clicking on users/messages in either the text chat or the "participants view":

It's possible to use slash commands in the text chat, so is there any reason this shouldn't be possible?
(I tried submitting this on https://support.discord.com/hc/en-us/community/topics, but the button kept just re...
Description
If you send an Imgur gif link as standard message content, either as a gallery link like this https://imgur.com/gallery/PiLU8VQ or as a direct link like this: https://i.imgur.com/UrxwiQr.mp4 or this https://i.imgur.com/UrxwiQr.gif. It will correctly embed as a gif.
However, if you send this link as the image field of an embed, it only embeds the thumbnail, not the actual gif/video.
Steps to Reproduce
Send a message with this data:
`{
"content": "https://i.i...
probably related to https://discordstatus.com/incidents/sxkj5wqf4q8x
Hmmm I did encounter this issue yesterday, although it is resolved now. Maybe it's an issue with caching or something?
it isn't marked as resolved
Oops that's true actually, I just assumed it had been because link embeds were working for me. Hopefully when it's marked as resolved this issue will be fixed too.
The issue was marked as resolved an hour ago, and this issue still occurs.
@NoahvdAa where have you seen that sort of implementation? Is that something you can do in matterbridge?
I know there's a solution for nsfw slash commands in the works, this would serve as a intermediary fix
It would be very useful if interaction data would also include a nsfw boolean. This way bots could easily check if nsfw content should be permitted or not. While it's normally possible to get this data with an additional API request, this isn't the case when using a HTTP interactions bot. If the bot scope isn't used, the application won't have permissions to GET the channel, meaning t...
The description suggests that these fields are optional; if so, they should be marked as such.
I would like to suggest that you add a description to the modals to have a general information/description about the modal, because a title can't say as much as a description about the modal.
What do you guys think about this?
Description
When a user sends a message with an link, and the link embeds. The message returns an empty list of embeds.
My guess would be that this link is embedded on the client side, but if an users edits the message the embed list is not empty anymore?
Same would be if an user/bot adds an reaction then the embed would appear.
Steps to Reproduce
- Message + Link which embeds, log the message
- Edit message or add reaction, log the message again
Expected Behavior
Li...
do you have the message content toggle enabled? it is required to access content related properties like embeds on other people's messages
Description
if you try using a slash command with attachment options, and you upload a file over the 8mb limit then it will basically freeze and stop the app from sending messages and possibly doing other requests.
The app does seem to make other request liek for avatars, attachments or message history.
Steps to Reproduce
- use a slash command with attachment options
- upload an attachment over 8mb (or the guild size limit probably)
Expected Behavior
Show an error message...
Oh, I should have checked. Sorry.
Description
Including the STREAM permission (512) in a bot-add oauth URL results in "Invalid permissions(s) provided." being shown to the user.
Even if bots can't stream video, it's necessary to have the permission in order to set it in roles and channel overwrites.
Steps to Reproduce
Open an OAuth2 authorize URL that includes bot scope and 512 in permissions, for example:
https://discord.com/oauth2/authorize?client_id=1015396580699942972&permissions=512&scope=bot
...
They are not optional, but emoji_id is now nullable
The Connections Bot uses buttons instead and I think it looks cleaner:

Description
I followed the default tutorial on adding web-hooks with the following settings:
Steps to Reproduce
Copy webhook from discord channel, enter in github webhook payload url.
Expected Behavior
Delivery of message to channel
Current Behavior
Response-Body:
{"message": "Cannot send an empty message", "code": 50006}
Screenshots/Videos
No response
Client and System Information
Safari, MacOS.
Here's the example payload that github sends, I'm wondering whether the issue is due to there not being any content field.
{
"action": "started",
"repository": {
"id": 519462674,
"node_id": "R_kgDOHvZfEg",
"name": "*HIDDEN_REPO*",
"full_name": "Bersaelor/*HIDDEN_REPO*",
"private": true,
"owner": {
"login": "Bersaelor",
"id": 4517582,
"node_id": "MDQ6VXNlcjQ1MTc1ODI=",
"avatar_url": "https://avatars.githubusercontent...
did you add /github to the end of the webhook url?
That was it, never saw any mention of this anywhere, thank you @AlmostSuspense !
Currently (v3.2.1) the GSDK returns only one of the activities instead of an array when accessing Discord.Relationship.Presence.Activity.
If the user has a custom status, it will always show the custom status, so I can't check if a user is playing my game or not.
My idea is basically to either
- return an array of activities (for example: listening, playing and custom status all at once if the user has all of those)
or - return a dictionary where the keys are the type of activit...
+1 This should be considered critical
I have the same issue and it's just killing my dice roller bot (see mentioned issue above) that now we are forced to use Slash commands (it was not a problem with prefixed commands and editing message contents).
This can now be done by right-clicking the command when you type it in:

And from the integration settings:

And also from the interaction reply:

...
The Copy ID button in right-click menus can be enabled through the developer mode. It is often copying an unexpected id, for instance when trying to copy the id of a custom emoji or channel from a message.
Instead of just saying Copy ID, it should say something like Copy Message ID or Copy Channel ID to make this clear. Copying the wrong ID is an extremely common mistake that should not happen and can be easily fixed by this change.
 that now we are forced to use Slash commands (it was not a problem with prefixed commands and editing message contents).
I agree, I have this issue many places in my bot. I have also seen it in large bots such as dyno and giveaway bot recently.
I've had a similar terrible experience the other day, when Slash Commands were forced on every bot: on the existing bot interaction, I couldn't save any modification of roles or channels that can receive slash commands - the popup Save button wouldn't do anything, I could modify but not save.
In other integrations I could save instead; in others I could only toggle the role off, save, but it wouldn't let me save when I toggled the permission back on. I had to delete the bot integration, re...
Description
I've been testing the new slash command control in the integrations area. A couple of observations. All bots are still listed even when there are no permitted commands available. Ideally bots with no permitted commands should not be listed in the slash command menus.
_Originally posted by @bouncingmolar in https://github.com/discord/discord-api-docs/issues/2315#issuecomment-1173098198_
I could live with bots being listed on the side of the suggestion box on Desktop, b...
I agree with @bouncingmolar on https://github.com/discord/discord-api-docs/issues/2315#issuecomment-1173098198 but, even though I could live with that on Desktop, I opened Issue https://github.com/discord/discord-api-docs/issues/5427 because on mobile all bot slash commands are still suggested to you even though they're denied in the channel (by means of channel permissions in Server Settings Integration page).
please hold -- we might change this, sorry for the churn
@daisyzhou how long do we need to keep holding, has a verdict been reached yet?
Description
The X-RateLimit-Reset header is not consistent when doing multiple requests
Steps to Reproduce
- Do a few request to a route that is rate limited
- Observe the
X-RateLimit-Resetheader not being consistent every time.
Expected Behavior
The header should be the same every time.
Current Behavior
Observing the X-RateLimit-Reset header it is different on almost every request
- Reset at: 1661784139.727
- Reset at: 1661784139.732
- Reset at: 1661784...
+1 This should be considered critical
I have the same issue and it's just killing my dice roller bot (see mentioned issue above) that now we are forced to use Slash commands (it was not a problem with prefixed commands and editing message contents).
you can send your message with interaction.channel.send this action send your message like "normal message" and you can get message for update after
+1 This should be considered critical
I have the same issue and it's just killing my dice roller bot (see mentioned issue above) that now we are forced to use Slash commands (it was not a problem with prefixed commands and editing message contents).you can send your message with interaction.channel.send this action send your message like "normal message" and you can get message for update after
In my situation, I would like to edit the original message. I can delete the or...
I would guess this is because API requests are balanced across a bunch of servers, which would all have slightly different clocks. Within the constraints of ntp it is unlikely greater synchronization could be achieved, and with the time it takes your client to get a response back from our server being a non-zero amount of time anyway, its unlikely the greater synchronization would really help that much in practice.
This is probably because you are on a super old app version, the latest stable version is 142.14.
Description
Add intents.members = True to code it breaks on_ready and anything that intents members uses returns nothing. On my non verified bot enabling it the same ways works.
Steps to Reproduce
The only way I can reproduce it is putting message intent in my verified bot and it doesn't work, non verified bot works fine.
Expected Behavior
Member intent returns discord ids instead of nothing / on_ready not breaking.
Current Behavior
When using member intent it retur...
This repository is for tracking issues with the raw API, you will have to talk to the people at pycord directly.
I'd also like to point out that if you are accounting for server offset (which is basically required when using the reset header over reset-after since your local clock is going to be different), you are already way more inaccurate than these differences since the date header (used to calculate your offset) has a precision of seconds.
Description
I have made #5425 but figured this is more of an issue than something that should be suggested.
Since custom statuses were introduced back in 2019, users could have multiple activities, and to accommodate that, the API started returning an array of activities instead of just one. (kind of assuming the backstory but the last part is true)
But the GameSDK is still returning one activity, which means it is not possible to check if a user's friend is playing the same game as ...
Description
I can't click on the 'Enable Discovery' button in the app discovery section of the developer portal, even though my app fulfils all criteria.
Steps to Reproduce
- Create app/bot
- Have it verified
- Fulfil all criteria
- Try to apply for app discovery
Expected Behavior
The button should be enabled.
Current Behavior
The button is disabled.
Screenshots/Videos
No response
Client and System Information
Firefox 104.0.1 (64-bit) on macOS
I would guess this is because API requests are balanced across a bunch of servers, which would all have slightly different clocks. Within the constraints of ntp it is unlikely greater synchronization could be achieved, and with the time it takes your client to get a response back from our server being a non-zero amount of time anyway, its unlikely the greater synchronization would really help that much in practice.
Hey! My issue is that I'm trying to group up requests with the same reset...
The Connections Bot uses buttons instead and I think it looks cleaner
- Is second link button is the reference to target message and did you mean it?
- How did you make the webhook show WEBHOOK badge instead of BOT?
- Is second link button the reference to target message and did you mean it?
Yes.
- How did you make the webhook show WEBHOOK badge instead of BOT?
BetterBotTags plugin from BetterDiscord.
I have this same issue but in the opposite order:
First arg deck is required with a min_length of 6, and a max_length of 6.
Second arg languagae is optional, but uses autocomplete.
language doesn't autocomplete until the first required arg has first been filled out to 6 characters.
There is no Announce for this to be available. At least i have not seens any.
It's mentioned in OPs post
Documentation for many endpoints mentions the event(s) triggered by that endpoint. However, many endpoints were lacking this info or had outdated information. I went through the event list and I think I updated all the impacted endpoints. I was gonna list them but turns out there are too many for that.
Thanks to vxern#7031 for the observations that led to this PR.
Description
After some recent Android update, there seems to be a bug with autocomplete client-side validation.
When using autocomplete option with type 4 (integer) validation seems to be
done against the name property instead of the value property.
These as autocomplete choices are fine:
choices [
{ name: '7', value: 7 },
{ name: '3', value: 3 },
]
But these are not:
choices [
{ name: 'Option 7', value: 7 },
{ name: 'Option 3', value: 3 },
]
``...
You're correct, my bad: I confirm that current mobile app version shows expected behaviour








