already fixed pending deploy
#github-notifications
1 messages ยท Page 28 of 1
Lightweight Discord API library for Node.js.
Provides pure API interaction via type definitions and some helper tools, without excessive abstractions.
This is an issue our infrastructure team is working to fix. It will hopefully be resolved later today.
this will be fixed in the next api deploy
This behavior is working as intended, and developers should not pass authorization headers when requesting data from our CDN unless we have provided you with an Authorization header to use for it. Authorization headers for our API are only applicable to the API at this time.
This behavior is working as intended and is not a bug. Limits exist to protect our infrastructure, and we can and do change limits as we notice abuse vector arise.
This behavior is not something we are able to fix. When an image cannot be loaded by our server, its height and width will be 0.
this behavior was patched last week (though mobile code may still be in the process of being deployed)
This error message looks accurate. You are specifying the type as 1, which implies the component is an action row. components is a required field of that component.
I'm not sure why you're accessing the canary or ptb versions, but ok. We've deployed the update to those properties too.
clicking links to the dev portal in the ptb/canary app (like for server insights) opens the ptb/canary dev portal
We have no current plans to offer custom colors for buttons. This ensures a consistent design experience for users across our apps.
Description
Since #3022 was closed (with good reason in my opinion), I propose this option instead. A select few additional button styles that use preexisting branding.
Why This is Needed
Currently developers have 5 choices for buttons, realistically 4. These are great, especially when doing something that the style is designed for.
The current styles names clearly state what they should do, but they can't quite cover all use cases.
For example say I wanted two ...
Description
Fetching channel webhooks returns webhooks without tokens, even for webhooks that aren't of the follower type.
This issue is inconsistent, some channels of the same guild return webhooks with tokens while others don't.
Steps to Reproduce
GET https://discord.com/api/v7/channels/733139375835185264/webhooks
Expected Behavior
[{'type': 1, 'id': '766078597609029662', 'name': 'phen webhook', 'avatar': '863eed2847a5f82ecd18ce3fd8d59920', 'channel_id':...
This is not a regression - we are no longer sending you the tokens for bot "owned" webhooks.
A few things that were left out by jhgg:
- You can still see the tokens of webhooks created by users AND your bot's own tokens
- Users cannot copy or edit webhooks created by bots
Hello!
Description
In my application, we can create Webhook through the OAuth2 Flow (described here https://discord.com/developers/docs/topics/oauth2#webhooks)
It all worked fine, until some time to day, where we no longer get the webhook.token attribute when retrieving the accesstoken. Without that, I don't think it's possible for us to send a message through webhook?
Steps to Reproduce
- Initiate an OAuth2 Flow with the scope set to
webhook.incoming - With the...
This might be due to a bug on the new code released today: https://github.com/discord/discord-api-docs/issues/3056#issuecomment-852785729
c958339 Document Application.owner as being optional (#... - davfsa
Currently has almost complete support for the API excluding voice. Has a system for handling rate limits
Documents the audit log events for creating/updating/deleting stage instances, which seems to be visible on the official client.
Description
Allow the new Discord button interactions to be placed INSIDE of embeds, similarly to the buttons shown off in the original Figma concepts for interactions. Perhaps have Discord automatically combine the elements or allow an option via the API to do so.
Why This is Needed
It would make this interaction look neater when used alongside embeds.
Alternatives Considered
Not really any alternatives here other than just keeping it as-is.
**Additional Details...
This isn't planned.

I suspect in the future we'll have more component types to help with layouting that will be similar (though probably not equivalent) to buttons inside embeds.
Description
Currently, there is no way to differentiate between two slash commands inside of a guild if they have the same name aside from storing the slash command's id. The only thing you get with an INTERACTION_CREATE which will identify the command is data: {id, name, ?options}.
Why This is Needed
So we don't have to store the slash command's id to see if it's the global command or the guild command.
Alternatives Considered
Maybe adding the `guild_...
I still feel like this is an issue, especially with this only happening with GUILD_CREATE events. You still receive all this information through rest and GUILD_UPDATE events, so why not GUILD_CREATE events?
Description
Get Invite should give max_uses so bots can check if a invite is unlimited without needing manage servers on a guild
Why This is Needed
So bots donโt need manage servers on a guild to check how many uses a invite has and bc max age is already there
Partnerships. I need to check max_uses for partnerships
Alternatives Considered
Adding a bot with manage servers which is invasive
Additional Details
Description
Allow URL buttons to be colored. This would work much like how emojis in buttons work, where you can set the emoji up with any other color option.
Why This is Needed
There is no reason for URL buttons to be considered the same as a button color, when they are more similar to emojis in that they are just another trait of the button rather than something that needs to be the entire style of the button. In it's current state, it puts a needless restriction on URL bu...
Description
I uploaded to Rich Presence Assets. Asset was not recorded so I recorded it 2 times after a while two appeared with the same id. when i removed one threw my "Error encountered!"
Steps to Reproduce
1.) Upload image 1
2.) Record it a second time because the first one didn't record.
3.) Delete one.
4.) Delete it 2 times because it has not been deleted.
Expected Behavior
The image is uploaded for the first time and deleted for the first time.
...
The type for the integration account ID seems to always be a snowflake, this fixes that documentation.
iirc it's only a snowflake for Discord application integrations
iirc it's only a snowflake for Discord application integrations
What would a non-Discord application integration be?
a Twitch or YouTube integration, which used to be the only integrations before Discord application integrations were added recently
https://support.discord.com/hc/en-us/articles/212112068-Twitch-Integration-FAQ
https://support.discord.com/hc/en-us/articles/215162978-Youtube-Channel-Memberships-Integration-FAQ
@GamingGeek confirmed this for me and theyโre actually snowflakes. You can check the message here: #381887113391505410 message
@HarmoGlace why the confused emoji? If you needed the invite I just edited the comment
- Add return types to
PUT /applications/{application.id}/guilds/{guild.id}/commands/permissionsandPUT /applications/{application.id}/guilds/{guild.id}/commands/{command.id}/permissions - Add
guild_id?to theApplicationCommandmodel
Turns out this can sometimes not be a snowflake so I changed the description instead. For reference: #381887113391505410 message (https://discord.com/discord-api)
Same issue. Please fix. This broke my app until I made conditions to handle the missing keys.
Description
Since webhooks created by bots is locked to those bot accounts, the webhook username should/could use the bot's display color.
While #1544 feature request exists this feature request seems like a more sensible option for now.
[Maybe]: Make a toggle option for it to display it, so bots that do post on a user's behalf isn't colored.
Why This is Needed
It gives the webhook name color and causes less confusion and think the bot has l...
I'd suggest to have webhook color as a field instead? So the bot can choose what color to send the message with, if they're posting on an user's behalf.
This seems to have been recently implemented. Thank you!
Backslash is only needed in a table to escape asterisk, adding it in a list just renders it as \*. This PR fixes this by removing the backslashes from the end of intents that have it in the list of Gateway Intents.
Description
You can add components/buttons to a webhook message. But how you can response to them? Bot's gateway don't receive this events for obvious reasons.
You receive them in the gateway if the bot created the webhook, afaik.
Yeah, that works. Even after the webhook was deleted.
But still, there is no solution for 3rd-party / created by other users webhooks?
You only get the event if the webhook was created by the bot.
3rd-party/created by other users won't get sent to you.
The only other solution I can think of, is if Discord looked for the Authorization header and send the event to that bot for that webhook message.
if Discord looked for the Authorization header and send the event to that bot for that webhook message.
That would be great. Because often webhooks used to post to servers where the bot itself is not actually present. Works great in combination with slash commands.
Description
A simple tool tip field in the message component for buttons that allows bots to set a tool tip for buttons.
Why This is Needed
In many cases, buttons are not self explanatory. This feature would allow bots to help users understand what a specific button does.
Alternatives Considered
State what each button does in the message itself. However this would make messages often contain unnecessary information to someone who a regular user of a command. Tool ti...
I think this would be good, but how would this work on mobile devices?
I think this would be good, but how would this work on mobile devices?
That is something I did not consider but if anyone has any ideas for this, feel free to reply with it.
I think this would be good, but how would this work on mobile devices?
That is something I did not consider but if anyone has any ideas for this, feel free to reply with it.
Long press, like with copying links - and the text would appear on the bottom
Danger -> Destructive to be consistent with the Discord client and the official image

Imo the image should be updated, not the enum name.
The more intriguing part though is that we have 2 primary buttons, yet the table lists them as primary and success.
I don't think this image is normative either. Using danger as a button style name is pretty common I feel.
Imo the image should be updated, not the enum name.
Well, it's called DESTRUCTIVE in the client, so I feel like it's the docs that are outdated.
Either way, this is inconsistent as always and something should be changed, hopefully this PR gets some attention.
This might be due to a bug on the new code released today: #3056 (comment)
That sounds slightly different. A comment there says:
Users cannot copy or edit webhooks created by bots
What I see in practice is that the token and url is absent in the last step of the OAuth2 flow, but I can still see the webhook in channel's settings > Integrations > Webhook Integrations, and copy its URL from there. ...
this will be fixed in the next api deploy
I think this would be good, but how would this work on mobile devices?
That is something I did not consider but if anyone has any ideas for this, feel free to reply with it.
Long press, like with copying links - and the text would appear on the bottom
Tool tips already exist on mobile that work similarly to this, so I think this is a great idea
Couple examples from Android:
 - Apacheli
I believe this was an unintended change for bots which we fixed, but if you continue to see missing members please let us know
This is a client only error - so it will not be documented.
e0c717c gateway documentation improvements (#3000) - A5rocks
ba9e3e1 removes dscord + adds dsharp slash commands lib... - Lulalaby
704bf7b Consistency + Updates for Slash Commands (#3027) - A5rocks
The type declaration looks correct after reviewing our internal models.
454451d Add Remora.Discord to Community Resources (#3044) - Nihlus
280ffa6 Add droff typescript client to community resour... - tim-smart
4692b2a feat(interactions/slash_commands): add note abo... - 7596ff
Please link to your rate limit implementation
Please link to your rate limit implementation, and you will need to fix the table formatting
c75f222 Document relevant audit log events for stage in... - NCPlayz
Please link to your rate limit implementation
Sure. https://github.com/jay3332/js-cord/blob/rewrite/js-cord/core/Requester.js#L64
a3f65db Document Message.member as not being provided o... - davfsa
we cannot provide guarantees it is always a snowflake or not, as internally it is a string data field.
32098e9 Add return types to slash command permission en... - cakedan
Yeah but that's exactly what this PR is about. I specified in which situations it is a snowflake and in which situations it is a string ๐
a800c4b Remove redundant backslash from list of intents... - iShibi
Thanks for the PR, but the image is actually incorrect. The documentation is correct.
I replaced -- with โ (em dash). The markdown should be able to render this html entity properly, but if it doesn't, I can change that.
Thanks for the PR, but shuffling around all these docs to move a forward slash does not really align with our pull request guidelines.
6152c43 Fix typo in community resources (#3078) - IDoEverything
@night A bad request error is returned on GET requests for templates exceeding the limit, but were created before the limit was implemented. Is that intended too? (Example: https://discord.com/api/v9/guilds/templates/gR5R34CZjCBC)
Please link to your rate limit implementation
you will need to fix the table formatting
What do you mean exactly? Reformat the entire table?
Description
Currently there is no description on the behaviour of interactions in crossposted messages. Do buttons get sent? All styles? Only some? If they do get crossposted, does the application receive the interaction when someone clicks them on another server?
Why This is Needed
As it is now, it is not clear whether an application should be ready to handle interactions from outside guilds it sends messages in or not.
Alternatives Considered
N/A
**Addition...
Regardless of the label that's been added to this report, this is not for slash commands specifically ๐
HanabishiRecca/Discord-Slim@f4967f0/src/request.ts#L102
This is not currently sufficient. See https://discord.com/developers/docs/topics/rate-limits for more info about handling rate limits.
What do you mean exactly? Reformat the entire table?
You just need to make sure the table columns line up with the row you added:

Thanks for the PR, but shuffling around all these docs to move a forward slash does not really align with our pull request guidelines.
This was more of a consistency fix rather than "shuffling" around the docs, and this also fixed upper cased URL.
This is not currently sufficient. See https://discord.com/developers/docs/topics/rate-limits for more info about handling rate limits.
Ok.
You just need to make sure the table columns line up with the row you added:
As you can see this happen because the name / link to the repo is too long. What do you suggest to do with it?
Also Language column represents how lib was written, or what lib can be used with?
As you can see this happen because the name / link to the repo is too long. What do you suggest to do with it?
You can just make the other columns larger.
Also Language column represents how lib was written, or what lib can be used with?
I believe it is now the language the library was written in.
Well, don't know how to implement it without denying the main lib purpose (minimal abstraction between user code and API).
how did you manage to find one?
Per guild avatars are rolled out to a small percentage of users and do not seem to be currently accessible to bots.
Seems weird how avatar isn't nullable here but it is in the user structure ๐ค
Seems like I didn't look at the member data correctly, fixed.
| Guild Member Avatar | guilds/[guild_id](#DOCS_RESOURCES_GUILD/guild-object)/[user_id](#DOCS_RESOURCES_USER/user-object)/avatars/[member_avatar](#DOCS_RESOURCES_GUILD/guild-member-object).png \* | PNG, JPEG, WebP, GIF |
Modifies the current member in a guild. Returns a 200 with a partial member object containing the changed data on success. Fires a [Guild Member Update](#DOCS_TOPICS_GATEWAY/guild-member-update) Gateway event.
The path is missing /users.
| Guild Member Avatar | guilds/[guild_id](#DOCS_RESOURCES_GUILD/guild-object)/users/[user_id](#DOCS_RESOURCES_USER/user-object)/avatars/[member_avatar](#DOCS_RESOURCES_GUILD/guild-member-object).png \* | PNG, JPEG, WebP, GIF |
Remove newlines that are breaking links to other definitions.
Description
In addition to the two INTEGER and STRING options, there should be two new options. These new options could be INTEGER_NO_SPACE and STRING_NO_SPACE so the Slash Command argument cannot contain spaces.
Why This is Needed
This feature would be useful for arguments which should not contain spaces, e.g. when you enter your age. The bot has not to check if it contains spaces and send an error anymore.
Remove newlines that are breaking links to other definitions.
make sure to delete like before 30 days or whatever discord says btw.
Has this been implemented yet? (i.e. can I specify an external URL)
Description
This is a multi-faceted suggestion with a few different parts.
OAuth / scope grant: Add more control over required scopes, similar to the current Require OAuth code flow toggle.
HTTP based interactions: Add a callback event for when the application is added to a guild with the applications.commands scope
Gateway connected applications:
- Add a new event for when the application is added to a guild with only applications.commands (possibly emit this ...
Description
Unnecessary newline in links causing issues with table formatting.
Steps to Reproduce
Problem was introduced in this commit: https://github.com/discord/discord-api-docs/commit/704bf7b5afb5cef347a91020670db4bf97940fd1
Expected Behavior
Links lacking newlines.
Should be resolved by this PR: https://github.com/discord/discord-api-docs/pull/3084
Current Behavior
Screenshots/Videos
Client and System Information...
Please create an assembly for arm64. I am using macbook air m1 and cannot compile the application
due to lack of .dylib file for arm64
sorry for my english, i use google translate
I believe this could be generalized to a regex (or list, but regex is usually more convenient because of stuff like [a-z] etc.) of allowed characters for an option (in the form /[allowed characters here]/ or /[^forbidden characters here]/), such that the Discord app would automatically prevent users from typing characters outside said regex and the API would reject (or trim, but that could cause unexpected results) requests with option values that include forbidden characters.
Discord has denied regex validation for options due to concerns over freezing the client, although some form of custom validation would be nice. (See #2609)
Discord has denied regex validation for options due to concerns over freezing the client, although some form of custom validation would be nice. (See #2609)
Thank you, I have now updated my comment.
If this is added, I believe Text components to go along with the Form component would also be an interesting addition, as we would be able to have separate, labelled (as grayed-out text that appears when they are empty, for example) text fields without the need of multiple commands or prompts, and it would fit nicely within the proposed structure - the values in each text field would also be sent when 'Submit' is pressed. This would certainly be interesting to simplify bot setup and configura...
I had the same problem using passport
`TokenError: Invalid "code" in request.
at Strategy.OAuth2Strategy.parseErrorResponse (/home/elayeb/Bureau/OMG/E-OMG/node_modules/passport-oauth2/lib/strategy.js:358:12)
at Strategy.OAuth2Strategy._createOAuthError (/home/elayeb/Bureau/OMG/E-OMG/node_modules/passport-oauth2/lib/strategy.js:405:16)
at /home/elayeb/Bureau/OMG/E-OMG/node_modules/passport-oauth2/lib/strategy.js:175:45
at /home/elayeb/Bureau/OMG/E-OMG/node_modules/oauth/l...
Description
When someone deletes the deferred message while it is showing that bot is thinking (ack type 5), you cannot send any more messages through the webhook with the url. It'll error with ```json
{"message": "Unknown Message", "code": 10008}
**Steps to Reproduce**
1. Trigger a slash command that forces the bot to make a POST request to `/interactions///callback` and the type being 5
2. Delete the message that shows a bot is thinking from the client
3. Try making a...
how did you manage to find one?
I use that endpoint in an application and noticed the error.
It now appears that the issue has been fixed, while they did not make any response. ๐ค
Description
Currently, it is possible to edit a non-ephemeral interaction response through the Edit Message endpoint (i.e. PATCH channels/{channel.id}/messages/{message.id}). This can be done for the original interaction response by using Get Original Interaction Response (i.e. GET /webhooks/{application.id}/{interaction.token}/messages/@original) to get a message object for the response that includes the channel and message ID.
GetOriginalInteractionResponse also currentl...
However, after some time (quite a while, possibly hours, I haven't measured) the interaction token appears to become invalid, causing that endpoint to return "Invalid Webhook Token".
Interaction tokens last 15 minutes.
These ephemeral messages aren't stored in the backend for Discord. Fundamentally though, I think expecting an ephemeral message to last 2 days is unrealistic. I suspect most of these go away in less than 15 minutes. If you want your message to be long lasting then it sh...
However, after some time (quite a while, possibly hours, I haven't measured) the interaction token appears to become invalid, causing that endpoint to return "Invalid Webhook Token".
Interaction tokens last 15 minutes.
These ephemeral messages aren't stored in the backend for Discord. Fundamentally though, I think expecting an ephemeral message to last 2 days is unrealistic. I suspect most of these go away in less than 15 minutes. If you want your message to be long lasting ...
I suppose another option would be deleting the response myself within the life of the token. It would be useful if it weren't necessary to do that manually, but I suppose that's a different feature request.
You have replaced incorrect information with even more incorrect information. Unverified bots have no limit unless they want privileged intents, in which case the limit is 100 servers until they are verified. As for users, the server cap is 100 servers no matter the existence of Nitro status.
You have replaced incorrect information with even more incorrect information. The server cap is 100 servers no matter the existence of Nitro status.
Unverified bots have no limit unless they want privileged intents
this is wrong, all unverified bots have a max of 100, whether they want privileged intents or not
As for users, the server cap is 100 servers no matter the existence of Nitro status.
they are working on giving nitro users a 200 cap, some random users already see that nitro gives a 200 cap in their client although it doesn't actually work yet for non-staff.
I've never seen or heard of a 100 guild limit for unverified bots, so apologies if I got that one incorrect as well. Nor have I heard of a 200 server limit (which I'd be super happy for) but that also should not belong in the mainstream documentation as a beta feature.
3. Bots can join more than 100 servers, unless they are unverified. These are unlike user accounts that have a maximum of 100, and Nitro subscribers that have 200.
Description
After designing my library's slash commands, I found that supporting guild-specific slash commands is coming with a huge headache. The only way to see if a guild has any of your slash commands is to fetch it from HTTP. Theres no number sent with GUILD_CREATE payloads to even compare that too. This isn't a huge issue if lets say you only want a few servers to have guild-specific commands, but passing that is a ratelimiting nightmare.
Currently, for global commands, ...
3. Bots can join more than 100 Guilds, unless they are unverified. These are unlike user accounts that have a maximum of 100, and Nitro subscribers that have 200.
Description
When you send custom emoji mentions in interaction responses, they are displayed correctly. However, as soon as you edit the response, they are not rendered anymore (except when the app is authorised through the bot scope on the guild that has the emoji).
Steps to Reproduce
I did this using a webhook-based app:
- Write a valid interactions endpoint that takes both slash commands and component interactions
- Make a command that simply responds with the ...
ad2eef8 fix(slash commands): remove newlines from links... - mikelittman
4880ba0 Clarify number of guilds limit (#3089) - MysteriousK69
Well it seems like you canโt delete ephemeral responses either, only edit them. Delete just returns โUnknown messageโ as well.
I don't expect there to be a way to solve this - the interaction requires the original message to exist
The docs example is python 3, so I do not think the utf-8 decode is necessary
If type is omitted, it defaults to 0 (role), and if allow or deny is omitted, it defaults to
"0".
I'm not sure how to document this properly. Should I include an example partial overwrite object?
This partial overwrite object can also be used in the partial channels in the guild create endpoint, but I don't know if I need to document that as the channel is already specified as being partial.
I also think a good idea would be radio (multi-choice) buttons would go nice with this. Which would be great for things like surveys, quizzes, etc.
Description
Currently, user bio and banner fields are only returned on the profile endpoint, so they cannot be accessed via bots or OAuth2. It would be useful if they were returned in endpoints that can be accessed.
Why This is Needed
Currently, many sites that support Discord OAuth2 login allow users to input a bio and banner in the site, but if they already have the data set in Discord then they would need to re-enter it. This would allow sites to automatically show the Discord...
Description
Editing a bot message in a channel that the bot doesn't have Send Messages permissions in returns Missing Permissions while editing the message.
Steps to Reproduce
- Send a message through a bot
- Restrict the bot's ability to send messages in that channel
- Attempt to edit the message
Expected Behavior
The message fails to edit and returns a Missing Permissions error.
Current Behavior
The message successfully edits and returns a `...
Discovered a few minor discrepancies between the docs and what is actually provided. Corrected the documentation to match.
Can you please clarify the type in the docs too?
Can there be a way to at least send new messages? You can do it after the deferred_response gets PATCH'd for the first time and then deleted
@itohatweb I've added a โPartial Overwrite Structureโ subheading under โOverwrite Objectโ. Is that how it should be done or is there a better way?
I've also documented the default values for the JSON params for the edit channel permissions endpoint.
Technically, both of these are strings, not numbers. Maybe it'd help to document them as such? (aka wrap them in "")
[discord/discord-api-docs] Issue opened: #3098 Cannot add a discord bot to a server after kicking it
Description
I cannot add a discord bot to a server after kicking it. The link says APPLICATION_ERROR
Steps to Reproduce
Go to https://discordapi.com/permissions.html#8
Generate url with CORRECT BOT ID
use that url
Expected Behavior
Shows the page to login and add the bot to the server
Current Behavior
APPLICATION_ERROR
Most likely it reached max servera fter you kicked it.
This will be fixed in the next api deploy
This PR updates the code examples for Slash commands to the latest API version (v8 -> v9).
This is due to /oauth2/applications/@me returning the object without flags. See https://github.com/discord/discord-api-docs/blob/master/docs/topics/OAuth2.md#get-current-bot-application-information--get-oauth2applicationsme
This PR adds a small Clojure library to the community resources that handles compliance with the interaction security requirements for ring-compliant web servers. ring is the de facto default for Clojure backend development.
| flags? \* | integer | the application's public [flags](#DOCS_RESOURCES_APPLICATION/application-application-flags) |
** \* Not included if using [Get /oauth2/applications/@me](#get-current-bot-application-information--get-oauth2applicationsme)
Addressing the second alternative here, it does offer a potential solution as well. That is, allow role / user overrides on a channel to be applied to users without rejoining the channel, thus this "bulk" operation occurs by updating a role override instead of adding a bulk endpoint,
Personally, I would like a bulk endpoint, but I feel like this alternative may be more feasible.
It'll be an array to match the docs soon, just waiting for the latest android release to get to 100%
Still wouldn't hurt to include that note imo
Fair point and noticed. The goal of the extra note would be to clarify why it's optional, since almost always flags is returned. But that could be me :)
Description
Change the logo, website, app and user interface back.
Why This is Needed
the logo looks less happy and looks worse and lost it's antennas
the new discord color #5865F2 is oversaturated and causes eye-strain, you cannot see some colors inside the new discord color
the font... it sucks.
Alternatives Considered
Additional Details
please revert changes back to old changes, the new website and changes are ฦฯ
ยขะบฮนฮทg ัะฝฮนั
these new charac...
This is for API-related issues/feedback, use: https://feedback.discord.com for client feedback/issues
This is for API-related issues/feedback, use: https://feedback.discord.com for client feedback/issues
sadly, https://redd.it/nh0q3z perfectly describes giving feedback to discord, discord never reads feedbacks.
Description
Why This is Needed
Alternatives Considered
Additional Details
This is not actually right, Flutter apps can handle oauth login. I was curious about how to code that so I published this small repo, https://github.com/Androz2091/imgur-app. The same can be done with Discord.
mm what about discord portal developer you mast a least one redirct_uri supply?
Yes, you will use com.yourname.yourappname://oauth2redirect for example. There are many examples on the web, or my example does exactly what you want to do.

@Androz2091 i get a null redirect although that supply it on the application developers portal

I want to connect my flutter app without third party like auth0 service etc
Description
Calling List Thread Members with an id that does not belong to a known thread returns a HTTP status 500 "internal server error" response.
Steps to Reproduce
Make a get request to https://discord.com/api/v9/channels/123456/thread-members (or any other unknown id).
Expected Behavior
"Unknown thread" 404 response, analogous to Get Channel and "Unknown channel".
Current Behavior
Response code 500 - internal server error.
**Screenshot...
Oh, 3 people disliked this post, and these dislikers are new discord redesign fans, they like these new edgy characters who were lazily designed just like the new font and the color and logo, how sad.
update: it's 4 dislikes, just like all the negative reactor's ages who like the kiddish enough new "no-limit-energy" redesign.
Some of us don't like it or parts of it, but we know how to give constructive feedback and we know the right place to give it; this is neither.
jeez, people ARE reacting quick
Also I'm pretty sure we don't need the status updates on the reactions lol
Some of us don't like it or parts of it, but we know how to give constructive feedback and we know the right place to give it; this is neither.
I gave feedback but they don't respo- oh wait, a contributor, I mean, 2! Assuming you both are discord staff, can you please revert the changes?
<img src="https://preview.redd.it/1rfke7seqgy61.png?auto=webp&s=9286da4a389b0793d15cdabd5069deea6b914fe5">
Contributor just means that we've contributed to these docs, so we are not staff. That would be a collaborator or member. If you do get a reply from a staff member, it will just be to close this because this is not the right place for this.
To the dislikers @ThatSkyz @DiscordCatto @CottageDwellingCat @Lachee @SinisterRectus @Mysterypotatoguy @bsian03 @JohnnyJayJay SEE THIS
can you see the grey correctly in the new color? No, it causes eye-strain.

I hope one day a dicord staff reads these 3 famous words:
revert the changes
Looks fine to me. Maybe you should turn down your brightness.
| embeds | array of [embed](#DOCS_RESOURCES_CHANNEL/embed-object) objects | embedded `rich` content | one of content, file, embeds |
| embeds | array of [embed](#DOCS_RESOURCES_CHANNEL/embed-object) objects | embedded `rich` content |
https://feedback.discord.com is the place for this.
oh hey discord staff, you're a member, and what I saw from an earlier comment:
Contributor just means that we've contributed to these docs, so we are not staff. That would be a collaborator or member. If you do get a reply from a staff member, it will just be to close this because this is not the right place for this.
so you're the discord staff @devsnek, unfortunately discord feedback doesn't respond to me, so since you're the st...
Is there a timeline for the deprecation and removal of the embed field from these endpoints?
can't fix in a suggestion but embed should be changed to embeds in the Required column
Curious, is this something that's already been deployed, or should we just keep this in mind when updating our libraries
@VelvetThePanda i will merge this after it is deployed.
@FasterSpeeding embed will be removed in the next api revision, there's no plan to remove it from current revisions so you shouldn't need to worry.
@devsnek I'll keep an eye on this PR then.
There's references to the embed field in the warning and info sections for these endpoints which need to be updated
Can't fix this in a suggestion but
- This example demonstrates usage of the endpoint *with* `payload_json` and all content fields (`content`, `embed`, `file`) set.
+ This example demonstrates usage of the endpoint *with* `payload_json` and all content fields (`content`, `embeds`, `file`) set.
@devsnek just wondering, does this mean bots will be able to send up to 10 embeds like webhooks? or is this to just make it more consistent with the other sending methods.
@typpo wrong, this is required for python3.
i went through the time required to actually run the code and it was not working even on python3. adding what i put into the PR fixed the issue.
@ckohen I don't think there's a permission that allows you to join a voice channel, but not hear what's being said, right? So that would not be a replacement for the requested functionality.
It would be a partial solution, in that you could bulk mute/unmute users. But, I believe you're correct that it would not allow for bulk deafen/undeafen.
I also think the impact on Discord would be lot higher to allow for roles to take immediate effect, rather than just adding an extra endpoint for bulk server mute/deafen.
@Apacheli that section looks correct to me.
Update this to June 10 since it'll be deployed tomorrow
Rather than deleting this I would note that it's deprecated and to use the array instead. It's still on the data model so it could still be received.
I would add a sentence.
Message routes now accept an
embedsarray in addition to the existingembedfield. Bots can now send up to 10 embeds per message, to be consistent with webhook behavior. The existingembedfield is considered deprecated and will be removed in the next API version.
only sending changed; receiving and the documented message object has always had an embeds array so there's no change to that
@ckohen I don't think there's a permission that allows you to join a voice channel, but not hear what's being said, right? So that would not be a replacement for the requested functionality.
That's why my suggestion is a stop-gap solution...but if everyone is muted, then there's no need to deafen (yes, I realize that sometimes you may not want to mute everyone lol)
@FasterSpeeding
embedwill be removed in the next api revision, there's no plan to remove it from current revisions so you shouldn't need to worry.
Does "next" here mean v9 or v10?
Another advantage of a having a seperate property for this: Hide the command from users < 18 in direct messages.
fd65018 document multi embed update (#3105) - devsnek
Why not make it a feature to restrict specific global slash commands to an array of guilds instead of just allowing for bulk commands arrays of guild-specific slash commands?
I see that this matter is referenced in the docs:
For now, if you don't have permission to use a command, they'll show up in the command picker as disabled and unusable. They will not be hidden.
Is command-hiding an open design question, or is some change/addition to the API inbound?
@CuriouserThing I think both options should be supported. You might include "hide": bool.
Scenario 1 where you like to hide a command:
You got an owner-only command to manage the Bot. It takes up unnecessary space in the picker. For Server, Admin-only commands some devs might like to hide them for normal users, but there are for sure some devs who still like to show the,
Scenario 1 where you like to show a command (greyed out):
You got a premium-only command. People should k...
I think both options should be supported. You might include
"hide": bool.
I agree wholeheartedly! From an API standpoint, I believe that something like a hidden boolean property is a clean solution to this problem. However, I'm unsure from the blurb in the docs above whether this topic is still in design discussion, since this solution may be incompatible with either Discord's vision for commands or Discord's backend.
(To be clear, I'm mostly asking @msciotti for clarification on t...
This was brought up in a server recently, and I agree that this would be useful for bots. Use case here is a bot that stores user-based configs for individual servers- they want to allow users to import those configs across any accounts they have (or to recreate them if data is lost, etc) for ease, but don't want people to use that to automate the creation of tons of configs by just changing the server IDs. Having a mutual servers option would fix this by allowing the bot to verify what serve...
06d08cc Small polish to the threads documentation. Docu... - ajpalkovic
totally unrelated but why is there double spaces?
On another note, what is the name of the audit log event? That should probably be documented too.
They haven't been added yet, probably will just be thread_{create/update/delete} though, unlikely to have entries for join/leave
I'm seeing a lot of missing members on voice states
Description
If you respond to a type 3 interaction with a type 4 response over webhook but omit the data object, the interaction succeeds instead of failing silently.
Steps to Reproduce
Attach an interactions endpoint URL to your application. Have it authenticate requests and ACK pings correctly. Have it send { "type": 4 } on any successfully authenticated and non-ping interaction. Send a message from the bot with a button, and click it.
Expected Behavior
This sho...
We can't do regexes because a pathologically bad regex can freeze the regex engine in the browser.
What if the regex verification was done server-side?
Description
The Leave Guild endpoint returns a 400 Bad Request response when a Content-Type header is sent.
Steps to Reproduce
Send a request to that endpoint containing a Content-Type header.
Expected Behavior
It should ignore the header, like other endpoints with no body.
Current Behavior
It fails with a 400.
Screenshots/Videos
/
Client and System Information
/
Description
Guild#nsfw_level was added to the docs in #2976 but only the direct num values without a description for what each level means.
Is it possible to get some more information on what each of these levels means for the API, the client, etc.? Most other enums in the docs seem to have a description column, but not nsfw_level.
Steps to Reproduce
https://discord.dev/resources/guild#guild-object-guild-nsfw-level
Expected Behavior
Documented description for...
Description
When POSTing to the /callback endpoint, if you attach an embed (or presumably any link) with a link in it (thumbail, author, etc), the links resolve, and the content is shown, but if you PATCH (POST Type 5, PATCH /@orignal) with the same payload, the embed is empty.
Steps to Reproduce
- Invoke a slash command
- Respond ephemerally with Type 5
- Edit that response with an embed that contains an image, or any link that points to content that embeds.
- Observe
**Exp...
Kryptonitechic.252.361.7133.
On Fri, Jun 11, 2021, 2:07 PM Velvet @.***> wrote:
Description
When POSTing to the /callback endpoint, if you attach an embed (or
presumably any link) with a link in it (thumbail, author, etc), the links
resolve, and the content is shown, but if you PATCH (POST Type 5, PATCH /
@orignal https://github.com/orignal) with the same payload, the embed
is empty.
Steps to Reproduce
- Invoke a slash command
- Respond ephemerally with...
This is absolutely crucial for us. I absolutely reaffirm and stand by my own decision that this is something that should be considered for implementation into the Discord API with v9 coming soon, permissions are frankly lacking right now and this makes a great compromise for other choices.
Description
Add a channel option for slash commands to make it easier for the bots users to select channels.
Why This is Needed
For example a simple bot to post welcome messages. A channel option would make it easier for users to choose the channel they want the message to be sent in.
Alternatives Considered
Use string option and manually check if it is a channel
Sorry for the issue, somehow I completely forgot that the option already exist.
This is a windows limitation, global keybinds are not sent to non-admin applications when the focused window is run as administrator
Description
welp, like the buttons have the disabled property, a new property allowed can be introduced
Why This is Needed
it is needed because there are many commands in which the person who used the slash command or triggered the normal text message only should be able to use the button, for now people have been filtering them using either JSON.stringigying the id of the user who used the command into the custom id and then filtering them out and then replying them with a `...
Discord just increased the max messages length from 2000 to 4000 characters for nitro subscribers (and maybe bots?): Source
So if you try to send a message with 4000+ characters you get the expected error:
DiscordAPIError: Invalid Form Body
content: Must be 4000 or fewer in length.
at RequestHandler.execute (/home/pi/DiscordBot/node_modules/discord.js/src/rest/RequestHandler.js:152:13)
at runMicrotasks ()
at...
Description
Increasing the message content length limit to 4000 characters to be consistent with user accounts that have nitro.
Why This is Needed
People can log moderation cases, or forward messages to the staff team directly, and the bot does a exact copy of the message. Now, if a nitro user sends over 2k characters in a message, it causes the api to reject the forwarded message to staff because it exceeds 2k characters.
Alternatives Considered
Sending multiple ...
Imo both the content length and description length need to be upped.
Not only for bots that echo another user's message, but also for logging and automod bots.
Currently for logging bots we either have to split up the messages into multiple parts.. or if it's over the 6k embed length you have to send multiple messages. Which isn't good for ratelimits and looks terrible in the logs aswell.
Same thing for automod bots
A good example would be messageUpdate event. Logging both p...
it'd also be good for webhooks to be able to send 4k characters in a message, since webhook messages (both content and embeds) are also used to echo or proxy users' messages
Description
Why This is Needed
Alternatives Considered
Additional Details
I appreciate the thumb downs, why am I wrong?
A recent change was implemented (but apparently not documented) to discord's API where interaction responses no longer supported @everyone or @ROLE pings unless the @everyone role had the "ping @everyone, @here, all roles" permission. I suggest that this change be reverted.
@MaxJikharev You can use the allowed_mentions field to enable the pings within Interaction responses

apparently it was changed after that but not announced anywhere
Huh, interesting. Thanks for the heads up then :)
Description
I've found a guild that has a group 3 channel (a group DM) attached to it. This channel appears when my bot identifies - in the GUILD_CREATE payload - but not when I fetch its channels via the API. Neither users present in the group DM have ever been members of the guild in question.
Additionally, when in the server itself I'm able to search for the IDs of the users who appear in this group DM and messages show in the search results if the channel is actually in the guil...
I appreciate the thumb downs, why am I wrong?
Because it was a permission escalation.
A bad actor can make a button and when pressed ping everyone or a role despite the bot having no permission to do so.
Managing whether or not a bot pings a role is an easy task and is disabled by default... why must further restrictions be applied??
This is not how this system works. Interactions have no permissions. Even if the bot itself has permissions they completely bypass them. As a ...
By 'fail silently,' I mean that it should display a 'this interaction failed' error in an ephemeral message to the user.
however the bot API team is afraid of bots being in the member list
Solution: remove bots from the sidebar member list
Why? Why isn't this documented?
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
Not sure wether this is a bug or not.
if you're in a timezone behind utc, it shows 12/31/1969, so I'd have to assume it has to do with the linux epoch
although this seems more like a client bug than an api bug
Thanks, ill close this issue as it seems like a non-api bug :)
A bad actor can make a button and when pressed ping everyone or a role despite the bot having no permission to do so.
What I'm getting from this is that permissions were escalated to prevent the worst-case scenario of potential ping abuse; a problem that is easily preventable by being wary of what bots you add to the server.
I get the intentions behind the change but it seems like it's an extreme stopgap to an insignificant problem. There are no security vulnerabilities (right?) that ...
I noticed Update was being used in a few instances within the resources, while Modify was used everywhere else (and Edit for messages). This PR changes the term for consistency with the rest of the docs.
Note: Should I also change
EdittoModify, as the behavior is similar?
1673e39 docs(resources): changed Update to Modify (... - kyranet
Description
Creating a webhook causes an internal server error (channel id: 839875467255611442) that now does not allow any webhooks to be created in the discord server
Steps to Reproduce
Unable to edit, alter or create webhooks on this channel or any channels in the discord server.
Expected Behavior
Ability to edit, create and rename webhooks on the channel / discord server.
Current Behavior
Error messages - unable to create, edit or alter webho...
The thread member objects in THREAD_MEMBERS_UPDATE contain a member and presence field
d2918c7 Mark flags on Application as optional (#3100) - Gelbpunkt
dca98fc Add ring-discord-auth to community resources fo... - JohnnyJayJay
This behavior is undefined, you should always specify type!
v9 isn't finalized yet, so we should wait on this!
some clients send a body with this route, so it uses content type
@night what is the timeout for loading images in embeds before it gives up and sets 0x0?
@typpo Ok, but what about allow and deny? I'll update my PR so that type is must be present, but I think it's reasonable to allow allow or deny to not be specified.
Follow up to #3108 that adds the new param to the example JSON objects and the Modify table for Guild Channels
Does this mean this route ONLY takes a nickname, and we'd have to use the /members/<bot id> for roles and such?
ee16bc0 Denotes deprecated sticker fields - jfurrow
This PR denotes deprecated sticker fields and documents new fields.
Pack Id is not deprecated but it is nullable/optional
Maybe add a line that this is always empty string
This is nullable/optional
This is nullable/optional
Tags is no longer optional, and could be a single emoji
Sort value is also a field passed, and its optional
We also need to document sticker_map, but its still being coded
We could merge this now, since its all true ATM. and then add the docs for sticker map
It appears to only accept nickname, yes. Providing roles does nothing.
I've left it out for now
Unsubscribe
Kryptonitechic.252.361.7133.
On Tue, Jun 15, 2021, 3:38 PM John Furrow @.***> wrote:
@.**** commented on this pull request.
In docs/resources/Channel.md
https://github.com/discord/discord-api-docs/pull/3127#discussion_r652096203
:@@ -258,7 +258,7 @@ Represents a message sent in a channel within Discord.
| application_id? | snowflake ...
tags is still a comma-separated list for Nitro stickers though?
82e2386 Clarifies sticker objects' tags attribute - jfurrow
You're right, thanks for noting, updated for clarity!
- Moves sticker object to new page
- Documents sticker.type
- Documents the sticker pack object
- Documents
/sticker-packs,/guilds/:id/stickers, and/guilds/:id/stickers/:id
| Guild Member Avatar | guilds/[guild_id](#DOCS_RESOURCES_GUILD/guild-object)/users/[user_id](#DOCS_RESOURCES_USER/user-object)/avatars/[member_avatar](#DOCS_RESOURCES_GUILD/guild-member-object).png \* | PNG, JPEG, WebP, GIF |
A description should be here too maybe
is that id suppose to be there?
I didn't put a desc here because the text above the table pretty much explains it
yeah, all sticker assets are on that "Stickers" application, but the API doesn't seem to return that id; I just hardcode it and I assume the client does too
https://cdn.discordapp.com/app-assets/710982414301790216/store/761773777976819732.png?size=4096
###### Sticker Pack Structure
I've just run into this issue too. I want to create an interation-only slash command which checks a user's voice state, in order to see if a user is in a specific voice channel. However, as it turns out, while there is an API for fetching a Guild Member now, there is no such API for fetching voice states. As described above, the only way to keep track of voice states right now is to spin up a gateway connection and cache data about every voice state.
As Discord is moving to support statele...
Description
currently, if you try to create a button with a url, it has to use http or https as a url scheme.
However, discord implements the discord:// scheme, with urls such as discord://-/users/316860714260234243 or discord://-/settings/advanced. Everything that works with discord.com also works with that protocol, but whereas the discord.com link opens a new discord client in the browser, the protocol actually opens a user profile or a channel in the client.
...
Also, please add support to the title url and author url in embeds :)
Gateway events aren't instantaneous either
@wasdennnoch they don't need to be instantaneous. But they surely should be streamed.
The thing with REST is you don't really know when user had state that you got as result. You can't assume that some particular user didn't change his state from the time you got slash command when you receive response with user states.
Gateway will provide you a way to get states that you actually can use safely unless you want to get outdated states. Esp...
In this PR, it adds Skycord to the Discord Libraries list on the Community Resources page.
Skycord is a low-level Discord API wrapper written in TypeScript. The reason for it being made low-level is to allow developers using it do not need to wait for the library to update in order to take advantage of Discords' latest features. This also lets developers get more control over how things on it are implementing (such as implementing their own cache if needed).
The library supports ratelim...
The thing with REST is you don't really know when user had state that you got as result.
This makes no sense. The state you get back from the REST request is the state at the time you made the request.
If you have a cache and you fetch state from cache, it will be the state at the time that you fetched from cache.
You can't assume that some particular user didn't change his state from the time you got slash command when you receive response with user states.
This can also be rea...
The state you get back from the REST request is the state at the time you made the request.
This assumption is only true if REST API handled by same service that stores and updates voice states. Which I really doubt is the case.
But that doesn't actually matter. In guilds where users interact with voice channels heavily you will be getting responses that might be outdated by the time you receive them. Hundreds of milliseconds is a huge amount of time for such kind of events. User pres...
That doesn't change the fact that it's completely overkill to have an active gateway connection just for receiving voice state updates, and it contradics Discord's current push for stateless bots. Dpending on the runtime environment you can't even spin up such long-lived connections (Cloudflare Workers, Amazon Lambda, or whereever else you can host an interactions-only Discord bot), which means that a REST endpoint would be by far the best solution in this case. I don't care if the voice stat...
I don't care
But I care about that. And since it is important for me, I specifically mentioned it in the issue that I created. My use case that doesn't have stateless bots in mind thus what I don't care about is runtime environments that do not have an ability to utilize long-lived connections.
But I care about that.
[...] in the issue that I created.
Nobody said you can't ask for a gateway command to request a voice state. You, however, are saying others cannot ask for a REST endpoint to request a voice state. While it is true that you created this issue, it is unreasonable to expect people not to comment with their own opinions and use cases and what they would ask for.
I'd love this, something similar to Steam's browser protocol.
You, however, are saying others cannot ask for a REST endpoint to request a voice state.
I never said that. What I am really saying is that REST endpoint wouldn't be sufficient for the cases where you need to track states in realtime-ish manner. Or, in fact, in that particular case REST endpoint may not be even possible/hard to implement until proven otherwise.
If someone doesn't care about correctness of voice states, it doesn't make gateway events overkill. That's all.
Description
The data types used for timestamps are unclear in a couple spots of the documentation.
Here.
created_at | timestamp | the time at which the invite was created
This field is an ISO8601-formatted timestamp string, which is what nearly all timestamps in Discord's messaging are. However, all other instances of such timestamps are explicitly stated to be ISO8601 in the docume...
240 isn't a valid choice, right?
1hr, aka 60 would probably be better
I have no idea where I got 240 from, I think I meant 1440 for 1 day since that seems to be the default, although I've noticed if the channel hasn't ever changed it, this doesn't even get sent in the payload. Thus making 60 the better example?
If you changed it to 60 and then back to 1440 it'd probably send down 1440 in the payload
But yeah, if it's never been set before it won't get sent down, no need to waste space on it
182ac56 Add default_auto_archive_duration to examples a... - ckohen
While looking through the documentation I noticed it had a wrong image link, so the image didn't show up. So this is the fix.
The image path was already correct, what you did was break it. The way the docs are built requires the images to be linked like they are currently. If you check here, you can see it works fine.
Description
Currently, replying to a component interaction with type 7 (UpdateMessage) shows an edited flag just like what happens when you edit a message normally. This could be removed.
Why This is Needed
It looks very ugly and is not useful at all, especially when there are multiple messages with buttons.
wanted to mention that originally it didn't show (edited), it changed a while ago
Not showing edited at all for type 7 updates was a bug and won't be changed back. Not showing edited when components (and only components) change, regardless of what method you use to patch it, is not off the table.
Description
I'd like to be able to create multiple groups of Slash Commands for my bots.
This would be like the groups we already have for slash commands, where each bot has its own "group" of Slash Commands when you type / and see the auto-complete.

I'd like to be able to create multiple groups for my bot. My bot's a multi-purpose bot and having everything under one group means there's a lot of commands, almost too much
A step...
Description
This one is very simple but also useful in some cases: Slash Command list options
If you want to have a slash command option that takes in a list of choices, a list option type is perfect for this
Why This is Needed
For commands where you need a list of choices as input for the option. For instance, using a list of users in your ban command so moderators jobs can become a little bit easier when managing raids.
For one of my specific use-cases, I made a poll ...
Oh that looks like what I needed, sorry.
As far as I can see, there isn't any documentation on the usage besides the example on the readme. This probably should be added before it gets added to the Discord docs.
Currently this page only got the object of application, but (we/I) don't know how to get the application by making request to the Discord api (I mean I don't know the api route to do so...)
It would be great to say more about it, because it is more useful than bots data/info, because it even says bots data, as well as who are the owners of the application/bot.
The endpoint for requesting your bot application's data is here. A bit in awkward place, but someone will open a PR (and hopefully not get night'd).
too late
I moved it in #2873 when I made the application page but night moved it back before merging
The endpoint for requesting your bot application's data is here. A bit in awkward place, but maybe(?) someone will open a PR to move it (and hopefully not get night'd).
Uh, nobody in the would will find it, is so below...
Btw do I need to give bot token as Authorization in headers when I'm fetching that api route?
I fully agree with the points regarding scope grant and would appreciate being able to have more control regarding how bots can be added to guilds and what scopes they need to have.
For future bots I create, I intend for them to require both the applications.commands and bot scopes so commands operate via the Slash Commands feature exclusively. For this reason, I would like to see some kind of option in the developer portal where I could tell Discord that a bot user for an application ...
Description
If your Twitch Partner channel has any animated emotes uploaded, they don't get synced correctly to Discord. Only a static PNG is brought over, rather than the animated GIF version.
Steps to Reproduce
- Be a Twitch Partner
- Enable Twitch Sub Syncing in a discord server.
- Upload an animated emote on your Twitch Partner channel.
- Sync the server so the emote is brought over and observe.
Expected Behavior
The emotes sync correctly and I can enjoy my ani...
The image path was already correct, what you did was break it. The way the docs are built requires the images to be linked like they are currently. If you check here, you can see it works fine.
I also believe Slash Command Groups would be a better solution then this issue
Only issues related to our developer APIs should be reported here.
This issue is also due to a limitation on Twitch's side, not ours. Unfortunately you will have to wait for their team to add support for it, though there are some other related limitations our team is working through with them too.
Changed flag to style as it's a more suitable name for the behavior. Ref:
https://github.com/discordjs/discord-api-types/pull/146#issuecomment-864232342
you can use Guild Slash Commands for cases like the one you mentioned.
https://discord.dev/interactions/slash-commands#create-guild-application-command
you can use Guild Slash Commands for cases like the one you mentioned.
https://discord.dev/interactions/slash-commands#create-guild-application-command
Pretty sure you can't, it would result the same outcome as the one mentioned above.
you can use Guild Slash Commands for cases like the one you mentioned.
https://discord.dev/interactions/slash-commands#create-guild-application-commandPretty sure you can't, it would result the same outcome as the one mentioned above.
how so? you can enable commands on specific guilds using guild commands
how so? you can enable commands on specific guilds using guild commands
- It's a terrible experience for the end-user.
- It's fairly annoying to work with guild slash commands for multiple reasons listed in the issues tab already.
- What you suggested makes no sense for this feature request.
-> To have slash command groups would be a better solution for multi-purpose bots and any bots that want their slash commands grouped up so it's easier for the end-user and developer to d...
split state related events and connection related events
###### Gateway Opcodes
###### Gateway Events
Events are [Dispatch](...) payloads that correspond to events in Discord.
Events are payloads sent over the socket to a client. Events with an operation code of 0 regards changes in the Discord state, while
those with a higher op code affects only the websocket connection.
What's with the ...?
Will this be updated with a URL in the future or is that something the Docs generator you use can recognize and handle?
Description
When a user that has a server avatar in the current guild uses a slash command, the Android client shows their normal avatar
Steps to Reproduce
- Be lucky and have server avatars (release whenโข ๐)
- Set a server avatar
- Use a slash command
Expected Behavior
The "User used command" part of the message should show the users server avatar
Current Behavior
It shows their global avatar instead
Screenshots/Videos
.
If you are using discord.js and want to preview version 13 you can install npm i discord.js@dev (see the discord server https://discord.gg/djs) for instructions, features, and support.
(note that @dev is the current state of the development branch and might break at any time)
Ok
Sent from Yahoo Mail on Android
On Sun, Jun 20, 2021 at 2:59 AM, @.***> wrote:
Discord.js natively implements buttons in the next major release (with API-true naming).
If you are using discord.js and want to preview version 13 you can install npm i @.*** (see the discord server https://discord.gg/djs) for instructions, features, and support.
(note that @dev is the current state of the development branch and might break at any time)
โ
You are receiving this becaus...
I personally think, this would break UX, because you lose consistency among the different button types.
Currently, every button type has a defined style and users associate specific action types with specific buttons.
I personally think, this would break UX, because you lose consistency among the different button types.
Currently, every button type has a defined style and users associate specific action types with specific buttons.
i mean even if this breaks the UX, the custom color can be still added.
The request for custom colours for buttons has already been rejected here, and it's unlikely they'll have changed their minds already, Being able to use custom css would even significantly worsen the the problem that they have with it. I'm not against it, just that it's almost impossible this would ever be implemented.
I was looking through the documentation and saw that didn't have the Application Command summary, so I decided to put it in, even though it might not be right.
| 150006 | The Stage is already open |
| 130000 | API resource is currently overloaded. Try again a little later |
isn't this out of order?
This package is bad in a variety of ways. Use djs' native interaction methods instead.
Discord.js natively implements buttons in the next major release (with API-true naming).
If you are using discord.js and want to preview version 13 you can installnpm i discord.js@dev(see the discord server https://discord.gg/djs) for instructions, features, and support.(note that
@devis the current state of the development branch and might break at any time)
Yes, discord.js's dev version is not stable, also with our package is easier to use
This package is bad in a variety of ways. Use djs' native interaction methods instead.
Discord.js stable don't support interactions...
We know, but this is custom css suggestion
This package is bad in a variety of ways. Use djs' native interaction methods instead.
I don't see what do u mean by "bad" because basically we are covering everything that is being added to discord-api-docs and still we are working on some more features,
our package is even kinda the same as the one on the dev(v13) branch, so I don't see what do u mean by that!
You're grasping straws. The djs dev branch is stable enough, it's close to a release after all. Your package is applying hacky solutions to v12 which is just bad. Very much not easier to use and inaccurate to the Discord API.
You're grasping straws. The djs dev branch is stable enough, it's close to a release after all. Your package is applying hacky solutions to v12 which is just bad. Very much not easier to use and inaccurate to the Discord API.
ok so basically, by "hacky" you mean because we are getting/sending data to throw WebSocket? or because we change some stuff on Send function? cause I really don't get it, if we added anything or changed anything about Djs, we covered them on our readme/docs...
You're grasping straws. The djs dev branch is stable enough, it's close to a release after all. Your package is applying hacky solutions to v12 which is just bad. Very much not easier to use and inaccurate to the Discord API.
Bro, what do you mean with "hacky"?
We use only the discord rest api!
also

To clarify some things:
- Adding a package that is not officially endorsed by a library (and is extending it), has the same issues as using the
@devbranch when it comes to stability. Because if we decide to break how you do something, you need to update your code reactively based on user feedback. - The remark about the
@devbranch is, as always, a reminder that we take liberty in breaking the interface whenever we see fit, not that it is horribly unstable and should not be used at a...
Again grasping straws and not providing any proper argument. This package is inaccurate to the Discord API. And there's no reason to use it, as djs provides perfectly fine native interaction support.
When custom colors do break "consistent design experience for users", custom css is even worse for the UX and probably won't be added, because of that.

Hello crawl,
You're right, every time you change your code and we have to do it, but we have no problem with that.
Regarding #2874 (comment), we are not a temporary solution,
we are making it easier for people to use the buttons.
Also as far as I understand, you don't accept someone making your package easier to use
Description
You can't add a bot with redirect_uris that have a # in their uri.
Steps to Reproduce
Add a redirect_uri with a # in it (like https://google.com/# ) and try to add the bot with that redirect_uri.
Expected Behavior
I get redirected to the specified URI.
Current Behavior
Window raises Invalid redirect uri.
Client and System Information
Firefox Windows | discord.com/oauth2
This should make it easier to navigate and find the actual endpoints for threads.
The documentation currently does not properly explain how voice states for lurkers in public stage instances behave or how they should be handled.
Through testing I found out that:
- You receive a VOICE_STATE_UPDATE with a
memberthat hasjoined_atas null (for joining/leaving/raising hand/etc.) - You DO NOT receive a GUILD_MEMBER_ADD or GUILD_MEMBER_REMOVE
This means documentation needs to be adjusted in a few ways:
- The
joined_atin the [Guild Member Object](https://gith...
[discord/discord-api-docs] New comment on issue #943: \[Feature Request\] Discord Game SDK for Linux
@night Page you've linked to does not list any Linux downloads. Is support still there?
| 130000 | API resource is currently overloaded. Try again a little later |
| 150006 | The Stage is already open |
| 150006 | The Stage is already open |
[discord/discord-api-docs] New comment on issue #943: \[Feature Request\] Discord Game SDK for Linux
The ZIP file under step 1 contains the .so files for Linux.
of course it is a temporary solution?? users should download v13 and use built-in button support. Discord have already made it clear that they won't add these "extension" libraries unless the base library devs agree with it, so I don't really see why you made this PR in the first place as it obviously won't get merged.
there is no good reason for anyone to use your package instead of d.js v13.
This is working as intended, as the RFC does not support fragments in the redirection URL (likely because implicit auth defines that its parameters be returned in the fragment).
| max_presences? | ?integer | the maximum number of presences for the guild (`null` is always returned, apart from the largest of guilds) |
this is misleading: slash commands aren't really "a type of interaction", they are their own structure, and they create an interaction when they are used
pretty sure page links always have a trailing slash, are you sure they work without it?
I did a bit of digging to see and came across this in Community Resources/Dispatch Tools:

Clicking on it seems to redirect properly, although it seems like the majority of the docs use a trailing slash (ironically this PR is about consistency lol). I am a bit curious to see what typpo or night think a...
Idk how to accurately describe it. It's kinda explained at the top of the article right? maybe it would make more sense to remove the sentence all together
ะะดะบ ะบะฐะบ ััะพ ัะพัะฝะพ ะพะฟะธัะฐัั. ะญัะพ ะฒัะพะดะต ะบะฐะบ ะพะฑัััะฝัะตััั ะฒ ะฒะตัั ะฝะตะน ัะฐััะธ ััะฐััะธ, ะฒะตัะฝะพ? ะฒะพะทะผะพะถะฝะพ, ะฑัะปะพ ะฑั ัะฐะทัะผะฝะตะต ัะดะฐะปะธัั ะฟัะตะดะปะพะถะตะฝะธะต ะฒัะต ะฒะผะตััะต
ะคะฐะนะป ะฝะต ะฝะฐะนะดะตะฝ.
[discord/discord-api-docs] New comment on issue #2919: Delete Ephemeral Message through API Endpoint
I would like to see this feature, too. Although a user could suppress it themselves when they no longer see the need for it, allowing the application more fine-grained control of the message history would help make for a cleaner UX in some scenarios.
For instance, a simple ephemeral confirm/deny button dialog prompt could self-destruct once an answer is provided with no more interaction from the user.
Description
It would be super useful to have the /callback endpoint return the newly created interaction response, with at least the new message's ID (ephemeral or not, should be treated the same).
Why This is Needed
In the case where we are responding to interactions, especially slash command invocations, and needing to keep state for subsequent component interactions on that message, the message ID is the only common value to link on.
To accomplish this today, I though...
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
shouldn't it be like this Unknown stage instance?
Sorry, this has to be removed.
20031 was changed to Your Stage topic, server name, server description, or channel names contain words that are not allowed
Well for those saying that djs13 native button support is better!
I rather user:
msg.createButtonCollector()
For creating a simple button collector using the discord-buttons resources
Rather than :
msg.createMessageComponentInteractionCollector()
Using native djs way!
There still is absolutely no reason to use discord-buttons anyway.
If you are unhappy with the long method name, just rename it.
I support this pull request. discord-buttons is easier to use and not temporary. I tried using the main branch too to give it a fair chance and from my personal opinion discord-buttons is better.
Also message#createMessageComponentInteractionCollector is waaaaayyyyy too long to type, who even thought of that?? Message#createButtonCollector is much easier.
also replying to @iCrawl
you need to update your code reactively based on user feedback.
I agree with you, but if th...
The package being easier to use has nothing to do with this imo, if you don't like the name you can customize it yourself or just use the package. There is no reason for it to be listed when the main library supports it in the next version.
Can @typpo or @night handle this. ๐
<iframe src="https://github.com/sponsors/M1cal-net/card" title="Sponsor M1cal-net" height="225" width="600" style="border: 0;"></iframe>
The package being easier to use has nothing to do with this imo, if you don't like the name you can customize it yourself or just use the package. There is no reason for it to be listed when the main library supports it in the next version.
It does. All the community resources are made to enhance the user experience and to make it easier for the user. Without that, the resources dont make any sense
-
- [ ] @davidcole1340 DO I REALLY NEED THIS ??????๏ฟผ
It does. All the community resources are made to enhance the user experience and to make it easier for the user. Without that, the resources dont make any sense
The Community Resources exists as a central repository of libraries which the Discord team has vetted and sanctioned for use. Additionally, it is comprised of libraries which are - for lack of a better word - comprehensive. There is no reason for your extension to be on that list, and there is especially no reason for it when...
Chill please, I don't want to be a cause of conflicts
Description
I'm building bots that can be forked and installed by multiple people. This bot uses about 12 slash command that all need to be created at install time. Because they have to be create individually on a per-guild basis, people keep running into rate limit issues, causing anywhere from 2 to 10 commands being missing.
Why This is Needed
Without individual command creation and a pretty low rate limit, even with generous timeouts I can't get these commands to instantia...
Wow, this pull request is just flagrant self-advertising and I didn't even realize. I've put the above statement in bold for emphasis.
@Evo-F
#3101 #3049 and many other community resources PR's were made by the owners of the library, its a clear sign of leadership, to take steps before anyone else. advertising has nothing to do with it. Currently 50k people are using the discord-buttons and imo many of them would support this PR. And to everyone who comments on this discussion after th...
Can be done already with https://discord.com/developers/docs/interactions/slash-commands#bulk-overwrite-global-application-commands and https://discord.com/developers/docs/interactions/slash-commands#bulk-overwrite-guild-application-commands
Oh awesome, thanks! Will this endpoint work for both create and update?
Yes it will set it to the exact list you sent, any not sent will be removed.
Great thanks! Closing this now :)
All right, one last time:
we are making it easier for people to use the buttons.
While partially true, easy is very subjective. Your library does a lot more (which breaks our interface for even something as simple as sending messages/interactions).
This is how you send messages with components using discord.js:
https://discord.js.org/#/docs/main/master/class/TextChannel?scrollTo=send
.send({ content: 'something', components: [row] });
.send({ content: 'something', component...
c7f528a Add missing error codes for stage instances (#3... - MinnDevelopment
Hello Crawl,
"While partially true, easy is very subjective."
You may be right, but doesn't < discord.js v13 use this type of messaging?
We try to make sure that users who use our package feel almost no difference between the discord.js v12 and discord-buttons methods
"Now what happens when select menus release? Users will come to us with:
Why does this not work"
Sorry but you are wrong here, with our add-on you can send components with many options:
`component: Messa...
Hello,
I would like to ask what does discord-interactions-js, discord-slash-commands and slash-create do in the discord documentation when this is also implemented in djs v13?
Hello,
I would like to ask what does discord-interactions-js, discord-slash-commands and slash-create do in the discord documentation when this is also implemented in djs v13?
They use JavaScript/TypeScript but do not extend/modify discord.js, I don't see how this is relevant. I already covered that in my post above.
They use JavaScript/TypeScript but do not extend/modify discord.js.
I don't see how this is relevant. I already covered that in my post above.

discord-interactions-js does not exist
They use JavaScript/TypeScript but do not extend/modify discord.js.
I don't see how this is relevant. I already covered that in my post above.okay
discord-interactions-jsdoes not exist
c7e3419 Clarified data types for some unclear timestamp... - JakenVeina
This won't render properly, can you use the unicode char?
Thanks for the PR, but moving forward we are no longer listing extensions to library interfaces in this documentation because of issues like this. If the library is useful as standalone tool, that's ok. Otherwise, library maintainers can choose to list extensions on their own sites/readmes.
Thanks for the PR, but moving forward we are no longer listing extensions to library interfaces in this documentation
This PR adds Nyxx to community libraries and the interactions sections (sorry for misspelling libraries in the commit name)
Description
It is not clear from the API docs who receives the interaction when a webhook uses message components.
Current Behavior
Unknown; it appears that no one gets the interaction.
Screenshots/Videos
Not applicable, the Discord client notifies the user that the interaction failed and nothing is received from the bot.
Client and System Information
I use the latest version of discord.js
The only time your bot gets the interaction data is if the bot created the webhook, if it's using one created by a user or another bot then you won't get any interaction data.
Ah, makes sense. Did I miss that in the documentation or should this issue stay open as a feature request to add that?
afaik it's not documented yet
The interaction will go to the application that owns the webhook. Webhooks without an associated application allowing components is a bug.
shouldn't link buttons work without an associated application?
Bots can't post video embeds.
That structure is only there to show you can read it if one is sent.

explain this
that's clearly a link embed, not a bot embed
yes
Le mar. 22 juin 2021 ร 10:33, Advaith @.***> a รฉcrit :
that's clearly a link embed, not a bot embed
โ
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/issues/1253#issuecomment-865820517,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASKQVCFAPWBFELO2WWYJ4G3TUBKFXANCNFSM4JZTHW3A
.
Description
Unable to jump to the text channel from the embed message posted by the bot on Android.
Steps to Reproduce
Precondition
- A text channels (e.g. #secret-talk) exists.
- A bot that posts an embed message with this text channel (e.g. #secret-talk) specified in the form ""
Steps
- The Bot posts a embed message that contains "".
- Open the embed message in Discord App on Android.
- Tap the text channel name in the embed message.
**Expected Behavior...
Client bugs like this should be reported in Discord Testers
OK, I will report there. Thanks.
Maybe it could also be added to the allowed hyperlink protocols? At the moment only http(s) and steam are automatically turned to links in messages
@typpo this should be re-opened and merged. the current code is wrong.
I've just tried this as well and it works fine. Here's a full Flask app that you can run as an interaction endpoint:
from flask import Flask, jsonify, request, abort
from nacl.signing import VerifyKey
from nacl.exceptions import BadSignatureError
# Your public key can be found on your application in the Developer Portal
PUBLIC_KEY = '...'
app = Flask(__name__)
@app.route('/', methods=['POST'])
def index():
verify_key = VerifyKey(bytes.fromhex(PUBLIC_KEY))
s...
7f86cd3 Hyperlinkify endpoints in topics/threads.md (#3... - Apacheli
lol looks like I copied your code when I ran it. you're right, the example was incorrect.
81268e3 fix the python example in the security and auth... - wgwz
Support for this ought to be underway especially since apple has announced new computers running their M1 SoC - with ARM. Every day this is put aside only brings about more dissatisfied users.
As it turns out, there are actually a few white buttons in app already, updated the comment for that.
Maybe it could also be added to the allowed hyperlink protocols? At the moment only
http(s)andsteamare automatically turned to links in messages
Buttons urls currently only supposed http(s) as the protocol. However, in a normal message content, you can use almost any other protocol by wrapping the uri in < >.
Eg. <steam://install/698780>, <com.epicgames.launcher://store/en-US/p/discord>, <calculator://1>, <ms-settings://notifications>, <dict://discord>.

but you are using like this: [abc][abc.com]

Description
Currently when trying to send an emote mention via a bot like this (when in an inline code block) will result in discord parsing the emote and replacing the content with just `:emote:` when the parser should just ignore it and display.
But this is only when the bot IS NOT in the guild that has the emote, if the bot IS IN the guild that has the emote sending the mention in an inline code block works as expected.
Steps to Reproduce
- Create a bot appli...
you need to use it like this: [abc](abc.com)
but you are using like this: [abc][abc.com]

I love this.
I think discord://-/users/316860714260234243 is good for author in embed, and discord://-/settings/advanced is good for text like this:
How to get id:
- Go Advanced setting(discord://-/settings/advanced)
- Enable developer mode
...
You can probably just remove the first sentence and have it start with
Slash commands are made up of a name...
Same here, does this break links?
Does this break links in other places? IIRC ## can be a standalone link like INTERACTIONS_SLASH_COMMANDS/endpoints whereas ### nests it like INTERACTIONS_SLASH_COMMANDS/something-endpoints.
Just double check
You can probably just remove the first sentence and have it start with
Slash commands are made up of a name...
Currently, when GET'ing registered commands, a command's options do not show whether the command is required or not. I have an option where required is set to false but this information is not given. I need this to be made available as currently my command registrar is flagging the command as different on Discord than locally and updating it and I don't want commands to be made unavailable every time I restart. *Of course I realise I can have it ignore this flag but would be easier if I cou...
[discord/discord-api-docs] New comment on issue #3161: Registered Commands GET Should Show More Info
The required field is included only if true. If it is not set then you can assume it has the default value of false
[discord/discord-api-docs] New comment on issue #3161: Registered Commands GET Should Show More Info
Alright, that would make it a little easier then. But to be honest, it would still be useful to have all information available.
bbc2f39 Additional docs for thread type and slow mode - ajpalkovic
Description
I have a beta bot with some slash commands. I coded everything to make them work, and want to put these slash commands onto the main bot. I only have one option right now: get all slash commands from the beta bot and, one by one, put them onto the main bot.
A solution to prevent this and gain time would be to have the create slash command endpoint be able to create multiple slash commands at once
Why This is Needed
Right now, slash commands have to be create...
You can already do this with this endpoint and this endpoint.
Not sure if it's just me but this seems weirdly worded
This seems to only apply to 4 # or more, not 3.

/channel-object here is ###.
[discord/discord-api-docs] New comment on issue #3161: Registered Commands GET Should Show More Info
All information is available. We intentionally do not send certain fields when empty/false to save on some bytes in the payload size.
For non-ephemeral messages, you could just listen for MESSAGE_CREATES on the gateway that have the same interaction id, and I don't get why you would need the message data for ephemeral messages? (they don't get stored)
Hello!
A 5/5 per server limit is way too low for my application... I am live feeding chat data via custom webhooks and corresponding avatars for every chat user (so I sadly can not group messages together) and chat is coming in at about max 10 per second.
Would it be possible to increase the rate limit for my application? :) It would not overload the servers or anything
Message id of ephemeral message could be useful for handling component interactions, for example
The overlay has quite limited target availability compared to most other features of the SDK, so I thought it would be worth pointing that out directly in the docs rather than devs having to find it out the hard way in a completely separate support article.
I also believe the article is incomplete in terms of unsupported targets, as, AFAICT, the overlay is also completely unsupported on Linux, eg, the Game Overlay settings section is completely missing in the Linux client and the `OVERLA...
There is no documentation on how to provide a reason when kicking/removing a member from a guild as per https://discord.com/developers/docs/resources/guild#remove-guild-member
However a reason can be provided when banning: https://discord.com/developers/docs/resources/guild#create-guild-ban
It is evident you can provide a reason when kicking a user, as an optional query parameter. Please document this.
https://discord.com/developers/docs/resources/audit-log#audit-logs
The docs are inconsistent, if this is a response implying it doesn't need to be documented, bans should have the reason removed.
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
Additional Note: Bug Sqaushers+ at Discord Testers Discord Server told me to report this bug here!
Thanks
However, in a normal message content, you can use almost any other protocol by wrapping the uri in
< >.
Thanks, had no idea that worked but it does the trick. I guess it's still a bit of a hack though, and if it was officially supported it probably wouldn't open a pop up and could be handled entirely in the client (it uses a standard URL open so if you don't have the protocol set up e.g. on Linux it doesn't work).
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
The API behavior is already documented.
Discord's ban feature stores a ban object with the ban reason, and it can be viewed in Server Settings > Bans. Therefore, the endpoint takes a ban parameter.
Other features (such as kick) do not permanently store a reason, but some create an audit log entry. For those, the endpoint does not have a parameter for setting the reason for the action, but you can set the audit log reason with the audit log header, as described in the Audit Log page I linked.
For those, the endpoint does not have a parameter for setting the reason for the action
A reason query parameter does work for the kick endpoint.
The API behavior is already documented.
Discord's ban feature stores a ban object with the ban reason, and it can be viewed in Server Settings > Bans. Therefore, the endpoint takes a ban parameter.
Other features (such as kick) do not permanently store a reason, but some create an audit log entry. For those, the endpoint does not have a parameter for setting the reason for the action, but you can set the audit log reason with the audit log header, as described in the Audit Log...
You should be using X-Audit-Log-Reason here. If anything, we should probably deprecate other forms of specifying reasons, instead of further documenting them.
Greetings! We would like to add Orca under the Community Resources section.
Orca is a modern C library (really), fully ratelimiting compliant and is being actively developed.
Our ratelimiting implementation:
discord-ratelimit.c - The ratelimiting source code
discord-internal.h - Where our ratelimiting datatypes are defined
Please let me know if...
@artem30801 ah I see, sorry about that. I never used buttons on ephemeral messages so I never thought of that use-case
Description
I have my bot do a bulk overwrite of guild application commands on startup (in response to GuildCreate) to ensure that the commands are always up to date and consistent with the bot's logic. I've noticed as I've added subcommands for my bot that the order that subcommands appear to the user in the client appears based on the order that the subcommands were first created, rather than the order of the options under the top level command.
This behavior seems to only app...
My repro steps might be somewhat off, I'll need to try creating a more reduced repro (I guessed a bit on those steps based on my actual bot's behavior), but the description is accurate and something funky is definitely happening with the order on the first nested level.
I think cover_sticker_id is optional
Think it needs MANAGE_EMOJIS perm
You can rename this to MANAGE_EMOJI_AND_STICKERS
which is now MANAGE_EMOJI_AND_STICKERS
Additional use case for Moderation
Bios have full markdown, meaning users can put links in them. This makes them an escalated moderation concern. There are many automoderation bots that already scan user presences for malicious content, slurs, spam, advertising etc. The moderation concerns for presences are doubled for bios as they always display regardless of presence, and have full markdown allowing someone to link to grabify (for example) in their bio. Malicious bios are more akin t...
Tool tips already exist on mobile that work similarly to this, so I think this is a great idea
Tapping and holding on most interface buttons seems to do something like this
Yea, this would be a great way to implement it, I'm pretty sure iOS has something similar as well

I think it's good
Description
If bot can set bio, It will be so good.
Why This is Needed
Playing (Text) has max character limit, and only one line.
But with bio, status can be used as "status", and can break line so it will be easy to read.
With status: 100 Servers, !help to see h...
With bio:
100 Servers
!help to see help
https://example.com
Alternatives Considered
(None)
Additional Details
(None)
You should be using
X-Audit-Log-Reasonhere. If anything, we should probably deprecate other forms of specifying reasons, instead of further documenting them.
What constitutes an admin action?
If this is added it would make sense that its behind a privileged intent?
It would contain personally identifiable information, and usually stuff like presence etc are protected under privileged intents. Something like, not being able to call the REST endpoint if the bot's application doesn't have the intent enabled and approved?
Considering its an "About Me", I think it would be more appropriate to show the bot's application description, like in the integrations section on server settings or connections on user settings.
Amazing, glad to see a C library.
there is a list here https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events
I would suggest an edit in that case.
- Whenever an admin action is performed on the API
+ Whenever an auditable action is performed on the API
Since that implies to me ANY audit action can have a description.
Agreed. I'm surprised there aren't more requests for this feature? Having an option to hide all admin commands hidden just makes logical sense. Why would ordinary members need to view admin commands at all?
This is commonly requested in communication channels other than the issue tracker. No idea why this can't be done on the frontend currently but it's on their radar.
This behavior is working as intended. The backend validates and sanitizes emotes, replacing invalid ones with their text representation.
The backend should not parse codeblocks for emotes. This should be considered an API bug.
Unfortunately because we best-effort parse code blocks using regex on our backend, it would be possible to bypass our sanitization efforts with enough creativity. For this reason we replace emoji in all content.
this will be fixed in the next api deploy
i am unable to reproduce this behavior, so it may have been due to an outage. if you're still having issues please let us know.
you can use Guild Slash Commands for cases like the one you mentioned.
https://discord.dev/interactions/slash-commands#create-guild-application-command
Guild-specific commands have rate-limits and for anything more then a couple dozen guilds you'll be rate-limited and unable to make more commands. Even if these were lifted, it'd still be a painful user experience.
Also, this still doesn't combat the problem of organizing your slash commands into sections.
Mocked up some Desktop hoover tooltip options



1e756c5 Adds documentation for sticker_items - jfurrow
369f20d Corrects capitalization - jfurrow
595bdb4 Make consistent with other resources - jfurrow
###### Message Sticker Item Structure
this might make more sense + I don't think ` is used in any headers
2a4e350 Reorganizes sections - jfurrow
Yeah I adjusted, ty for noticing!
101c24d Adds documentation for sticker_items (#3171) - jfurrow
We'll serialize the banner image hash on the user object so that bots can start passively getting that field.
As for bios, we absolutely hear the moderation use cases, but we're not comfortable making those accessible right now.
The behavior that we (and you) see, outside of potential moderation issues, is people putting really sensitive, personal information in their bios. We aren't comfortable with that data being scraped.
Privileged intents are great, but the authorization model i...
Description
A member of our Discord has encountered a weird behaviour when playing around with interactions. I couldn't find anything in the docs that could justify this behaviour and therefore I am asking here.
When sending an ephemeral message with a button as an immediate response to a slash command, the message is nearly completely missing in the component interaction create event when clicking on the button.
Steps to Reproduce
- Invoke a command i.e. /help
- Respon...
Description
Receiving a packet from a button component that is attached to an ephemeral message is missing fields in the message object.
Steps to Reproduce
- Create a ephemeral message via a slash command that contains a button component
- Have the user interact with the button component.
Expected Behavior
To receive the packet as documented on https://discord.com/developers/docs/interactions/message-components#buttons
Expected packet: https://pastebin.com/raw/589zK...
This is working as intended. We don't store ephemeral messages so we have nothing to send you.
This could possibly even go hand in hand with #3031 at least for desktop, changing the tooltip as the alert for pressing.
e0c355a Document new thread guild features - ajpalkovic
\* Creating a private thread requires the server to be boosted. The [guild features](#DOCS_RESOURCES_GUILD/guild-object-guild-features) will indicate if that is possible for the guild.
The created thread is always a
GUILD_PRIVATE_THREAD
How would this work if the guild doesn't have the ability to use private threads? This default, as mentioned further down, was kept to match the behavior from when the docs were first published but now that private threads are (unfortunately) locked behind boosts, most servers won't be able to use them, making keeping this default kinda useless from what I can see
afad612 Update docs/resources/Channel.md - ajpalkovic
The request will fail with a 400
I think that's the right behavior, because the alternative is a bot that didn't get the memo so it thinks it is about to create a private thread and then dun dun dun turns out now it's a public thread. Surprise!
This should actually say defaults to now anyways since it isn't always a private thread anymore
We need to get some precommit hooks for formatting on this repo.
Yes please! An addition to this, would it be possible to get build previews / be able to self host the site (this kinda open-sources internal code so definitely a heavy ask on the second option) so that we can check things like links. Just in general too being able to refer people to a build preview is great when the actual site goes unbuilt for a bit.
ps. i'd be happy to separate this into a separate FR issue / make som...
I just DM'd adviath a couple minutes ago and they said the discord staff would open source the docs site possibly (can't confirm but I would take their word for it)
Slash command options give users a clear way to navigate bot complexity when the source of that complexity is multiple inputs per command. But what if you want to build a bot that appears to have only one input per command, based on free-typing and natural language processing?
The current approach doesn't seem work as well because you have to have a required option that appears after you type your command which doesn't do anything except reiterate what the command does.
To be concrete...
this is a regression from (A) which non-slash command bots can already do.
I wouldn't say comparing client UI and sending a message is apples to apples, let alone regression; they're not really comparable.
Furthermore, I can see how in some situations having the inline tooltip seems a bit redundant, but I'd personally favor consistency over UX for some semi-specific scenarios
Can the value in minutes for 3 and 7 day be mentioned? Would be handy imo
Same as the other location
Description
Currently, relative timestamps (``) will update once you reload/restart your client. It might be a way better if it updates live like a countdown. Also in a few seconds could be replaced with the real amount of seconds.
Furthermore, it might be useful to select how detailed the relative timestamp should be. Eg. when 1 hour 21mins 20 seconds are left it will show in 3 hours. You might be able to define `` with 2 for 2 time units. This would result in `in 1 hour 21 mi...
That list isn't very clear about which specific endpoints accept a reason header, only which received events might have a reason. That's two completely different things, and while one might be used to infer the other, it doesn't make for very clear documentation.
I think the new about me would be awesome. When using the application description you would missing the markdown feature except you allow the application description to support markdown.
In addition it would be also nice to allow bots to set an (application) banner for better show of the branding.
This is definitely something that I would like to see. But yes, it would be good if it showed the application's description by default.
About me/bio would help http/interaction bots a lot, so the developers of those bots could put a message there stating it doesn't need to be online to work etc.
A good example would be @advaith1's activities bot, the amount of times people has asked why it's offline is just crazy.
and it could be used for maintenance/outage messages like #1769 was asking for.
And could be used to put information for the bot like prefix, website, support and/or help command. Instead of doing it throu...
Will these display properly? I looked docs/resource/Guild.md, and it seems that footnotes have newlines between them.
Description
Interactions bug
Steps to Reproduce
1 - Send button interaction
2 - Send reply to interaction with type UPDATE_MESSAGE (6) without any content
3 - The API will throw error Cannot send an empty message but on the app you don't have the text This interaction failed
Expected Behavior
It should text This interaction failed
Current Behavior
It doesn't say anything as if we have sent an answer which is correct
Screenshots/Videos
https://use...
Just as information, the relative timestamp does update without a client reload. When you hover over the timestamp (or it may be anywhere in the message containing the timestamp) it updates. It also updates after you switch channels and come back.
Description
In the websocket INTERACTION_CREATE event, on data.data please provide the style, label, disabled and emoji options of the clicked button
Why This is Needed
So we can have more information to the clicked button
You can include those in your custom_id, styles should be irrelevant (a green button that does exactly the same as a blurple one, that behaves differently just because they're of different colors, is counter-intuitive).
If you want the full data, you can fetch the message and read the components property.
Yea, i can get the button by filtering the message components, but what if on the message i have multiple buttons with the same id?
Why should buttons get the same id? You just need to give them different ids. An ID is supposed to uniquely identify something.
what if on the message i have multiple buttons with the same id?
That's the developer's fault, the custom_id should be unique and distinguishable between others, and only this property should be taken into account when collecting responses.
Also what @Luc1412 just said.
You can include those in your
custom_id, styles should be irrelevant (a green button that does exactly the same as a blurple one, that behaves differently just because they're of different colors, is counter-intuitive).If you want the full data, you can fetch the message and read the
componentsproperty.
Ok i guess my button id would be 3 lines or something i guess, like, come on man, its obviously needed.
please provide the style, label, disabled and emoji options of the clicked button
To add, I don't see any need to provide the Button's disabled field in Interaction data.
If a Button is disabled, it can't be clicked on, thus cannot send an Interaction.
If enabled, it can.
Ok i guess my button id would be 3 lines or something i guess, like, come on man, its obviously needed.
custom_id has 100 characters, or what's the same, 100 bytes you can fill in. Enabled/Disabled (you can't even click disabled buttons, as @TwilightZebby pointed out, but anyways) can be 1 character (true/false), colour can be 1 character too (red/green/blue/none), labels are always smaller than 80 characters (due to the limit), although they're useless.
**Si...
the relative timestamp does update without a client reload. When you hover over the timestamp (or it may be anywhere in the message containing the timestamp) it updates. It also updates after you switch channels and come back.
My bad. I just tested it on mobile (IOS) On Desktops and Web it seems to update on interaction, but on mobile it doesn't.
I don't need this for me, just a lot of people asked me to ask this feature
Also if i wanna send buttons with the same id and different styles?
If i send in 2 rows buttons with the same id??
Semi-update: description has been updated to 4096 max characters
Nothing for message content yet.
When i get a an access token for a user with only the IDENTIFY Scope and refresh it i get a new access token response which contains the following Scopes: CONNECTIONS, EMAIL, IDENTIFY, GUILDS_JOIN, GUILDS.
It seems like the only scopes returned by the refresh request are the scopes i mentioned above. I wont get another scope i requested in the array.
You can send buttons that have the same ID, same style, same label, and same color.
The custom ID serves to distinguish between buttons, you need a way to discriminate them? Tell your users to use them correctly, because there's realistically no proper way to do so otherwise.
custom_id exists for the sole purpose of the developer identifying the component. disambiguating duplicates is therefore not really something that makes sense in this context. the solution, if two components are not supposed to do the same thing, is to not use the same custom_id for them.
Fixing the refresh and showing individual seconds are both planned. Additional formats are not, due to how the locale specific formatting works.
I think the plans could change once Intl.DurationFormat becomes stage 3 and available in V8 (as well as Electron), but not sure about Java's support for duration formatting, which is needed for the Android version.
Add possibility to choose a color on the discord dev's portal, and when the bot join a new server, the automatical created role takes the choosen color instead of grey ;)
I forgot that i have granted my application at an earlier time more permissions. so there is no issue.
As bots have access to almost everything that is possible with Nitro, why not give them the access to animated avatar or banner ?
Duplicate of #1568
Hmm, before publishing this request, I searched but not found.
He wrote "colour", it's the reason I didn't find it.
The premise of this issue is false. Bots don't have access to Nitro features, and the cross-server emoji and animated emoji are an exception to this. There have been numerous requests for bots to get certain Nitro features - it is unclear whether they will get any, and if so, which.
@Armando Lopez Jr @.***>
On Sun, Jun 27, 2021, 8:42 AM Evo Fearnley @.***> wrote:
The premise of this issue is false. Bots don't have access to Nitro
features, and the cross-server emoji and animated emoji are an exception
to this. There have been numerous requests for bots to get certain Nitro
features - it is unclear whether they will get any, and if so, which.โ
You are receiving this because you are subscribed to this thread.
Reply to this email directly, v...
The Guild Member Update event from the gateway should also have the avatar field.
Duplicate of #1568
Hmm, before publishing this request, I searched but not found.
He wrote "colour", it's the reason I didn't find it.
@NLB94 Well colour (British) and color (American) are the same thing. ๐
Description
on the endpoint /users/:id give banner like the avatar one and about_me which provides user's about me string
Why This is Needed
We can make banner command like the avatar one and more things
also we can check if the about me includes any bad words, for the bot moderation
Description
Discord Developer Portal Whitelist Email link brings you to a blank site
Steps to Reproduce
Whitelist Email page at
>https://discord.com/developers/applications//whitelist
Adding a user to the whitelist for an application
send whitelist invitation
user checks email for link
pressing link brings user to a blank page and does not accept the invite
Expected Behavior
Should bring you to presumambly an oauth2 page to accept invite
Current Behavior
Bl...
looks like these (at least THREE_DAY_THREAD_ARCHIVE) aren't included in gateway events (at least GUILD_CREATE) until the guild is edited? they are included in HTTP though
If a button is disabled ๐ซ, and mouse hover the button ๐ฑ๏ธ , a text appear ๐ฌ , and say for example : "Missing Permissions" โ
@HellPie Hi I'm having the same problem, Do you find any solution for it?
That'll be resolved before launch
aa50223 Update the embed description character limit. (... - GoldenAngel2
This could in theory just be an extension of #3074, right?
Description
Hello, my bot uses Lavalink to play sound and Erela.js for everything about the player, everything worked fine except when on my VPS, I decided to put a firewall (you never know) and since then no sound has been released is produced.
I have checked everything: the firewall does allow Lavalink to connect (it connects without any problem), no error in the console, everything works.
But when I deactivate my firewall, everything works again normally, I think that this pro...
I confirm that no connection status is returned with message.guild.me.voice.speaking.connection.status or message.guild.me.voice.speaking, not even a mistake.
9798a07 Add warning about overlay platform support (#3164) - Jake-Shadle
This sounds like a problem with your firewall :/
These events do not have a event type, and are identified solely by opcode.
actually since we don't have a specific section for this, no link might be better for now.
Events are Dispatch payloads that correspond to changes in Discord state.
It's not quite that easy. We use a custom markdown parser to build our docs site, and it's pretty well intertwined with "business logic" of the rest of the dev portal routing. So it wouldn't be quite as easy as just open sourcing it.
I'm not sure if I'm supposed to mark this ready for review or if you are, so I'll let you hit the button and then I can merge.
Yeah, give me another day or so. I don't want to cause any merge conflicts from future PRs + I need to look over all the changes I made to make sure I didn't miss anything.
I feel like there should be a mention that the name of the unicode emoji is of Discord's emoji set, rather than the official unicode name.
Added code 20035, which can obtained when creating a private thread in a server that has only public thread support.
Description
A sandbox mode guild for developers to test features that are otherwise premium-only (ie. locked behind Nitro or server boosts).
Why This is Needed
Currently, there's no easy way to test features that relate to store channels, Twitch integrations, premium thread features, etc.
Alternatives Considered
One alternative would be to purchase Nitro or server boosts but a tier 3 server boost can get quite expensive for a hobbyist developer. Another option would be to ask...
Description
I'm trying the execute a webhook with components. In Discord the components will not be shown.
Steps to Reproduce
I executed the following command on my terminal:
curl -X POST -H "Content-Type: application/json" -d '{"content":"Test","components":[{"type":1,"components":[{"type":2,"label":"Click me","style":1,"custom_id":"click_one"}]}]}' WEBHOOK_URL
(WEBHOOK_URL should be replaced by a valid webhook url)
Expected Behavior
I exp...
sending components is now limited to bot-owned webhooks
Thanks, that should be documented. This was not clear for me.
If we can make dummy account that is only in sandbox, It'll be very good.
Yes it is from the firewall, yet I looked at everything, everything connects fine normally but I have no response from the bot's voice status, not even an error. So can I get some information on how packets are transmitted on Discord, or just what protocols are used? Because I really don't understand why, please, just a little bit of information could help me :/
The response message for hitting max invites "Maximum number of invites to this server reached." leads you to think that invites have a per guild limit, however from what i can see, they are per channel as i am only getting this error with 1 specific channel in a guild, all other channels are able to generate new invites. I think the error could be adjusted to be more insightful.
Upon a little more digging it seems the channel has a limit of 1000 invites
Thanks for this report! It looks like we missed a spot when we updated our language to go from whitelist -> allowlist. I just merged a fix for this, should be out shortly!
awesome thank you so much!!
On Tue, Jun 29, 2021, 13:39 Ian Mitchell @.***> wrote:
Thanks for this report! It looks like we missed a spot when we updated our
language to go from whitelist -> allowlist. I just merged a fix for this,
should be out shortly!โ
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/issues/3184#issuecomment-870789418,
or unsubscribe
<https://gi...
[discord/discord-api-docs] New comment on pull request #3156: Add Nyxx to libraries and interactions
I don't think they accept lib extensions anymore, unless nyxx-interactions is completely standalone
I'm probably poking at semantics here, but...
| AGE_RESTRICTED | 3 | guild has mild NSFW content that may not be suitable for users under 18 |
This reads better to me.
Interactions are kinda confusing right now due to the information for interactions being lumped into slash commands. This PR fixes that and also makes so minor corrections to some outdated information.
There are a lot of affected links, and I think i've caught them all, but likelihood of that being actually true? nah.
Description
It would be super cool if bots could flash their own image banner on members!
Why This is Needed
Bots can represent their awesome features in the banner.
Alternatives Considered
Add an option on Application Page to set banner.
Additional Details
(None)
Could also be placed:
in other words, SFW.
[discord/discord-api-docs] New comment on pull request #3156: Add Nyxx to libraries and interactions
Ah right, if thats the case I'll remove that from the PR
Description
Editing/sending a differed message in an archived thread will return an 500 error
Steps to Reproduce
- create a thread
- Send a differed message in the thread (don't send the message content now)
- archive the thread
- send the message content
Expected Behavior
The message should at least be updated in the tread, or the api should return a 403 error.
Current Behavior
The message is not updated, and the api return a 500 error, after ~ 20-30 sec...
Modify Guild Welcome Screen allows for any arbitrary string of up to 152133 characters value to be passed for emoji_name in welcome channels where emoji_id is also provided. This is also reflected in the return value of Get Guild Welcome Screen and makes WelcomeChannel.emoji_name an unreliable field when emoji_id is set along with the other issue that emoji_name isn't updated when the relevant custom emoji's name is changed.
Steps to Reproduce
Make the following request ...
Adding to this, it is not limited to a different string than the name of the emoji, but can also be null, which will store it and then return it when requesting the welcome screen
Hi folks -- the next deploy has a fix that will make the behavior consistent with what's described above. Type 7 updates will generally display the (edited) indicator, but not if the only update was to components.
The channel name is allowed to be 1 character as per
.
68271d4 [Interactions] Select Menu Documentation - msciotti
05c1080 [Interactions] Select Menu Documentation (#3200) - msciotti
"custom_id": "class_select_1",
"description": "You get heals when I'm done doing damage",
"custom_id": "class_select_1",
"description": "Turn 'em into a sheep",
For some reason I do not see these changes in my local editor, which is very odd.
| min_values? | integer | the minimum number of items that must be chosen; default 1, min 0, max 25 |
| max_values? | integer | the maximum number of items that can be chosen; default 1, max 25 |
This is missing the disabled property
Description
For Select Menus, specifying a min_values without also specifying max_values causes a 500 Internal Server Error. This is presumably because the provided min_values would be greater than the default max_values of 1.
Steps to Reproduce
The following Select Menu payload would produce the error:
{
"type": 3,
"custom_id": "select_menu",
"min_values": 2,
"options": [
{ "label": "One", "value": "1" },
{ "label": "Two", "value": "...
a213097 Update Message_Components.md (#3203) - IanMitchell
Description
Offer a way to let the user select between the following types:
- Member/User
- Role
- Channel (Text, Voice may be separated and combined option)
- Mentionable
Why This is Needed
Currently, Components unfortunately doesn't support any type of Selecting Roles, Channels, or users. I think selects is the best component type to solve this.
Alternatives Considered
- Let the user send a message (Current Way)
- Any other component type eg. Textfields (if t...
This is so awesome.
Thanks <3
I'll take a close look later.
@Lulalaby fwiw I already PR'd this into D#+ a while ago. You can find it under Entities/Interactions/Components
this will be fixed in the next api deploy
Today, Discord implemented Custom Stickers, a paywalled feature that implements proper alt-text.
Is Discord able to provide any update or thoughts on the implementation of alt-text per the Issue above?
I wrote a summary of the current state of alt-text on Discord (aka, behind a paywall).
@Lulalaby fwiw I already PR'd this into D#+ a while ago. You can find it under Entities/Interactions/Components
i know, you already did awesome work, but i have another software where it needs to be integrated <3
Hello!
I don't think we should elaborate too much on what these definitions are. I'm not sure that, as written, these accurately describe how we classify guilds internally, and of course, those definitions will change over time. I'm fine with having the names be documented, but getting into the details of what each of those names means, seems like low value for bots, and just future frustration when they inevitably do change.
Additional support for alt text within our client is planned for Q3 this year. No further updates at this time.
Additional support for alt text within our client is planned for Q3 this year. No further updates at this time.
Thank youuuuu :)
@advaith1
Do you know the update, create & delete events?
Could you add them if they exist?
Fixing the refresh and showing individual seconds are both planned. Additional formats are not, due to how the locale specific formatting works.
While additional formats are not planned. Could you think about that for a Long Date that includes day of the week display without the time ?
Currently you can display "Tuesday, 20 April 2021 16:20" but you can't only display the Long Date "Tuesday, 20 April 2021".
There are many use cases where you want to specify a date and include the day o...
Description
The UI for select menus seem to go away from their original position.
Steps to Reproduce
- Click on a select menu dropdown thing
- Scroll up and/or down
Expected Behavior
It probably should not do this.
Current Behavior
The box does not move its position when scrolling.
Screenshots/Videos

Client and System Information
...
Was the removal of nullability for this parameter intentional? (same question for the global variant)
Is there a specific endpoint or gateway event that contains this? Both /guilds/:guild_id/stickers and /guilds/:guild_id/stickers/:sticker_id don't return this as far as I'm aware
This was probably not intentional and 1 of the 5 thousand bugs found in my "fixes" ๐ I might open another PR
/guilds/:guild_id/stickers and /guilds/:guild_id/stickers/:sticker_id both seem to return this field if the bot making the request has MANAGE_EMOJIS (MANAGE_EMOJIS_AND_STICKERS) permission in the guild
@advaith1
Do you know the update, create & delete events?
Could you add them if they exist?
found out
Sticker Create:
"stickers": [
{
"type": 2,
"tags": "star_struck",
"name": "Miku Dance",
"id": "859934445338624001",
"guild_id": "858089281214087179",
"format_type": 2,
"description": "Dancing cute miku",
"available": true,
"asset": ""
},
{
"type": 2,
"tags": "eyes",
"name": "test",
"id": ...
Description
Right now, when a guild sticker gets added/removed/update, they all simply fire GUILD_STICKER_UPDATED, which, for hopefully obvious reasons is a bit of a pain in the side.
Why This is Needed
From a library dev/maintainer pov, there's two options that can be deduced when it comes to handling updates to stickers (and by extensions emojis, it seems)
Either:
- Go through every entity in the gateway event to check what changed, and determine if it's a creation, dele...
I'm not against the idea of having more GUILD_STOCKER_* events, but I have a feeling this to be consistent with guild emoji events (although UPDATED should be UPDATE I suppose). I'd prefer if this behavior was the same for emojis too.
As do I; this issue goes towards emojis as well, didn't realize that they had the same behavior until I looked at what our library does.
Which is the "dump cache and throw it to the user to handle" approach
Am a bit unsure,
Is it really now?
Who can approve this?
@advaith1 do you know something.
6492434 Update Message_Components.md (#3207) - BanTheNons
Thanks, that should be documented. This was not clear for me.
I agree, I had to find out here on GitHub, instead of in the Documentation like we are supposed to, that this only works with bot-owned webhooks.
This was very confusing as I had already used components in normal webhooks, and suddenly found my code to no longer work.
Thanks Discord for having a silent "feature".
This would be amazing. Especially so you could test store channels
d688a26 Document disabled field for select - typpo
364f0a0 Clarify application-owned webhook requirement f... - typpo
| disabled? | boolean | disable the select, default false |
cf94e52 Update docs/interactions/Message_Components.md - typpo






