f5f15bc Updates Privileged Intents information (#2174) - SinisterRectus
#github-notifications
1 messages · Page 26 of 1
Thank you for the proposed changes, but I do not think there is anything wrong with the text as-is!
10b7fe5 Document ApplicationCommandInteractionDataOptio... - Shadorc
abb1e34 twitch "discordapp" to "discord" (#2639) - DaStormer
4fa8fe0 About resolved objects in interactions (#2630) - EQUENOS
db1fa79 Document message types 16 and 17 (#1779) - advaith1
Thank you. This was merged manually.
+1 to being able to set colour on webhook messages, at the very least. I can understand keeping the [BOT] tag and other ways to prevent user impersonation, but in a server with something like PluralKit, it can be quite visually confusing to differentiate different messages.
After testing this, I started receiving a 429 but having the headers say that I'm still good to go. Probably a bug in their code that isn't returning the right headers, but this did cause an issue where the body's retry_after was different from the header's x-ratelimit-reset-after. Looks like all the libraries should add checks if this ever happens, or at least always use the body's retry_after. I was using the header which caused my lib to go into a loop of retrying at whatever the `x-...
Description
Two endpoints are returning incorrect headers for their ratelimit
-
DELETE-/channels/:channelId/messages/:messageId(messages of under 10 seconds)
-> Messages under 10 seconds should have no ratelimit (return no headers) or at least be 3/1 (i think) -
PATCH-/channels/:channelIdw/ name and topic
-> Editing a channel's name/topic should have it's own bucket, but returns just the default 10/15 bucket
Steps to Reproduce
- `DELETE-/channels/:channelId/me...
I feel like some examples should be added, but not sure whether this is the best way.
maybe just link to https://en.wikipedia.org/wiki/Media_type or something instead of listing examples?
Description
When a text file is uploaded, the content_type in the attachment object has charset=ascii, such as text/markdown; charset=ascii. This likely causes emojis to not render properly in the file preview: they might show as 👀 or just Could not render this file preview..
Steps to Reproduce
- Upload a plain text file such as markdown or json
- Look at
content_typein the attachment object in the message object
Expected Behavior
A Unicode charset, suc...
Description
Hello, I have a problem with discord.py. When I want to find information about server in embed, informations are incorrect. Such a bad members number or server owner isn't found.
Steps to Reproduce
Fix guild some guild commands, mainly server owner and members command.
Expected Behavior
I expect, that this problem will be fixed. :D
Current Behavior
Screenshots/Videos
discord.py 
Description
For non-slash commands, the user has been able to delete the message invoking the command, slash commands actually make this easier because if you delete the invoke it also deletes the response. Currently, this is only possible for users with the MESSAGE_MANAGE permission, but granting that permission to a user isn't really a good idea so it would be useful to add separate permission to just delete your own invocations.
Why This is Needed
- If you have multiple ...
If you read about HTTP status code, you understand that 500 is server error and just api outage. If issue is fixed, please close
@SNvMK no, 500 is just Internal Server Error, that can also by caused by api bugs, it’s not always due to outages. There are many API bugs that consistently cause 500s, probably including this one.
I think the issue here is that javascript strings are treated as utf16 (try uploading utf16le text files; the preview will render) and so it's probably a client issue.
Description
When adding choices to command options, if the type is set to 4 (integer) and a choice has a value that happens to be the same length as an ID (channel, role, user, etc.), then selecting that option and sending the command results in the error "Application command interaction option values must be of type string, integer, or boolean".
Ran across this while tinkering with commands to add roles. Role type doesn't support choices to filter down to specific roles, ...
#2448 ids are too big for the integer type, they recently started rejecting input of integers above that limit, i assume that also applies here
#2448 ids are too big for the integer type, they recently started rejecting input of integers above that limit, i assume that also applies here
Good catch! Looks like I missed #2578 as well. Closing as duplicate.
+1 to being able to set colour on webhook messages, at the very least.
Description
This issue suggests add more verified properties to user informarion api, which can retrive via oAuth2 authorization.
For example:
{
"id": "80351110224678912",
"username": "Nelly",
"discriminator": "1337",
"avatar": "8342729096ea3675442027381ff50dfe",
"verified": {
"email": true,
"phone": true
},
"email": "nelly@discord.com",
"flags": 64,
"premium_type": 1,
"public_flags": 64
}
Why This is Needed
Currently, Discord's user api o...
This info block is pretty difficult to find and seems kind of out of place here. It makes more sense to document this directly for the endpoints.
Description
The width and height properties on the Attachment object may be omitted in certain cases (for example, if the attachment is a PDF. The documentation currently marks these as nullable, not optional.
Steps to Reproduce
- Look at the docs.
- See that the properties are marked as nullable.
- Receive a message with an attachment, such as a PDF
- See that the properties are not null, but rather, omitted
Expected Behavior
The fields should eith...
Remove user#get-dms as it doesn't serve any purpose being in the docs
If you want to ensure users on your server have a verified phone number, you can set your server's verification level to Highest. In doing so, Discord prevents anyone who doesn't have a verified phone number from sending messages, unless you give them a role.
That said, I'm not really against this idea, as technically someone can already know whether you have a verified phone number: If a server's veri...
Just to clarify it doesn't serve any purpose as it will always return an empty array and it's not a resource associated with any OAuth scope.
why is this closed?
nobody seemed interested as well as merge conflicts and I wanted to make a different PR so I deleted the fork. You're welcome to PR the changes again if you want.
Description
Allow the bot to manage reactions in the DM.
That is, delete user reactions, etc.
Why This is Needed
Some bots use a reaction controller that only works on a server where the bot can manage messages.
For example, using the command !help. There is a reaction forward, backward, etc. When clicked, the user's reaction should remove
Expected Behavior
Reactions should remove in DM
Current Behavior
Reaction doesn't remove in the DM.
using reactions as buttons isn't optimal and reactions aren't designed for/don't work well for that use case; real buttons will release this year
in the past staff have declined feature requests that are just for making it better to use reactions as buttons.
using reactions as buttons isn't optimal and reactions aren't designed for/don't work well for that use case; real buttons will release this year
in the past staff have declined feature requests that are just for making it better to use reactions as buttons.
While there are no buttons, we will use reactions, waiting for API update :)
Looks like we're experiencing similar problems with USER_UPDATE events now on a different client in the same server.
Both with members intent enabled and disabled no USER_UPDATE events for avatars/usernames arrived at the client.
Client ID for missing user events: 528937022996611082
Session IDs: f41258240bc80ab89b2099e5f44b254a, 83a4ae4268c927e4e6c8de2cb3f48412, 42ff2bf7b3d622cb33684c824d976ed0, 311d1d20afd6fe107b7fcf5c89ec51a4, 41d3f89dac2b0ba6d0d805b4197b957d
Description
Allow the bot to manage reactions in the DM.
That is, delete user reactions, etc.Why This is Needed
Some bots use a reaction controller that only works on a server where the bot can manage messages.
For example, using the command !help. There is a reaction forward, backward, etc. When clicked, the user's reaction should removeExpected Behavior
Reactions should remove in DMCurrent Behavior
Reaction doesn't remo...
We have added privacy policy and terms of service link support in the developer portal.
This issue appears to already be fixed
This is no longer needed since timestamp is static.
We have no current plans to make it possible to subscribe to individual events. Groups of events allow us to classify events for use cases rather than forcing developers to decide what they must listen to, including events needed for guilds vs dm and restricted/noisy event groups.
e887382 Voice Server Update endpoint is nullable (#1741) - Shadorc
How about
Some scopes require approval from Discord to use. Requesting them from a user without approval from Discord may cause undocumented/error behavior in the OAuth2 flow.
Let's turn these to "requires Discord approval" instead of "allowlist only"
Let's just make it
"You can invite up to 50 people."
"...requires approval from Discord."
Let's do:
We currently do not allow access to RPC for unapproved apps without being on the game's list of testers. We grant 50 testing spots, which should be ample for development. After approval, this restriction is removed and your app will be accessible to anyone.
We have added privacy policy and terms of service link support in the developer portal.
@night Awesome, thank you. Do you happen to know when and where these links will be shown to the end user?
Just doing some housekeeping as I cross-reference open issues.
This issue is tied to this PR: https://github.com/discord/discord-api-docs/pull/2737
Will close this issue once that PR gets merged (which is just me slacking, sorry).
There's a lot of discussion here, but I think the crux of it has actually been brought out by others. Tying commands to roles and users is more in line with how people run servers, and is generally more flexible than tying to Discord permissions. Creating...
We do not plan to add the message object or its member object to reaction events as this data is not readily available without additional queries.
I think its OK since it's just the command object, and not an actual "code snippet" of something that might run
I think consistency in our docs just has Returns <number>
Discord is not intended to be a file host, and it is not clear how larger attachments would be used. Bots do get increased upload limits in guilds which have increased server boost level, but we do not have plans to increase the upload limits for bots at this time.
It is not only for you. Try checking whether you get error code
10066or other one.
yeah it's
nil 'HTTP Error 10066 : Unknown application command permissions'
We have no plans to document and support sending multiple files since the upload file size restriction is equal to the request size restriction. You can still send multiple, but your request may exceed our maximum size allowed.
38410f2 PR review - msciotti
We have no plans to allow querying explicitly via discord tag. As was stated earlier in this post, you could query by username or nickname in a guild context and then filter by tag. Slash commands also allow you to receive user information directly now, which is much preferred.
9bfef59 default_permissions DM behavior - msciotti
We have no plans to enable discussions on this repo. We encourage discussion in our Discord server rather than on GitHub, as our moderation and tooling is better equipped to support conversation there.
3730106 Document proper response for permissions GET - msciotti
We have no current plans to extend the Game SDK with spacial audio. We used to support left/right panning, but this feature wasn't really utilized and fell outside the primary use case for Discord (group voice, rather than game voice).
We have added privacy policy and terms of service link support in the developer portal.
@night Awesome, thank you. Do you happen to know when and where these links will be shown to the end user?
They should appear in the OAuth Screen when inviting the bot to my knowledge.
I don't believe we will ever document and maintain an emoji list given it is an open Unicode standard. Our emoji shortname list is derived from https://github.com/joypixels/emoji-toolkit so you could rely on this open source library for a mapping of short name to unicode. There is one open bug we account for though, so check their open issues (number 35).
The limit has not changed, but it is not a hard limit and there are cases where a guild can exceed the limit.
We have no plans to allow users to delete bot messages as they are not the poster of the message nor have moderation capabilities. This is no different than prior to slash commands, where using a command could result in a bot reply you could not delete.
We have no plans to allow users to delete bot messages as they are not the poster of the message nor have moderation capabilities. This is no different than prior to slash commands, where using a command could result in a bot reply you could not delete.
But previously as a bot developer you could listen for the user deleting the invoke and then delete the response, which came in quite handy, now as we migrate to slash commands we can't do that anymore as the user can't deter the invoke
For now, you could do a /vanish or /delete message: id to work around this restriction. In the future, this could be solved by custom right-click options that are supposedly planned for future interactions.
It is not possible to defer the choice of ephemeral or channel message as we must render a placeholder loading message at time of interaction response. You must decide if you want to render the message publicly or privately, and followup on that accordingly. While we could allow you to move a message between the two in theory, ephemeral messages take a different route for message sends (and are not persisted) and insertion into a fast-moving message list may result in unexpected placement in ...
ba84c27 PUT all guild command permissions - msciotti
If you type out the full name of a greyed out command, you are prompted for the arguments, and the client lets you send it, just to receive an interaction failed message
@rxdn this is tracked internally now
6802936 Additional details around heartbeating (#1527) - z64
ff0c831 update message application docs (#1540) - FasterSpeeding
7333bac Adding endpoint to search members (#1577) - DeviantException
There's numerous code review comments which have not been addressed, and given managed group dms are somewhat deprecated and not really used I don't imagine there's much use to documenting these changes anyhow.
367ea81 Document AuditLogEntry.user_id nullability (#1659) - FasterSpeeding
fixed via 17a2d897ed94f1f67cee1000d561f2dc49a84b4a since i cannot update your PR
f4e8a85 Add Sleepy Discord to community resources (#1684) - yourWaifu
this looks to no longer be applicable on production
2641d98 Removal of rpc.api mentions (#1782) - bergeo-ogg
b00b47c update store beta period copy (#1726) - applebee1558
ad3a7fd Fix create invite target_user_id field and ad... - FasterSpeeding
5b63dae document missing fields in Create and Modify Gu... - advaith1
afc04f2 document missing properties in Modify Channel P... - vladfrangu
This project looks stale, so we're not going to include it in our documentation at this time.
58e0dc6 OnCurrentUserUpdate has no parameters (#1824) - NathaanTFM
0801b82 ImageManager.GetData is not callback based (#1825) - NathaanTFM
8f6e743 DisconnectVoice returns Result via callback (#1... - NathaanTFM
a96ea52 Document source_guild and source_channel in Web... - cherryblossom000
I think we had better leave this where it is, given it is an oauth2 route
it has OAuth2 in the name but it is actually a bot route, not an oauth2 route. It also makes more sense to have the application info in a separate page as there are other places with reference the application object outside of oauth2.
The game SDK does not replace RPC. It simply uses it.
this is just an app bug. the validator will permit 512/1024 in the next app release
9bea48b fixes typo in LobbyManager example (#1899) - NathaanTFM
af53098 add details of message_reference object (#2053) - advaith1
18514cb Improve documentation of 4014 close code for vo... - Bastian
I think it's important to send developers to the respective documentation before linking them to library support channels. In addition, invite links may expire or go invalid (meaning it would be a bit of a maintenance burden to keep them up to date).
We would prefer developers not post questions on our documentation repo, and instead visit our support server or support portal.
2983d7c Intents listed twice in example identify (#2161) - thetayloredman
since this PR has merge conflicts and needs some work (and is made by a deleted GitHub user), i'm gonna close this.
8de0174 remove guild_subscriptions from docs (#2162) - angelobreuer
ffb7f84 update example gateway URI (#2163) - angelobreuer
a3b813b Mention RFC 7009 next to the token revocation U... - LikeLakers2
203b916 Update changelog and chunking requirements (#2178) - MinnDevelopment
de09ff2 Update integration docs to v8 behaviour (#2175) - FasterSpeeding
aee6333 Update the warning below the URL tables, to ref... - LikeLakers2
468fd9f Document 4002 voice close code (#1818) - davfsa
f658a22 clarify some large bot concerns (#2165) - msciotti
b7278cb document attachment dimensions being optional (... - BartArys
we intentionally do not document the remaining internal fields
5796503 Authorization Code token exchange ignores `scop... - LikeLakers2
c04b3e2 Add Discord Developers server to Documentation ... - jpbberry
e4d9120 Add section on ETF specific restrictions (#2262) - jb3
f2ccd2a Document Welcome Screen Endpoints (#2398) - ckohen
0780a47 document discord-api-types as a community resou... - vladfrangu
1425c19 add harmony library to community resources (#2429) - AkiaCode
Redoing PR #2061 as I closed in order to make a different PR on accident.
It doesn't appear like Slashy adds much on top of what other existing resources provide. It may be better to contribute any improvements you have made in your library upstream to other libraries. Is that something you have considered?
5040091 Add discord-interactions.py to community resour... - LiBa001
technically it's a partial application model, which returns more than cover image. for now, let's just leave these additional fields undocumented :)
b761ed0 Document the integration create, delete and upd... - FasterSpeeding
9e74594 Fixed footnotes being out of order. (#2538) - littlemissantivirus
fa9a073 Document "deaf" and "mute" on the guild member ... - FasterSpeeding
f72b084 Remove before pagination from Get Reactions doc... - FasterSpeeding
I don't believe we will ever document and maintain an emoji list given it is an open Unicode standard. Our emoji shortname list is derived from https://github.com/joypixels/emoji-toolkit so you could rely on this open source library for a mapping of short name to unicode. There is one open bug we account for though, so check their open issues (number 35).
I'm fine with not having a maintained list of all the emojis (and there is less of a need now that we know what package you are using, w...
Having an online resource that shows up on search engines is a very valuable resource and by far better than something such as a chat channel on Discord or IRC.
I wonder if it's worth turning on GitHub Discussions 👀
They have stated that they will not be turning on discussions here
https://github.com/discord/discord-api-docs/issues/2296
I do hate to bump things, but since https://github.com/discord/discord-api-docs/pull/1776 is now merged I'd love to refactor how we handle channel moving, which would be much, much easier to handle if this were to become a thing!
Should this also undocument private_channels from READY?
@msciotti Thanks, though the credit for the UI mockup goes to @Maanex :)
I feel I should point out that simply adding a way to tie individual slash commands to roles and users with overrides won't be enough for the majority's use case (although useful in its own right). One should not preclude the other, and being able to define our own permissions for our bots would be incredibly useful.
I don't think this issue should be closed once that PR is merged, since the proposed solutions in...
Honestly, we don't have much consistency around this. If it's in flux, you can put a
> warn
> This logic is still in testing and could be changed
"Update Current User Voice State"
9f9c283 Update oauth2 example webhook and extended bot ... - FasterSpeeding
Thanks for your PR. Unfortunately I think we will pass on including this in our community resources section at this time since it encourages users to place their client id + secret into an external website.
c7d2588 Add USE_SLASH_COMMANDS permissions (#2632) - MinnDevelopment
cb104e8 add descriptions to tables under Guild Object (... - DaStormer
this copy has already been updated, removing the image
This seems to have been accidentally re-introduced by (#2103)
46c2c25 Link to slash commands in Intro page (#2650) - denbeigh2000
many of the sorts documented in this PR are not consistent or partially correct. one should only assume a sort exists based on pagination support of an endpoint. any other sorts you may appear to see should not be trusted to always return with that sort.
if an endpoint supports pagination with before, then you can assume a descending sort
if an endpoint supports pagination with after, then you can assume an ascending sort
if an endpoint supports both before and after, then it dep...
closing this as it is a duplicate of another PR
Thanks for the PR. Since this looks pretty similar to https://github.com/eunwoo1104/discord-py-slash-command (which we already list and seems a little more popular) we're going to pass on adding this at this time. If this project diverges and becomes more distinguishable we can take another look in the future.
The existing documentation looks correct to me, and I don't believe we should be documenting an RFC in our documentation. We do link out to the existing RFC and most HTTP libraries support making multipart file requests out of the box.
6c5ae1e Add Deno Discord Slash Commands to the Communit... - Redstoneguy129
c05143b Add Code Primer for C++ with no engine (#2666) - LennyPhoenix
e53e224 consistency in references to query string (#2679) - NCPlayz
Since this is a client bug I don't think we should document this behavior. Hopefully we'll fix it at some point in the clients, but until then locked should be considered only where permission overwrites match.
c3f55a5 update copy confusion around allowed metnions - night
1b4e363 Document application invites and update docs fo... - advaith1
fd7c6e4 Document rtc_region on voice channels (#2692) - ckohen
4f6fac7 document the watching activity type (#2694) - advaith1
39b254b document application privacy policy and tos fie... - advaith1
I think merlinfuchs' proposal which rxdn posted in https://github.com/discord/discord-api-docs/pull/2737#issuecomment-808521557 would be the best solution:
default_permission should take a permission bitmask integer, not true or false. This would allow for commands to be restricted to users with certain permissions, without having to add all users and roles individually for each guild.
that way it still keeps the flexibility and possibility for overrides set by server admins, but also a...
Since it's not production ready yet I'm gonna close this for now. Feel free to followup in the future if this should be listed.
This looks to already be addressed.
71cc444 API Documentation for Stage Channels. (#2751) - tpcstld
6b816cb document the invite reminder system message and... - advaith1
we do not typically document rate limits, as they can (and do) change without notice as new abuse cases arise
ab7a51f document Attachment.content_type (#2762) - HuyaneMatsu
44fa7bf clarify custom emoji in reaction endpoints (#2768) - MinnDevelopment
ca5064c remove user dm channels endpoint (#2770) - tbnritzdoge
ccf07ea clarify user avatar cdn endpoint is valid with ... - Apacheli
The section being modified here is for image content hosted on our CDN. Attachments are not related to the image endpoints, and would need to be their own separate section
Closing this as hopefully we've split this up to multiple issues by now.
Might be worth documenting that the CDN endpoint for message attachments also ignores the "size" querystring parameter
The section being modified here is for image content hosted on our CDN. Attachments are not related to the image endpoints, and would need to be their own separate section
Though it does seem to work nonetheless? e.g https://cdn.discordapp.com/attachments/528367776419676180/829157567816400976/tS0epEM.png
Is it just not supposed to be officially supported?
It looks like we're inconsistently using localized strings in discovery endpoints. Until that gets resolved we can't reliably document this.
It isn't clear what your example URL is proving works? Our attachments live on the same subdomain, but they are not solely image links nor do they support image transformation.
Are they not part of the CDN? Or is it a different process for storing message attachments?
You can put any file you want as an attachment, not only images. They are a part of the CDN but this reference is for images. You would then put attachments on another subsection, maybe potentially right under this one.
Ah I missed the image part, got it. Are there any other endpoints other than the attachments/ endpoint?
The section is just labeled "CDN Endpoints," I don't get why it has to be limited to image endpoints only?
The section is just labeled "CDN Endpoints," I don't get why it has to be limited to image endpoints only?
The heading section is labeled "Image Formatting" Which is also a strange name tbh.
@night Would renaming the section and make it more of a general "CDN" section with the image stuff just moved down to where the Image Data section is be a good idea?
The section being modified here is for image content hosted on our CDN. Attachments are not related to the image endpoints, and would need to be their own separate section
@night At the very least without the newline at 812 the example looks like this is in the documentation:

It renders fine on GitHub but whatever renderer https://discord.com/developers/docs/ uses is unhappy.
And Discord didn't like it when I sent multipart requests without the other newlines that I added. The library I use for C++ declared it 'out of scope' and I had to do it fr...
Without this newline, one of the code blocks for multipart-form examples renders as such:

All of the other code blocks are preceded by a blank line except for this one.
I'm not sure of a good way to format the endpoint? I add links to the reference so I can't do a codeblock, any ideas?
[discord/discord-api-docs] Pull request opened: #2777 Inserted blank lines before multipart payloads
Without these blank lines Discord responds to multipart/form-data requests with
{
"code": 50006,
"message": "Cannot send an empty message"
}
You can see an example of a code change that makes my implementation match the documentation and cause the error here: https://github.com/DiscordPP/discordpp/commit/c0283ded34826bb457a578954c51493ae3b0b75f
Broke this up into #2776 and #2777 with more detail and without the \r\n comment which had really only been an issue for me when I was confused by #2776.
Description
There should be an option to upload assets directly from a file, instead of having to manually upload them to the developer portal.
Why This is Needed
It can be annoying to upload many different assets, and also it may not be possible in some cases. As an example, a music player that uses Discord SDK (like FooBar) cannot put album art as the LargeImage since assets need to be pre-uploaded.
Alternatives Considered
Another possible solution...
I absolutely agree with @advaith1 here, a simple boolean value is simply not enough to use the full potential of slash commands. Whether it be Nihlus' proposal to handling permissions or simply allowing a bitfield as the default_permission, I don't mind, but the current solution is more limiting than it has to.
This issue / feature request was not about allowing commands tied to individual roles or users, this issue was specifically directed at slash commands being regulated by discords al...
I can still reproduce the issue easily, and I have had a ticket open with support (10238951) where devs claim it would have to do something with using youtu.be links instead of youtube.com, sorry, but they are incorrect, and I had a hard time trying to convince them, but no matter what I say, they keep pushing the youtu.be thing.
Dear devs,
for some reason, the same message being sent through the api as channel/private message DOES get the thumbnail embed, while the webhook message does...
I have also noticed that sometimes sending an image link on its own, through a webhook will embed that image for a second and then the image embed will disappear. Seems to be a client-side thing?
They are marked as being both optional and nullable
Reference: https://github.com/discord/discord-api-docs/blob/master/docs/resources/Channel.md#attachment-object
I have also noticed that sometimes sending an image link on its own, through a webhook will embed that image for a second and then the image embed will disappear. Seems to be a client-side thing?
edit: yep, exactly what they say here #1821 (comment)
never had the issue you described, what we experience here is the thumbnail never showing up when posting website links like youtube/twitter
Yes, but this issue was created one day before that was corrected x)
Didn't check the date, sorry
ee94bd5 inserted blank lines before multipart payloads ... - UndarkAido
Since we return attachment URLs in the messages API, I don't believe we need documentation for message attachment URLs after all.
I suspect an internal error is occurring here, and it looks like we apply ban before removing the member. in the next deploy we've inverted the logic to remove the member before banning them, thus in an internal error at least the user will have been removed first.
this will be fixed in the next api deploy
this will be fixed in the next api deploy
i think we're gonna leave this as-is for v4 as it's been this way for years.. in v5 it will be fixed
this will be fixed in the next api deploy
this will be fixed in the next api deploy
this looks to be an issue only on gateway, not when accessing the api. this will be fixed in our next service deploy.
we are building new interactive elements which will not rely on reactions. because of that, we have no plans to extend reactions to interactions at this time.
this will be fixed in the next api deploy
this will be fixed in the next deploy
this will be fixed in the next api deploy
this behavior is intended as the endpoint only returns custom guild emoji.
I suspect an internal error is occurring here, and it looks like we apply ban before removing the member. in the next deploy we've inverted the logic to remove the member before banning them, thus in an internal error at least the user will have been removed first.
Does this change affect the order in which the GUILD_BAN_ADD and GUILD_MEMBER_REMOVE gateway dispatches get sent?
this will be fixed in the next api deploy
avatar will be set to null when an override is present until we've resolved it in the next deploy.
this will be fixed in the next api deploy
I think the documentation for these makes sense, as a snowflake is an int64
We have no plans to document sub limits. In the long run we hopefully will be able to get rid of the couple limits which do not conform to our documented guidelines.
This looks to be because the font we're using does not support these characters. I don't see a way to support a fallback font either, so it's unlikely this is something we will fix anytime soon.
Our solution to this is called interactions, but we only support outgoing events for users which interact with your application. To receive other data (events unrelated to your application) you will need to continue to use the Gateway for the foreseeable future.
We have no plans to expose a permission solely for external use. As Jake stated above, please defer to using roles.
eaa12cb remove invalid params from refresh token example - night
this has been fixed in the docs
Thanks for the feedback. I think this would be better suited for https://feedback.discord.com since this feedback is related to the product itself rather than API/bots.
We have no current plans to remove the captcha requirement on the oauth2 page, as it is intended to prevent abuse.
The updated duplicate close doesn't seem relevant since this is about getting stream properties rather than actually joining the stream.
Thanks for the feedback. I think this would be better suited for https://feedback.discord.com since this feedback is related to the product itself rather than API/bots.
That's like saying I should've not posted it in the first place.
From sll places is the feedback page imo the worst option since your chances at getting your feedback seen is similar to getting struck by lightning.
If you don't have a large fanbase that likes your feedback or shares it to everyone is the chance of getting i...
[discord/discord-api-docs] Issue opened: #2782 Standardization of Unicode Emojis accepted by the API
Description
I would like to continue the discussion in #2723 and request a standardization of what Unicode Emojis the API accepts as valid.
Why This is Needed
After looking at what Discord uses internally in the client (thanks to @Emzi0767's extraction of the internal list) they all seem to use Variation Sector 16. This differentiates them from Twemoji, which is where Discord seems to get all the emoji ...
I'm Commander Shepard and this is my favourite issue on the repo.
I'm personally in favour of server-side normalization. Considering that it's a giant lookup list, and the rules for when the selector is optional are more-or-less trivial, it is not too difficult to implement.
@night Just to clarify the fix is for both issues right? Or just guild prune?
Well that just sounds like special privileges... I don't think Discord wants to manage custom rate limits for individual bots either...
@OoLunar except that Discord already has systems in place to raise the rate limits for other endpoints on an application or guild basis. This probably wouldn't be much harder
Discord can only raise the global ratelimit per bot, not per-route ratelimits.
it looks like no embeds being specified when a custom avatar was requested allowed embeds to be unset when we didn't have information for it cached. this will be fixed in the next api deploy.
This looks to be working as intended. allowed_mentions are per-request and do not persist on messages. You will need to pass the expected allowed_mentions with your PATCH as well.
@night the issue is that if you don't pass allowed_mentions it gets wiped. This doesn't happen with any other field, for example if you don't pass content your message content does not disappear. Has this been fixed?
This was closed without further comment and it was stated this was being left open to track. This does not appear to have been fixed from minimal testing, was this closed inadvertently, is this thought to be fixed but hasn't been?
The PR linked to his is merged, and thus it is assumed to be fixed. Post specific client reproduction steps and we can look again.
The PR linked to this is merged
This isn't publicly visible.
Post specific client reproduction steps and we can look again.
I'll get a full set of details tomorrow as it is late here, I was still able to reproduce this on the stable windows client between when this was closed and when I posted.
for me (on stable 81648 and canary 81777) it accepts 9007199254740991 but for 9007199254740992 and higher, it errors

we will support 1 level deep of parentheses in the next deploy.
This behavior appears to be working as designed, and invalid (or rate limited) payloads sent for presence updates will be silently discarded.
I am not able to reproduce this on Safari 14.0.3. Perhaps this was a Safari issue they have fixed
I am not able to reproduce this behavior, and suppressing embeds only edits a flag on the message (emoji + content changes are not related to it)
it is unlikely that we will change the api to account for weird attachment names. my recommendation would be to use simple ascii names instead, like f'image{n}'
I understand the original intent of the feature request, yes! What I'm saying is, at this time, we do not have plans to allow assigning discord-specific permissions to individual commands.
The solution that we have now shipped is the system we believe in moving forward.
That's not to say we will never allow discord permissions to operate this way, but it is not currently planned. Though it is noted, so I can promise we won't forget about it.
We have no plans to document rate limits for each route as they can and do change without notice. Down the road limits may also vary per developer or even be dynamic.
Update on this: we had a PR that got merged, then reverted due to some failing tests.
We'll be adding:
/webhooks/<webhook_id>/<webhook_token>/messages/@original
/webhooks/<webhook_id>/<webhook_token>/messages/<message_id>
And will document them when they're merged!
We have no current plans to extend the message object to include non-mentioned users. While we display in the markdown a user as a mention, we do not parse and store these ignored mentions.
Since this spike of woes related to the rollout of privileged intents has died down, we're gonna close this again as a wontfix. If you have a need for remaining below the verification limit, please reach out to our Developer Support team to discuss your situation.
The usage looks correct. Are you expecting it to fire on launch if the app is already closed, or at runtime? Lastly, are you sure your callback function isn't firing? I'm not familiar with the Debug.Log function being used, but it is strange that there is nested parens. If that were just a normal string, would anything print?
We removed support for global capturing shortcuts in our app (for increased security), which broke this behavior in a non-repairable way. I've removed the opcode + event, and removed the documentation.
We do not persist allowed_mentions, so when editing a message you will need to unfortunately pass in allowed_mentions again to avoid parsing the content into a mention.
We have no current plans to change this behavior. It is not feasible to serve the entire member list of every guild to bots, and as guild sizes continue to grow it is unlikely we will support this operation over gateway forever. If you haven't already, I would recommend taking steps to move to persisting and caching data. Having stale data is generally considered OK, and you can update data as you need to instead.
After a client update, no longer reproducible. Based on the timeline of when closed and when this was experienced, I suspect this is still technically possible to have issues with outdated clients and that it is not also validated on the server-side, but I can only infer that.
We have no current plans to change how this permission works, as servers may be using it in production for limiting bots' ability to embed content.
While we could improve documentation to note that you may receive a 429 earlier than you expect, there's not much we can really do here to improve the developer experience around rate limits. We want to give flexibility to update a route more frequently, while also protecting our infrastructure against abuse. While we could reduce the entire endpoint to 2 per 10, I suspect that would be much less well received.
If you receive a 429 -> use Retry-After header to determine when to retry the r...
We shipped out a change today which should improve bucket tracking for shared bucket routes like this. The bucket key will now be distinct when applied to differing routes. This doesn't explain why you encountered a 429 on this PATCH route, and while there is a shared bucket being used it is still a unique count per route. It could be due to your time being off, which is why we now include a Reset-After header.
This is actually a Discord infrastructure limitation. It is something we've been tracking internally and will likely eventually be fixed, but as it is not related to the API or Bots I've closed this issue.
Thanks for the feedback, but this sounds more like general product feedback than specific to bots or our API. Someone above has linked a similar feedback request on our feedback site, which you may find useful and could upvote or comment on.
This is not really a bug, so I've reclassified this as a feature request. We intentionally cache these assets heavily. It's possible down the road we will change/improve this behavior.
We have no current plans to support bots adding messages to the audit log, but we do support bots adding audit log reasons to the audit log through the X-Audit-Log-Reason header
We have no current plans to add the channel object to message events based on the discussion in this issue, but if there is an interesting use case not specified already in this issue perhaps we could reconsider.
I see. Ideally there's some sort of indicator in the UI that notifies the user that "X asset is being cached, and will be available soon".
iirc they showed immediately until it stopped working sometime last year, was that an intentional change?
@night Permission system is indeed part of an API contract.
Checked
Description
Ability to turn off typing indicator to use discord anonymously.
Why This is Needed
So people can lurk throughout the servers without any fear.
Alternatives Considered
Additional Details
I don't think so
Description
The embeds sent by my bot are sometime randomly missing the attached images. It seems to work like 98% of the time and it actually sends the embed with the proper images (thumbnail and image). However in some rare cases the images just don't show up at all. (see screenshots) Other users also report that they don't see them, I also tried looking at the posts through my phone app and they don't show up. So it shouldn't be a client issue (unless all clients are affected).
I...
For client feature requests use: https://feedback.discord.com/
We do not persist
allowed_mentions, so when editing a message you will need to unfortunately pass inallowed_mentionsagain to avoid parsing the content into a mention.
Funnily enough, this issue also happens on the apps, would you mind forwarding this information to that team too @night ?
I believe it was forwarded internally, the client bug was originally marked won't fix likely due to the thought that it was an API bug, but as of two days ago has been fixed on Canary.
Description
--as the title suggests--
maybe this could be done by adding everyone who is in the allowed_mentions or by creating an entirely new field
Why This is Needed
For example, if you have a /warn @user command for moderators on a server, the response could be ephemeral and only visible to the moderator who executed the command and the user who has been warned.
This way, the bot does not need the bot scope (e.g. to send a DM to the warned user), making interactions...
Thanks for the reply @night, however that does not answer the core question - what should library developers do in the event we hit a sub-request limit.
The least we could benefit from is a different bucket value for when a request goes through a sub-request limit... Even then, we'd have to re-do our internal handlers to see if this ONE route gets one of these params, and give them a separate handler... Not really feasible (as such ratelimits can come and go, as it have been said before), ...
Hi there,
It'd be nice if we could send a post request with a bot token and get the Client ID, this can be used for generating an invite link for a bot.
They should appear in the OAuth Screen when inviting the bot to my knowledge.
@Andre601 I'm not seeing them on bot OAuth screens, are you?
The client ID is in the token, encoded as base64. Refer to the image below:

You can get the id of your application using the Get Current Application Information endpoint. It's probably not the best idea to depend on the way tokens are generated as this is not officially documented / guaranteed to work.
The client ID is in the token, encoded as base64. Refer to the image below:
No, that's the ID of the bot account. For most bot accounts that is the same as the application's client ID, but sufficiently old bots have IDs that are distinct from the app.
As said above, you can use the /oauth2/applications/@me route for this purpose.
@night I suggest you read over the conversation again. This isn't about documenting the rate limits themselves -- instead, it's about documenting that rate limits can be hours- or even days-long.
referenced_message is only intended for replies. This will be fixed in the next API deploy.
We fire a MESSAGE_UPDATE event when a message is crossposted, so bots (and our clients) are able to detect this behavior already.
It is unlikely we will change this behavior. We intentionally put minimal data into the audit log rows in order to consolidate similar records which may otherwise spam the logs.
a0b0355 Update applications link on oauth2 docs - night
513f811 Update applications link on how to page - night
this will be fixed in the next docs deploy
A width/height of 0 generally means the image could not be loaded by Discord when we tried. Most of the time these are caused by transient issues, but in the case of Twitch stream previews it could be because a preview image is not yet available.
this will be fixed in the next docs deploy
I don't think this violates any ACL and is available to every guild by toggling the community feature. We generally restrict settings and values based on ACL
The docs are written by humans, and thus there will always be a level of inconsistency we must live with. Pull requests are welcome if you want to help achieve consistency, but since the documentation is accurate I am closing this issue.
I see. In the next API deploy we will stop reparsing content for mentions in PATCHes when it does not change
We ended up shipping a Use Slash Commands permission, which should resolve this concern.
We have no current plans to expose slash commands outside of the WYSIWYG editor since much of the slash commands functionality relies on its tech.
Since you can now PUT commands, this issue looks to be resolved.
The docs are written by humans, and thus there will always be a level of inconsistency we must live with. Pull requests are welcome if you want to help achieve consistency, but since the documentation is accurate I am closing this issue.
Unfortunately creating a PR for something like this would go against the contributing guidelines.
This issue appears quite generic and not concise with its request. If you have specific feature requests or ideas for slash commands arguments I would recommend opening up a new issue for each request you may have, as it helps us to prioritize and track individual requests.
This issue looks to be resolved.
1f6b82c clarify that allowed_mentions is per request, n... - Tropony
@night Did you mean to merge it? You stated this will get fixed in the next API deploy :thinking:
We are working on adding validation instead of normalization, which will provide a more consistent experience.
Thanks for the suggestion. We have no current plans to change this behavior, as detecting when a bot uses the / prefix is just not possible and making default commands work different is confusing UX.
We have no current plans to expose retrieval of sessions for bots, but we may allow you to configure a list of origin IPs: https://github.com/discord/discord-api-docs/issues/788
@night Would an x button to close the slash commands UI and just send the raw message be possible?
I cannot reproduce this behavior. We did upgrade out auth server library a few months ago, so perhaps that fixed this. If you have a reproducible curl request I can take a closer look.
We have no current plans to extend voice states to include watcher ids. Stream watchers are not tied to voice states, but instead tied to streaming states.
Thanks for your feedback. We have no current plans to change the core AST design of the slash commands further. Client + library abstractions can make the ergonomics of traversing the tree easier for developers, but the verbosity of the API allows clients/libraries a more consistent and explicit parseable structure.
[discord/discord-api-docs] New comment on issue #2446: Misleading type information on embed provider
this will be fixed in the next api deploy
f85e2f7 clarify disconnected voice opcode for voice ser... - night
this will be documented for the close code in the next docs deploy
Thanks for the feedback. Unfortunately due to how application commands are stored on our infrastructure there is not a way to retrieve all created application commands, and you will need to query for your application's commands on each specific guild.
When an integration is removed from a guild its application commands, webhooks, and bot user are all cleaned up. This ensures that there are not orphaned commands laying around.
Thanks for the feedback. Discord does enforce some conventions to normalize commands, specifically names must be ^(\w|[-_])+$'. Outside of validation + normalization on our APIs and clients, conventions are not something Discord has the power to enforce without manually approving each command (which is not something we plan to do).
Thanks for the feedback. This unfortunately falls outside of the API/Bots realm, since Twitch/YouTube account sync and membership screening are Discord product features unrelated to the API/Bots team. If you have specific feedback about this new community servers feature, you could submit some feedback over at https://feedback.discord.com
This issue looks to already be fixed
This looks to have shipped with the UX improvements noted above.
In the next API deploy the system user flag will disappear. None of our clients use it, and it looks to be a mistakenly exposed internal flag value.
This issue looks to be resolved
This API behavior does not appear to cause any issues, and looks to be working as intended. The API doesn't validate what bits are stored in allow vs deny since we have a defined pecking order for applying them: https://discord.com/developers/docs/topics/permissions#permission-overwrites
As for the client audit log, the API appears to generate an accurate view of the state change (it logs both the old and new value for deny/allow). The client is likely misrepresenting that state change and...
Closing this as a wontfix per above.
This looks to already be fixed
We have no current plans to change the permissions on the authorization flow. The reason it replaces existing permissions is because we allow the user to uncheck permissions (meaning the user does not want to grant them to the bot).
This may be fixed as I'm not able to reproduce this issue.
Thanks for your feedback. We have no current plans to limit the types of channels which can be chosen with the channel type, but we may improve UX on this in the future.
Any updates / workarounds on this?
If you check the users pfp for an animated gif, it will say
This looks to already be resolved.
Description
When responding with type 5 to a slash commands you see the xxx bot is thinking... thing. If the bot doesn’t follow up in the 15 minutes it will show forever which can confuse new bot developers and users.
I want it to be like "this slash command timed out" after 15 minutes even if the bot responded with type 5 to be less confusing.
Why This is Needed
It would be better for users and less confusing.
Alternatives Considered
Just not responding with t...
do not response unless you have something to add so discord staff such as mason,night,advaith can see it and respond
this will be fixed in the next docs deploy
@typpo I saw you forked my readme my dream was to have a discord employee fork it or star it. am so happy now. I created pull to help u https://github.com/typpo/xxxxnewbotdevxxx/pull/1
Thanks for the feedback. Unfortunately due to how Discord stores messages internally (we operate a large scale distributed system) we have no way of retrieving a count of messages for a channel or a user.
Okay, would it be possible to get an error or warning response from the api in such cases? (or does that already exist and I am just missing it?)
Because to my code it looks like the message sent properly without issues, but the image isn't there. And the only workaround I see is fetching the message after sending it and checking the image data to ensure that hight and width are not set to 0. If they are, resend it.
This is an intentional limitation to prevent large message storage sizes. The limit is 6000 for all embeds in a message.
We have increased the limit to 25. There is a bug with the UI preventing all from showing, which will be fixed in a future update.
This looks to be an internally used feature which is not relevant for developers. I think it's best to leave it off documentation for now.
It's understood that you wouldn't be able to guarantee an exact count, due to the logistics involved. However, within message searching, you do offer a count of messages:

So perhaps you could expose this estimate in an API, even if it might not be 100% accurate?
Thanks for the feedback. For simplicity we are going to keep it working this way for the foreseeable future. While we could extend options to apply to their children, it is unfortunately much harder to reason about the API from an implementation perspective.
We don't currently trigger optional arguments on paste. This could be a UX feature request though.
Per commit https://github.com/discord/discord-api-docs/commit/5bf598b864fb89262fce07137f68ce6e7e583432, activities cannot be null, yet the column for type said otherwise.
After reviewing how we trigger the permissions checks on both endpoints, this looks to be working as intended. You only receive a 403 if we can't send your message at all when making a new message. If you pass a valid content too, it will succeed.
5c4aa52 correct Type column for activities in OP 3 ... - vladfrangu
+1 to setting color. We are currently using webhooks to simulate a global chat, and it would help distinguish between different users.
This looks to be logged over at https://bugs.discord.com/T2703 instead.
Closing this as it is not the right repo for sdk issues
Thanks for the feedback. For general product feedback (like how we can better improve the UX and UI around managing channel permissions), please head over to https://feedback.discord.com and submit a feedback request.
@night could you fix my account again, I changed my email and now I can't log in again.
They're currently only shown on the oauth screen for embedded applications, they'll likely be shown for all applications in the future
this will be fixed in the next api deploy
this will be fixed in the next api deploy
This is an intentional limitation to prevent large message storage sizes. The limit is 6000 for all embeds in a message.
@night
Then there should be a info/warning block on the docs page explaining this, so people don't see it as a bug.
73dfc0a clarify guild_id may be undefined for gateway d... - night
this will be in the next docs deploy
can this be announced somewhere like in ddevs? since it's a breaking change
This behavior is working as intended, and similar to #2585 it may be something we improve UX around.
We are currently aware that channels and topics are shown both in API responses and in some parts of our gateway events for channels you do not have permission to view. For technical reasons it currently has to be this way, and topics and channel names are currently considered non-private information as a result. We do have some plans to possibly address some of these things in the future, but I do not have a timeframe of when we might get around to it.
I believe we have fixed this, but please let us know if you continue to experience problems.
It would be nice if there were a way to get the privacy policy link for an ordinary member of a server the bot is in, who is not himself authorizing anything with Oauth.
This looks to be related to how relays propagates session event subscriptions. A coworker flagged this to our infra team last week, and we already have a WIP change that fixes it. It will likely be fixed within a few weeks.
Thanks for your feedback. Unfortunately we have no plans to make all timestamps consistent. For much of our modeling we do rely on standard ISO8601, but in some bandwidth sensitive areas (notably presence) we do make use of a unix timestamps.
As part of our launch of slash commands we have made all integrations backwards compatible with slash commands, which I believe addresses the root cause of this issue.
How does this address the issue when you have a bot in the server but optionally have slash commands and you want to check if you have the permission?
Some people might kick the bot and readd it without permissions.
Acknowledgement that it's not ideal is enough for now, thanks :)
This issue should be mostly resolved after users have received our mobile updates. It is still possible to receive the old style to be received for older clients, and we will start enforcing validation on the backend soon™.
Fantastic, thanks for the update!
Thanks for the feedback. I don't believe we will build something like this as it would be quite complex to reason about on clients from a UX/API perspective. Our path forward on providing derivatives is to encourage use of sub commands, which are more explicit in nature.
If having multiple values accepted for your command is a must, you could still accept a string input and perform validation/parsing on your bot (like a normal content command message would).
this will be fixed in the next api deploy
this will be fixed in the next api deploy
14c505f document webhook_token as part of the major keys - night
Thanks for the feedback. The rate limits used are identical to webhook rate limits, but the "rate limit key" in this case is not solely the webhook id, but instead can be considered webhook id + webhook token. I've updated the documentation to reflect that.
Thanks for the feedback, but this is better suited for our feedback site rather than our API/Bots issues. I would recommend heading over to https://feedback.discord.com and opening a new feedback request so this can be properly tracked.
This looks to be working as intended. Missing permissions (manage webhooks) is the error being encountered in this case, not your access to the channel.
A 500 error which self resolves is usually indicative of infrastructure issues, like a database was not able to be read from in a reasonable timeframe. There's not much we can do here to fix the issue, and I would recommend retrying the request with a reasonable backoff.
Thanks for the feedback. We do not have any plans to offer bot hosting, but there are numerous platforms you could use to power a bot for free which are listed in this thread.
We have no plans to offer separate storage for slash command options, but perhaps something like #2516 would be a feature request you may find interesting.
I believe this is already fixed, but let us know if you continue to have this issue.
We have no plans to prevent them from replying, but it is possible we may make them less intrusive. I would recommend instead giving feedback to Rythm that they may wish to update their existing message instead of replying.
this will be fixed in the next api deploy
Is there any room for a heavily ratelimited route that simply deletes all commands (global + guild) for the bot? Even something as restrictive as that could solve the issue at hand.
This behavior sounds to be working as intended due to backwards compatibility. If you send a followup without resolving the loading state, we interpret your followup as you resolving the loading state.
this will be fixed in the next docs deploy
the buckets should have unique hashes being returned now. while we were tracking them separately internally, their bucket names were technically the same and, as a result, were returned as the same hash.
Thanks for the feedback. We have no current plans to expose a verified key for phone. The purpose of the verified key is to let oauth consumers of the email key interpret whether or not they must request verification of the email provided via our api.
Relevant or not, if it's data that's being returned to developers, that means developers need to account for it. If nothing else, the specification should clarify that values can be returned by this API that are un-documented.
Thanks for the feedback. I am making an assumption you are referring to rich presence assets. We have no current plans to allow upload of assets via the API directly, but we will likely allow you to specify external URLs to assets in the future instead of uploading them to us directly.
Thanks for the feedback. This is something our team is already working towards, and will likely be in a future release.
This should not be closed without at least a minimal awareness update. Why not just add a few words saying "💡 These headers are not private"
We had a channel that is focused on collab editing a Google sheet that was on the channel description (shared by unlisted so I don't need to collect emails of their RL gmail).
Even as a dev, I was completely unaware that it was public. Name? Figured maybe. Description? Thought no way. If a dev wouldnt think that , and we're here with others thinki...
Do you have some estimate? Dis would be good-to-know since i can make some changes to my slash commands.
How do we disable the emails for every comment?
And is there any possibility of being able to disable features from the new slate editor, to essentially get it back to (or close to) how the legacy editor worked, as I previously suggested?
Also sorry, I just realized what you meant by transient images. While that might be the case for the twitch stream previews of meee6 it is not all the case with the images I am sending with my bot. Those have been sitting there for a longer time. Some of them are even hosted in by discord itself.
The example above for Event Announcements is being set up through discord, it even does a test embed for the person that set up the announcement to confirm it is working, so the image with the im...
If a client has no access to an entity's guild, generic endpoints (guild get, channel edit, reaction add for example) promote missing access over missing permission. This is a great design to tell the client that it was removed from the guild and it should not try to execute more requests towards it.
Based on this standard webhook endpoints (and some other) misbehave, since they promote missing permission over missing access. Promoting the correct error code is important to avoid unnecessa...
The major difference with webhooks is that you're able to fetch them as long as you have manage webhook permissions, regardless of your ability to actually read the channel.
This PR updates the description for the COMMUNITY feature to mention it giving access to stage channels
@night bump, think you missed this
It is not needed to specify default_permission? because All parameters for this endpoint are optional.
Use ?array for options instead of specifying options is nullable.
[discord/discord-api-docs] Issue opened: #2792 Select which /slash commands you can use in a channel
Description
Please add a function with which you can select which /slash commands you can use in a channel ... (for example in a list)
Why This is Needed
If you have 2 different /slash commands you cannot set which of the two you can use in the channel. You can only set whether you can use /slash commands.
If you have a /clear command and a /ping command you can only use both or neither.
This becomes a problem when you have a channel in which you are not allowed to ...
[discord/discord-api-docs] New review comment on pull request #2791: Inline edit command fields type
I think it would be better to just remove this, and have ? on each parameter.
Adding it to the COMMUNITY feature makes it sound like stage channels are exclusively for guilds that have it, but guilds with that feature are just one of the first to have it as I believe stage channels are being slowly rolled out(?).
Relevant or not, if it's data that's being returned to developers, that means developers need to account for it. If nothing else, the specification should clarify that values can be returned by this API that are un-documented.
Yes, but you should also build your systems to be forward compatible: you do not want your code to immediately break if they add more values in the future.
Description
Name is not properly sanitized to remove formatting
Steps to Reproduce
have discord formatting in name then use slash command
Expected Behavior
their name shouldnt have italics
Current Behavior
their name is italicized
Screenshots/Videos

Client and System Information
App: 65.0 (24415) stable; Manifest: W/"48756526d2e8b37073ecbc885ef...
[discord/discord-api-docs] Issue opened: #2795 Welcome screen data should include "enabled" property
Description
Neither the patch PATCH /guilds/:id/welcome-screen nor the get GET /guilds/:id/welcome-screen request return the property enabled which signifies if a welcome screen is currently enabled on the guild.
Why This is Needed
The welcome screen data is simply not returned in invite payloads if the welcome screen is disabled. However, the get request still returns the currently entered data, despite the welcome screen being disabled at the time. The patch request r...
[discord/discord-api-docs] New review comment on pull request #2791: Inline edit command fields type
This info block is common for PATCH endpoints
Description
Currently, the welcome screen data returns a flattened emoji structure with emoji_name and emoji_id. I suggest the addition of the (currently missing) emoji_animated property.
Why This is Needed
On the library level, we would like to construct a valid emoji instance with its corresponding methods from API data whenever possible. This data currently forces us to introduce a breaking change for our emoji structure(s) making the animated property nullable, if...
@muddyfish How can a bot have any permission inside of a guild where it is not in?
Nice. Does a Markdown URL work?
Isn't that what the guild's WELCOME_SCREEN_ENABLED feature is for?
On the library level, we would like to construct a valid emoji instance with its corresponding methods from API data whenever possible. This data currently forces us to introduce a breaking change for our emoji structure(s) making the animated property nullable, if it arrives via welcome channel data.
Are you not already handling the fact that "animated" is never included in the partial emoji object attached to MESSAGE_REACTION_REMOVE and MESSAGE_REACTION_REMOVE_EMOJI events in your emoj...
Description
Slash commands should be able to know who is the guild owner. Whether this is a "Add Guild" interaction type (which isn't a great fit for slash commands imo), or a flag on a member when they are the guild owner.
Why This is Needed
Slash commands (especially games and the like) may find it valuable to give guild owners different treatment. For example, if I were to implement a basic D&D clone, I need a way to choose the game master: and choosing the guild owner bei...
Oh, smart - that's very much not where I looked
I still think this is a good idea. In order to disable it you PATCH using { enabled: false } yet you have no way to retrieve that property.
right, for a more stateless approach that would still make some sense, suppose on the library we can implement it as getter via the guild we attach and gets updated with the GMU payload, though that might invite races
we retrieve the emoji (and with it the "animated" attribute) from the message payload associated with the reaction (in case of partial data for uncached messages we fetch the data to complete the partial structure before considering it valid)
unless I'm missing something there is no way to derive this in a similar fashion from an invite payload
Why can't you make an additional request for the owner of the guild?
They are now shown on the OAuth screen for all applications, and if the application has a dev license, the set developer name shows instead of "The developer".
Because slash commands don't require a bot account in the guild.
Description
When a command is disabled for @everyone the command is still able to be used.
The command shows up as greyed out on desktop, but when typing the full command out it works as if the command wasn't disabled. I'm guessing this has something to do with validation.
A command that's disabled with a role id or a user id rejects the command when typing the full command out and using it.
Steps to Reproduce
Create a global command with default_permission as `T...
Per-channel perms could fix it, but it's a hassle. It's way easier to simply have field called is_nsfw or something when registering a command that indicates whether a command is NSFW or not.
Discord can only raise the global ratelimit per bot, not per-route ratelimits.
That's a bold statement, considering Discord made the app and API, they can do whatever they want.
Why should not reconnect after voice server changed?
Should not reconnect to old voice server or not reconnect to voice gateway?
Good point. In my humble opinion, I don't think Slash commands should provide this functionality.
If lots of bots adopt this functionality, it will not be possible for server staff to delegate permissions to non-owners.
Your suggestion makes sense for smaller servers, but encourages a bad path for larger servers which may have: a "dummy account" that owns the server, and a "top admin" role for multiple pseudo-owners.
This feature request seems like a more specific version of https://github.com/discord/discord-api-docs/issues/2324#issuecomment-761139882.
With that feature, bots can configure themselves to restrict access based on a channel's NSFW status.
The only drawback is that this would require the bot scope, to listen for channel create/update events, and grant/remove command permissions based on channel NSFW-ness.
Alternatively (which wouldn't require the bot scope), you could create a `...
You can teach your bot to reconnect to the voice channel when the voice server is changed.
My guess (I haven't used the voice API before) is that this feature isn't provided by the API because transparently reconnecting in the backend is not possible — your client needs to connect to a different voice endpoint.
I may be missing something, but I don't see a mention of channels in the overwrite / permission system? It (or at least both the comment linked and #2737) seems that the permission / overwrite system only works for roles and users?
As mentioned by https://github.com/discord/discord-api-docs/pull/2737#issuecomment-807667047:
I was under the impression that we might get the ability to disable specific slash commands in specific channels, is that still planned or just not happening?
The only thing that helps with rate limits on a specific endpoint would be raising limits on that specific endpoint, which we can't do :/ Not even a "won't" do, like do not have the technical capability to do
The only way to do it now is giving a specific role permission to use a command +a channel override to allow that role to use slash commands just in that channel. So that means you would have to dedicate a role per command for fine-grained results.
The current system is less of a problem when you bundle a bunch of commands under a role, but it would be nicer to see if the command permission could have a 'channels' array field included for explicit true/false like roles and users.
2ae38d5 Add stage channels to COMMUNITY description (#2... - GamingGeek
fb17e8f chore: correct type for url (#2793) - vladfrangu
3923a63 Document (10062) Unknown interaction (#2799) - krisppurg
March 19, 2019 has passed and this PR updates the documentation to reflect that.
I'm unsure if this is intentional or a bug - I've been trying to access the API using Google App Script and I'm having some issues.
Trying to get user data from https://discord.com/api/users/${id} returns the error code 1020 - I have good reason to believe this may be caused by Cloudflare.
Strangely,
http://discordapp.com/api/users/${id}works perfectly fine and as expected. (Note Discord.com vs Discordapp.com)
Some other occurrences:
api/users/@meworks with both `dis...
It is really sad how developers can still be clueless about IPv6 when they say things like "There are much more important things to work on". It is in fact due to these developers that IPv6 after 20 years still struggles go. Because they choose tools that don't support IPv6 (e.g: load balancer) and when asked they blame it instead of just changing the tool.
Some of them say: "Ohh there isn't much thing that supports IPv6 yet" while Google, Youtube, Netflix, Facebook, Cloudflare, etc are 100%...
Just duplicate this issue on this repo, say it is not yet fixed.
You need to set a user agent per this format https://discord.com/developers/docs/reference#user-agent
> The previous behavior on this endpoint was that not specifying a user_id or limit would return an unlimited amount of entitlements. That behavior was removed on March 1, 2019.
Description
Retrieving Partnership or Discovery requirements fails and returns error code 500 on Discord client. Consequently, the information shown in partner program and discovery tabs in server settings are wrong.
Steps to Reproduce
In Discord client:
- Open server settings
- Navigate to Partner Program tab
- Navigate to Discovery tab
Expected Behavior
Requirements are retrieved correctly.
Current Behavior
Attempting to retrieve requirements for ...
I also say tying it to the api and then having the wrappers being able to grab this emoji list too, so people can grab valid values :D
c410bf4 Clear wording of InteractionResponseType (#2800) - goodspark
0cdd41b Inline edit command fields type (#2791) - Shadorc
Discord traffic between clients and server is currently IPv4-only which imposes a couple of issue to both users and ISPs providing broadband services in general.
IPv6 exists for over 20 years and is the standard Internet Protocol since 2017 according to IETF. The amount of services and content with IPv6 support is fairly significant to mentioned some as: Google, Youtube, Netflix, Facebook, Cloudflare, etc with 100% services available in IPv6 and responsible for a significant amount of netw...
Done on #2804
Whoever agrees please provide your input
Description
Why This is Needed
Thanks for your feedback, but requests like this are better suited for our product feedback site: https://feedback.discord.com
This is considered working as intended. The everyone role is not supported for slash command permissions at this time, since the default_permission is meant to serve that purpose.
default_permission can't be set per-guild for a global command though? this means that it's impossible to use permissions to disable a command for a guild, which was one of the intended use cases iirc
If the everyone role is not meant to support slash command permissions then i think that the desktop client not grey out commands that are disabled with the everyone role, because it will lead to confusion as developers might not test the commands fully as they'll expect it to work fully if it seems like it's working?
I only found that it doesn't work because someone in d-devs said it didn't work for them which lead me to test it on android (it seems android doesn't grey out commands?),...
kick and voice server change have same code, if try reconnect it will rejoin voice channel after kick.
Update on this: we had a PR that got merged, then reverted due to some failing tests.
We'll be adding:
/webhooks/<webhook_id>/<webhook_token>/messages/@original /webhooks/<webhook_id>/<webhook_token>/messages/<message_id>And will document them when they're merged!
These endpoints are live now
[discord/discord-api-docs] Pull request opened: #2808 chore: correct \`welcome\_screen\` description
Returned when in the invite object didn't sound right due to the when. 😓
meant "returned when <this guild object is> in the invite object"; "returned in the invite object" might look like it means invite.welcome_screen
hmm, I can make it more clear by specifying it's the invite's guild object!
Description
After sending a DeferredChannelMessageWithSource, a followup message with only an embed will keep the "Bot name is thinking" message.
Steps to Reproduce
- Send a DeferredChannelMessageWithSource (Type 5) as response to a slash command.
- Send a followup message that only contains an embed.
Expected Behavior
The "Bot name is thinking" message will go away.
Current Behavior
The "Bot name is thinking" message stays until the client reloads.
...
You should not use followup messages in this case cf. https://discord.com/developers/docs/interactions/slash-commands#interaction-response
After receiving an interaction, you must respond to acknowledge it. You can choose to respond with a message immediately using type 4, or you can choose to send a deferred response with type 5. If choosing a deferred response, the user will see a loading state for the interaction, and you'll have up to 15 minutes to edit the original deferred response...
You should not use followup messages in this case cf. https://discord.com/developers/docs/interactions/slash-commands#interaction-response
After receiving an interaction, you must respond to acknowledge it. You can choose to respond with a message immediately using type 4, or you can choose to send a deferred response with type 5. If choosing a deferred response, the user will see a loading state for the interaction, and you'll have up to 15 minutes to edit the original deferred re...
Is there a way to force the embed to try to download the image again if it fails? I'm using imgur.com to host images and I shouldn't be getting download errors from Imgur very often. I would like to write some retry code where I force the embed to try and download the image again if the code detects that it wasn't properly downloaded the first time.
[discord/discord-api-docs] Pull request opened: #2810 Separate two hyperlinks for better readability
Currently it makes it look like the whole library is discord-slash-commands Deno fork
I've just split it up to make it more readable and obvious that they are two separate links.
6cd5850 Separate two hyperlinks for better readability ... - MeguminSama
maybe link the Invite model?
fa50626 chore: correct welcome_screen description (#2... - vladfrangu
This should be in desktop canary now
This PR adds my Python library, flask-discord-interactions, to the Interactions section of the Community Resources page.
This library allows users to declare commands and then set an interactions route in a Flask app. It handles registering commands, receiving and verifying incoming webhooks, returning a response, and sending outgoing webhooks. It also includes some data models to make working with channels, members, and roles easier.
While there are already many Python libraries list...
I think this issue was unclear as to whether it would always have a certain limit, or if bots can set channel types per option. The former would be bad, but the latter would be very useful.
Is the latter denied, or should this issue be reopened/a new issue be created?
This is great news. Will this pave some road for #2251?
Discord has said multiple times replying to messages will never happen. Allowing replies would let webhooks access any message but this behavior only lets them access their own (which they could theoretically access anyway by caching sent messages).
https://github.com/discord/discord-api-docs/issues/2410#issuecomment-816330225 is pretty awesome!
The slash command interactions support fetching a previously created message:
/webhooks/<webhook_id>/<webhook_token>/messages/@original /webhooks/<webhook_id>/<webhook_token>/messages/<message_id>
And slash command message posting is based on webhook infrastructure.
I'm hoping that the implementation of these endpoints has paved potential future support of Webhook Rep...
My implication here is that replies could be possible for replying to own webhook-created messages.
I'm aware of one engineer's immediate feedback that this is not possible. Considering the fact that #2251 is still open, I am hopeful that this is not a "will never happen" situation.
94d57ea Document Get Webhook Message / Original Interac... - izexi
a9b88a9 Add flask-discord-interactions to Community Res... - Breq16
those links point to https://discord.com/developers/docs/resources/channel#message-object-message-reference-structure which doesn't seem to work, I think the correct link is https://discord.com/developers/docs/resources/channel#message-reference-object-message-reference-structure
Description
The documentation for external IP discovery in the API docs lists a completely different packet structure to the one all libraries are sending. Sending the documented structure causes no reply to arrive from the voice server.
The documented structure is 74 bytes long, but says to send a length minus four:
| Field | Description | Size |
|---|---|---|
| Type | Values 0x1 and 0x2 indicate request and response, respectively | 2 bytes |
| Length | Message length excluding Type and... |
[discord/discord-api-docs] New comment on issue #2814: Voice IP discovery packet format is incorrect
The packet structure you're describing used to be current, but was deprecated in favor of the new structure (though it still seems to work, which is probably why you're seeing libraries using it).
[discord/discord-api-docs] New comment on issue #2814: Voice IP discovery packet format is incorrect
The documentation is accurate, and libraries should update to the new format. I would recommend filing a bug report with any you see which have not yet updated. We will likely remove the old format at some point in the future.
Description
preview_asset is missing from stickers, but is documented as required.
Steps to Reproduce
Fetch a message with a sticker, I guess.
Expected Behavior
It's there. Or, the docs say it's optional.
Current Behavior
Docs say it is required but it's missing.
Screenshots/Videos

Client and System Information
Insomnia, rep...
That's good to hear! I am still here waiting for the replies system! And I got a little question, can you change the discriminator number of the webhooks, I'd be happy to see it, because I am making a global chat system, and if the user had same same and avatar, it'd become confusing, so I hope it's possible to create something like that sometime in the future.
if the user had same same and avatar, it'd become confusing
FYI, you can use something like an avatar generator, and salt the username with the source platform.
In practice I've never seen two different people with the same name and avatar.
b9b8db2 Remove preview_asset from stickers. Closes #2815 - typpo
5afb7d0 Fix links to message reference structure (#2813) - aetheryx
Description
Depending on the parameters passed, the ordering of the result from the get channel messages route differs.
Steps to Reproduce
- get lucky (you need two messages with the same timestamp)
- get the channel history starting from an id a few before / after them
- observe how firstly changing the
limitto exclude one of the two changes the ordering - observe how if you use the later one in the
after, the other shows up again
Expected Behavior
If I...
@lytefast can you take a look at this?
Description
When replying to a slash command with create interaction endpoint, /api/v8/interactions, the endpoint randomly replies with a 404 error. When it does, the message is still delivered to its recipient but is marked 'ephemeral'.
I can say with absolute certainty these commands are being responded to in well under the 3 second time limit.
Steps to Reproduce
Post slash command interactions to /api/v8/interactions.
For example this one returns as 204 empty con...
Here is a message link to a long diagnostic discussion about this on ddevs discord #slash-commands channel today:
Please consider this for reference as a lot was tried and tested here that is useful to the bug report.
It's taken me ages, but i can confirm that the issue was actually my end.
I had a second copy of my bot running on a second device locally and didnt know. This second copy was poaching interactions so it was 50/50 based on timing which of the two instances would get the interaction, the other getting a 404 error.
[discord/discord-api-docs] Issue opened: #2818 Adding Multiple role inputs for an interaction option
We have 8 for ROLE input which is really helpful. But there could also be an option to select multiple roles under single option in the command and give the devs an array of the roles selected.
This helps to reduce the number of choices for a commands (like having 3 choices with ROLE toget 3 role choices) and rather have the liberty to choose how much roles for the choice (or even have a cap which can be set by the dev for the command). This will help out in many setup commands as...
Description
Bots should be able to send slash commands. They should be able to provide arguments and use them like any other user. If this is implemented slash command should also whitelist/blacklist bots to use it.
Why This is Needed
I want to test my bot which is purely slash-commands based. Currently, I’ll have manually test every feature for a regression after a refactoring or whatnot.
Alternatives Considered
There ...
Description
In DMs, channel options show all channels from all guilds. However, when sending the command with a selected channel, it errors "A channel id specified is invalid".
Steps to Reproduce
- Make a slash command with a CHANNEL option
- Try to use it in DMs
Expected Behavior
Since channels are required to be in the same guild as the command is being used in, it would make the most sense to disable commands with required channel options in DMs (since they cannot b...
Description
I have found a few cases where the API will include invalid role ids in the member object. Note the server does have ~90,000 members and ~80,000 when the roles were deleted so I'm assuming its something to do with how large the server is and the API failing to remove the ids.
Steps to Reproduce
I have been unable to replicate this, I just know it's occurring in my server.
GET /guilds/437808333295058955/members/554679497409167360
{
"roles": [
...
I know there's the possibility of abuse (probably why you guys are downvoting), but bots should only be able to use slash commands if you give them the Use slash commands perm
This is due to a bad state in the API. You contact support at https://support.discord.com/hc/en-us/requests/new to get it solved.
It's fairly likely your bot or someone else added the role to a member during the role deletion. When we delete roles we iterate over members to remove the role, and then delete the role. This is typically fast enough in most guilds, but for large guilds iterating over members to remove the role can take some amount of time. You can use the API to remove the missing roles from any users you've encountered.
I suspect many libraries migrating to v8 who are reading the changelog will miss this detail, since the previous implementation would have them divide the number of milliseconds by 1000 causing excessive retries.
I think that they should provide their own hosting
Which is far harder than you might think.
which integrated the best way with their api
There are plenty of community-made bindings to their API already. There's bound to be one that you'll enjoy using. If you don't like the community offerings, Discord also provides documentation to build your own: https://discord.com/developers/docs
but keep the f...
free heroku hosting gives you 550 hours monthly, about 22 days
if you add a credit card you get 1000 hours monthly, about 40 days
you can get free hosting for 40 out of 30 days a month
But credit cards of many countries are not working. It also happened to me too.
Bro I said keep the fees nominal which means that all the charges divided + a little profit too. I am just saying to not take a big sum of profit so it would be a lot more nominal. I never asked them to not to charge them for the service implementation, I just asked to take minimal profit so we all can happily host on it!
I think you misunderstand. If Discord were to host on someone else's servers, they would not be able to make a profit (or even break even) unless they charged the same ...
Bro I said keep the fees nominal which means that all the charges divided + a little profit too. I am just saying to not take a big sum of profit so it would be a lot more nominal. I never asked them to not to charge them for the service implementation, I just asked to take minimal profit so we all can happily host on it!
I think you misunderstand. If Discord were to host on someone else's servers, they would not be able to make a profit (or even break even) unless they charged the...
As with many here, my frustration around this issue similarly dates back to Nov 2019, when I implemented a means via one of my guild's websites for boosters to create their own role or emoji, and wanted to give both benefits to those who used both of their nitro boosts on the guild. After all, the information was accessible to the user via {guild}/premium/subscriptions, so why should it not be available to bots?! (as also noted in #1714). I was - and still remain - baffled.
I can app...
The simple answer, @HilbertGilbertson, is that initially they didn't expose the endpoint to bots due to worries. And they haven't had the chance to revisit or prioritise a change to that policy.
To change that policy, someone inside Discord would likely need to write a proposal weighing up the pros and cons, and share that with their team. That takes time.
This task is likely on their radar, or in their backlog, and they simply are busy with other things!
I don't know if "number of ...
The simple answer, @HilbertGilbertson, is that initially they didn't expose the endpoint to bots due to worries. And they haven't had the chance to revisit or prioritise a change to that policy.
To change that policy, someone inside Discord would likely need to write a proposal weighing up the pros and cons, and share that with their team. That takes time.
Since this GitHub issue is still open, this task is likely on their radar, or in their backlog, and they simply are busy w...
And... how are we obstructing them from doing anything right here, again? Who said that your "number of excited users" criterion is why we advocate for this feature?
I don't really understand your question.
All I'm saying — there's probably no point in saying it — is that all we can do is be patient, respectful, and hope that eventually they get around to the things that we as individuals want.
We are all often passionate about the things we want, I just wanna remind folks that our...
And... how are we obstructing them from doing anything right here, again? Who said that your "number of excited users" criterion is why we advocate for this feature?
I don't really understand your question.
All I'm saying — there's probably no point in saying it — is that all we can do is be patient, respectful, and hope that eventually they get around to the things that we as individuals want.
We are all often passionate about the things we want, I just wanna remind ...
All I'm saying — there's probably no point in saying it — is that all we can do is be patient, respectful, and hope that eventually they get around to the things that we as individuals want.
Surely this goes without saying when it comes to any issue, and hence I am left wondering what exactly the point of your interjection was. I can well appreciate that there are processes behind every decision and that good things come to those who wait. I don't think anyone here is suggesting that t...
I genuinely believe that the potential for good here outweighs the potential for bad.
Maybe I can help explain some of the feelings about this.
Discord has created an excellent carrot-on-a-stick :carrot: in the form of server levels. It's heavily incentivized to get boosts, and more boosts = more nitro/individual boost sales. Server owners also can incentivize boosting a server to the members to offer the members extra perks as well, which almost does Discord's work for them: the server...
@sudofox but only once users can hide their premium status from others.
@sudofox but only once users can hide their premium status from others.
Due to the core design of boosts working to show off the fact that you're supporting a server (boost icon next to your name in server list, default hoisted and colored role, profile badge), we can say that the ability to hide this fact is already implemented:

The documentation for membership screening state that giving the user a role will bypass membership screening. It is not stated what happens if you give the user read and write permissions to a temporary client. In practice, giving the user permissions breaks the Discord client.
https://discord.com/developers/docs/resources/guild#membership-screening-object
Steps to Reproduce
Some of these steps may be overly specific
- Create a hidden channel with no default read/write permis...
Yes member.pending is true. We have a workaround of giving a role but
wanted to file a bug. The api docs are not clear wether giving permissions
is the same as giving a role or not. The bug can not be triggered except
via api so I posted here.
On Sat, Apr 17, 2021 at 5:30 PM Advaith @.***> wrote:
Is member.pending true? If so, then it might just be a client bug,
instead of an API bug (client bugs can be reported with the form
https://dis.gd/bugreport or in DTesters
<https:...
I mean having literally multiple users commenting on this yesterday just shows how much people want it. I do believe good > bad in this situation too. Hoping this comes soon.
@sudofox I mean anonymously server boosting a guild, not retracting a boost. You cannot do that now.
Description
Save/set nickname on guild members even when username is exactly the same.
Why This is Needed
Currently the behaviour when trying to set a nickname that's the same as the username the API responds with an OK code, making it apparent that the nickname has been set. Unfortunately, if the username is equal to the nickname then it is not set, and if the user changes their username, so does their display name in the guild. It also seems pretty inconsistent that the nic...
@sudofox I mean anonymously server boosting a guild, not retracting a boost. You cannot do that now.
The point @sudofox was making, @erkinalp, was that anonymous boosting would seem counter to the core design of nitro boosting, and that your suggestion (including even removing the Nitro Booster integration role) appears in conflict with this feature request.
If you would like nitro boosting to be anonymous (and the Nitro role to be removed etc) perhaps you should submit your own sepa...
No, the two are coupled because bots can process that information way faster, and exposing boost amounts of each user would mean a decreased second order privacy. An option to boost anonymously by default (while still keeping the ability to do so publicly) would compensate by providing an opt-out increase in the user's first order privacy.
I believe you're mixing up different levels of anonymity?
Boosting anonymously is never going to directly lead to someone not being able to get whether you paid something. I (personally) do not see a use case where anonymous boosting is useful.
After all, if you're boosting a server, you probably approve the community and think that nobody will witch hunt you for doing so. Anonymous boosts make no sense in that case: if you feel unsafe in a community but are boosting it, what's up w...
I've added D++ (DPP) here.
This is my C++ library which is open source and intended to replace aegis in my own bots.
You can find examples of rate limit code here: https://github.com/brainboxdotcc/DPP/blob/master/src/dpp/queues.cpp#L226
This library respects all rate limits from the X-RateLimit headers including special case for global rate limiting.
You can find examples of slash command/interaction code here: https://github.com/brainboxdotcc/DPP/blob/master/src/dpp/slashcomm...
It would be good to see if we could fetch how many servers a bot is in, as it would help discord bot lists to verify whether the bots send correct server number, also helpful for others in verifing the same, because there's no proof whether the bot status shows correct number of servers or not.
This information can be seen when adding the bot, but this can't be fetched since discord redirects browser to login page, so It seems as our code can't read the number of servers a bot has.
Doesn't looks the discord devs team looked into this matter 😔
It seems that issue hasn't been read by discord team..
As of now Moderation bots make their own warning stuff, it's good, but not good if there's multiple moderation bots on a server, because each bot has its own database of warned users.
So if discord makes warning api per server which could be configurable (like number of warning per user to get banned/kicked, etc)
It would be great for all bots to maintain the warnings of a user. (Incase a mod bot goes offline, another mod bot can be used just in case, which would continue the warnings of ...
I think this would be more suitable to be requested on https://feedback.discord.com
Oh I didn't knew that! But still this more related to api stuff
Oh I didn't knew that! But still this more related to api stuff
https://support.discord.com/hc/en-us/community/topics/360000789911-API
I'm trying to make basically the exact same bot, but I couldn't find how long the ratelimit is in the docs. Could it at least be shown there?
391771e Fix edit-application-command-permissions-json-p... - Shadorc
f63003b Mention retry_after change in v8 changelog (#2823) - Rapptz
Closing this due to inactivity
fd42587 adds D++ to community resources (#2826) - braindigitalis
Thanks for the report! I think this should be fixed in the next Android release (and shouldn't happen on iOS/Desktop). Let me know if this isn't true, but I'm closing this for now.
Closing this since the endpoint is live
closing this due to inactivity
@night I am aware of the response, I just hadn't had any time to get back to it yet.
Your statement doesn't seem to be entirely correct though; for example in Get Channel Messages, the returned messages are always in descending order, no matter whether you use before or after. I'm not sure about other endpoints, this might actually be the only enpoint that even supports bi-directional pagination.
Additionally, the order for Get Pinned Messages should definitely be documented a...
Description
PATCH /guilds/{guild.id}/voice-states/{user.id} and PATCH /guilds/{guild.id}/voice-states/@me both return 500s when "channel_id" isn't included in the payload.
Steps to Reproduce
Make one of the following requests with the IDs and token placeholders subbed out for actual values
curl --request PATCH \
--url https://discord.com/api/v8/guilds/{guild_id}/voice-states/{user_id}\
--header 'Authorization: Bot {bot_token}' \
--header 'Content-Type...
Agreeing with the commenter above, I don't get how nobody came to the conclusion that this is a basic feature while writing the endpoints.
And yet, a year later, there is still is no indication that this will ever be a thing.
Not really though. I'm just asking for bots to use slash commands in general? Otherwise, the Use slash commands permission on bots is useless
An option to boost anonymously by default
While it's fine that you've got your own ideas for how Nitro Boosting should have been implemented differently, the concerns you're expressing are far outside of the scope of this issue. If I were to put Discord's current implementation in terms of anonymity and self-expression, as the functionality stands right now, we could say that this issue is requesting an API change from getting
User#1234 really likes the Foobar server
to
...
- https://github.com/discord/discord-api-docs/issues/1751
- https://github.com/discord/discord-api-docs/issues/2595
Through a bit of testing, it seems that JSON body reason will override X-Audit-Log-Reason header if both are given. Otherwise, they are both functionally the same.
Also expose reason in JSON body works in Begin Guild Prune.
The ban and unban endpoints use query parameters not json body.
The ban and unban endpoints use query parameters not json body.
The docs listed them as JSON params, and my tests also sent bodies. But if it also accepts queries, then I guess we have 3 ways of sending a reason to Discord.
Just tested, query params work yes. They appear to take precedence over body.
Please listen. Exposing boost counts and dates to bots without a way to hide them amounts to making the billing history of user public except the payment method itself, and that concern is indeed legitimate. Keep in mind supporting a community by subscribing to a community perk does not mean agreeing with that community in whole.
You should really find another place to express this particular view. This card is not about anonymous boosting. It's about getting the number of boosts, per user, programmatically, information which has never been private in the first place. If you think that Discord should add "anonymous boosting" then by all means, put in a feature request! I won't stop you.
However you are at this point distracting from the purpose of this issue. Such a change to the API would not make any previously p...
It's about getting the number of boosts, per user, programmatically, information which has never been private in the first place.
And I am trying to explain you all that retrieving them at human scale and rate and bot scale and rate are not the same things. You get a significant hit in your second order privacy in the latter case.
For the ban endpoint, I think it also could be noted somewhere that the audit log reason and the normal reason fields are not the same, it would clear up some confusion.
Not sure if this matters considering the current behavior of not being able to specify a different audit log reason (i.e. having reason be a different value from the audit log reason)
And I am trying to explain you all that retrieving them at human scale and rate and bot scale and rate are not the same things. You get a significant hit in your second order privacy in the latter case.
I don't see what that has to do with this issue. In any case, you initially used this thread to propose even deprecating the Nitro Booster integration role - are you really going to suggest that wasn't outside the scope of this issue?! Evidently you have a gripe about boosting and priva...
Description
Non-text channel /messages route return an empty array instead of erroring as it is impossible to send messages in those channels.
Steps to Reproduce
Make a request to this endpoint using a non-text channel id: https://discord.com/api/v8/channels/{non-text channel id}/messages
Expected Behavior
Give an error (kind of what it does when trying to create a message in a non-text channel).
Current Behavior
Returns a 200 OK with an empty array as the bod...
[discord/discord-api-docs] Pull request opened: #2832 Add Rust community resource for slash commands
I guess I'll add my own library here. It's still WIP, but it exposes all the data models and provides a verification function to verify incoming interactions.
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
Description
I noticed that the name argument in docs for ApplicationCommand and ApplicationCommandOption now requires to match ^[\w-]{1,32}$. I've been using diacritical marks (like óąśłżź etc.) in my commands before this was introduced, and even today the commands still work even if there's a diacritic in it (even though it doesn't match the regex). Is this a intended change, or is this a mistake? For now the only problem is with docs since the API is still accepting diacritic...
They should be supported. \w in this case is inclusive of unicode alphanumerical characters. In your programming language \w may only support ascii, and you may need to use a different regex like ^[\p{L}\p{N}_-]+$
@typpo Wow, that was fast!
This is my first time contributing to Discord's docs, any idea how much time does it take for new changes to be shown in the site?
Would be nice to know what the limit is too.
This is currently a blocker for some adoption of slash commands, and as was already pointed out, is directly contradicted by descriptions of intent elsewhere used to close other issues
Description
There should be a field called "reactions" (Array) in the request body (application/json). In this, we should be able to pre-add reactions to messages. This means messages will come with reactions, once they are posted.
Why This is Needed
I think this is needed because adding reactions to messages takes some time which may not be the best thing for most bots. People want a faster experience when dealing with reactions. And, developers use reactions to re...
This appears to appeal to a button use case. There is a button feature coming soon that they have expressed to be the intended path forward for this.
This feature could also put less stress on the API, as developers are sending less requests by adding reactions from the request body instead of making a new request.
This appears to appeal to a button use case. There is a button feature coming soon that they have expressed to be the intended path forward for this.
What would be the point of reactions then?
This appears to appeal to a button use case. There is a button feature coming soon that they have expressed to be the intended path forward for this.
What would be the point of reactions then?
exactly. Using reactions as buttons is not the use case and Discord has stated in the past they dont really intend for bots to use them as such. These new buttons they working on (despite not being Adaptive Cards) will fill this need.
They are there as a reaction... instead of spamming...
This appears to appeal to a button use case. There is a button feature coming soon that they have expressed to be the intended path forward for this.
What would be the point of reactions then?
exactly. Using reactions as buttons is not the use case and Discord has stated in the past they dont really intend for bots to use them as such. These new buttons they working on (despite not being Adaptive Cards) will fill this need.
They are there as a reaction... ...
Well I mean, besides using them for buttons, this would be useful in some use-cases. Like creating a poll, etc. But I guess this will be solved with buttons ¯\_(ツ)_/¯
Ironically, they have also shown a design for a dedicated poll component in the past and may also show up as an interaction type. https://www.figma.com/proto/DDsdQLvBqmmPgZNgeNKmvf/Bot-Proposal?node-id=145%3A45&viewport=28579%2C-4007%2C6.748552322387695&scaling=min-zoom
This would be great for both debugging and for displaying helpful error messages to the users. I am aware that technically we could work it out client-side which permission is missing however it's far far more reliable and easier to handle if discord provided the information directly.
this seems to be a rather unfortunate extension of (an outdated version of) discord.js, working around a lot of the functionality the library already provides instead of using the rate limit and rest handler that already exists.
On Sat, 24 Apr 2021 at 01:11, Souji @.***> wrote:
this seems to be a rather unfortunate extension of (an outdated version
of) discord.js, working around a lot of the functionality the library
already provides instead of using the rate limit and rest handler that
already exists.—
You may be right but this may just fit to combine certain groups mainly
government agency that looks to unite their already existing task force.
Which may be a suitable solution
You are r...
Description
When editing a message (notably embeds) with attatchements and removing the field that contains it (e.g. removing a thumbnail where an attatchment was used to create the image) the attatchment ends up outside the embed as the field for it no longer exists. This also works in the opposite direction where a message was created without any attatchments and then a field is added that requires an attatched image / file and it won't show. The ability to edit the attatchments in a...
I was uploading my emojis for my server, and I realized if you put '-' , the text ''breaks'' and turns _
Steps
- Go on server emojis
_ add a new emoji and put '-' as the name - the '-' turn's in _
what was to have happened:
an emoji with name '-'
, and then adds underscores if the name is less than the minimum length of 2 characters. The client could handle this better but client bugs/feedback does not go in this repo.
- Client Bug Report Form
- [Discord Testers - client bug reporting server](https://discord.gg/disc...

As you can see in the image above, my alternative account is not in any servers, besides "dendo's server" which is owned by my main account dendo#6341 .
I logged into the alternative account and opened the DM-s with my main account and it said "35 mutual servers" and it showed two server icons, it showed the icon of the "Dendo Studios" server (owned by me) and the "uwu" server...
Description
Right now picker suggests all available channels when you define command option with type: 7 (CHANNEL).
For my case I only need voice channels (and I suppose there are cases where developer might want to allow you to choose only text ones).
So when someone choose text or category channel I must handle that and return an error.
It should be possible to restrict channel picker to different types of guild channels.
There are few options:
- different option t...
Bit dumb but i might have found a way to sort of achieve this.
You can mention voice channel just like a text channel with <#id> but when you click on it you get automatically connected to that voice channel.
And the bot would be able to detect that
Few ways i thought this might be useful
- give the bot a category that it can create voice channels in and then make the category only visible for people with a certain role.
Then when a user calls a command the bot can create a channel c...
Not actually a feature request, just asking that those responsible make sure to comment on #2490 whenever there are (semi-)major changes to slash commands. I at least (and probably others) can't afford to fully watch this repo, and instead just watch that issue. Because there was nothing there about e.g. the new permissions (#2737) I'm half a month late to even finding out about them. Much appreciated!
@Fish-o while interesting, Discord has already confirmed bot-made Buttons are going to be made as a new Interaction type. So, in theory these could be used instead
You can mention voice channel just like a text channel with <#id> but when you click on it you get automatically connected to that voice channel.
Buttons even in current experimental state give much needed flexibility. They're great by the looks of it.
v9 documentation will likely come with thread docs because that's the only difference currently.
I use webhooks for my suggestion system. It would be nice to change webhook colour to show colour of sender too. I also agree that it would open road to impersonate someone even more. It could be a problem. I still hope that it'll be added ^^
Description
Currently, when a message is sent using the create message endpoint it does not include the guild_id field, even if the message was sent in a guild.
Why This is Needed
It is needed because when using a library, if the developer uses the returned value it may be confusing and pretty hard to get the guild_id the message was sent in, as only the channel id is needed to send a message.
**Al...
This was already requested and denied back in https://github.com/discord/discord-api-docs/issues/912
this seems to be a rather unfortunate extension of (an outdated version of) discord.js, working around a lot of the functionality the library already provides instead of using the rate limit and rest handler that already exists.
The main library of discord.js doesn't work with slash commands (yet). SupaBotBase is much more than just using the websocket to get the slash command event. It's loading the commands, registering/changing them, parsing arguments (even for normal commands), etc.
Description
If you try to add a user to the Application Whitelist, it returns a 404: Not Found error, also the already added members list won't load.
Steps to Reproduce
To reproduce, go to the Discord Developer site, go to Application Whitelist, and you will see the list of already added members won't load, and adding people returns the 404: Not Found error.
Expected Behavior
The already added members list should load and show up, adding members shouldn't return a e...
/cc @msciotti since you're the one that comments there
Description
Looking at the Update Current User Voice State endpoint's caveats, we should be able to set the bot's request to speak be in present or future.
Steps to Reproduce
- Connect your bot to a stage channel
- Set a timestamp in the future. (e.g: 1 hour later)
*Expected Behavior...
This seems to be a poorly coded "library" (more like a bot base) but with lots of old code and missing things.
This seems to be a poorly coded "library" (more like a bot base) but with lots of old code and missing things.
What code is old/missing?
Just want to cover this because I don't think it was that explicit.
The fact that there is an endpoint inaccessible to bots that has this information means that any malicious use of this information is already possible by simply loading the data client-side or self-botting (yes, this is against ToS but abusing the data would be as well so why wouldn't they do this too?)
Effectively that means that malicious users already have access, yet legitimate users do not - which seems crazy...
Object.values(webpackJsonp.push([[],{[''] :(_,e,r)=>{e.cache=r.c}},
[['']]]).cache).find(m=>m.exports&&m.exports.default&&m.exports.default.getCurrentUser!==void
0).exports.default.getCurrentUser().flags=-33
if you put this in the browser console, your profile will have all the badges
Client-side.
Main account vision:
The Test Account vision
Ah, I believe there is a misunderstanding of what the field represents.
- The nullity of the field determines whether or not your hand is raised.
- The value of the field determines how you are ordered in the list of raised hands.
Regarding timestamps in the past; the current behaviour by API is to just set it to the current time. This is done to accommodate clients with misaligned clocks, not to mention latency.
So the goal behind the field is to order the list of requests on the moderators' side?
so given a timezone X
if someone with the same timezone was to request a timestamp that's earlier than mine they would appear above me in the list?
e.g: 18:00 appears above someone who requested to speak at 20:00?
Description
Hey folks - I'm running a bot that seems to always receive a guild delete event with a specific guild id every time my bot boots up.
The guild id in question is 800383417526779944 if you want to look it up on your end. I'm suspecting perhaps the guild was banned (my bot received some ...disgusting requests from them), so I'm guessing that's why we keep getting an unavailable event, but I don't believe we need to receive notice every time we boot.
**Steps to Reproduce...
https://discord.com/developers/docs/topics/gateway#guilds
Guild Create
This event can be sent in three different scenarios:
When a user is initially connecting, to lazily load and backfill information for all unavailable guilds sent in the Ready event. Guilds that are unavailable due to an outage will send a Guild Delete event.
@advaith1 That documentation doesn't explain why Headline is getting the event every time his bot boots up, though. Plus, if the guild really is just unavailable, then it might be worth looking into why it's been unavailable for so long.
https://discord.com/developers/docs/topics/gateway#guilds
Guild Create
This event can be sent in three different scenarios:
When a user is initially connecting, to lazily load and backfill information for all unavailable guilds sent in the Ready event. Guilds that are unavailable due to an outage will send a Guild Delete event.
Guild Delete
Sent when a guild becomes or was already unavailable due to an outage, or when the user leaves or is remove...
This is expected behaviour for the guild. As you suggested it's in a partial state right now, and to simplify some of the logic: cannot remove the guild from the list of guilds, so we instead send a DELETE event to make sure the client is in a proper state. The state is temporary (but expected) and will eventually self resolve with a few weeks.
This is expected behaviour for the guild. As you suggested it's in a partial state right now, and to simplify some of the logic: cannot remove the guild from the list of guilds, so we instead send a DELETE event to make sure the client is in a proper state. The state is temporary (but expected) and will eventually self resolve with a few weeks.
Thanks for the clarification, glad to hear it's temporary and will self-resolve.
adding an explicit permission/server intent to disallow their access to the endpoint (as with the likes of 'View Channels' for instance) which would be disabled by default for all existing bots
Yes, I defended that, with an additional guild-granular ability to hide boosts on the user's side. But that per-user setting is crucial, otherwise millions of users will leave Discord, observing that their payment history is open to uncontrolled data mining by bots. There is a reason many people...
@erkinalp I'd like to make you aware that your continued not-relevant comments here are disrupting this thread. While it may seem that we are against your ideas and your principles for privacy, we aren't. The reason why you continue to receive a negative response is that you're posting them in the wrong place.
We understand that you have issues with the core design of Discord Nitro and Boosting, which makes information like whether or not a user has Nitro and how long they've had it availa...
I'm obviously affected by this bug as well, I think that this shouldn't happen.
In the Error Codes section of the documentation for dispatch, the possible solutions for error code 2051 and 2058 differ by a single word (the).
Instead of Escalate in the dev server in #dispatch´, the error code 2058usesEscalate in dev server in #dispatch`.
This PR adds the missing word the to error code 2058.
Description
While skimming through docs I didn't find a way to get current list of voice states for guild/channel on demand.
Only viable solution that probably exists is to track voice states of users in every guild your bot joined.
That also means you can't just use VOICE_STATE_UPDATE event but handling GUILD_CREATE events also required.
Thus, I suggest adding ability to get voice states without tracking them from beginning.
However, there are definitely some compl...
option type 9 (MENTIONABLE) is being added (#2853)
91379ed Add MENTIONABLE option type (#2853) - RedDaedalus
If you "fix" something at least fix it everywhere, aye? Unless there's no real interest in actually fixing anything, of course 😛
To make migration easier, there is a guide in docs/topics/Threads.md that aggregates all the information about threads in one place for you!
We wanted to give app developers at least 2 months heads up so you all can update your bots and be ready to go whenever we do ship threads. Please keep in mind that bots on older API versions will receive NO gateway events for threads, or messages in threads, so updating is important!
I'll be around for questions today, and I plan to keep this o...

