Hello again. I would like this pull request re-considered @typpo. Is this still rejected after the comments brought up?
#github-notifications
1 messages · Page 34 of 1
Description
You can send X-Audit-Log-Reason along with creating a guild scheduled event and with updating a guild scheduled event. This, of course, is not documented. (deleting a guild scheduled event seems to not take this header into account)
Steps to Reproduce
- send the
X-Audit-Log-Reasonheader when making a request - it shows up in audit log
Expected Behavior
Documented behavior happens: most routes that take audit log headers are documented so it is ex...
It is a fairly common pattern to use something like https://api.example.com to host an API endpoint independent of other web content associated with a domain. If I put a third-level-domain into the INTERACTIONS ENDPOINT URL field on an Application's General Information page, it resolves example.com's IP address instead of the IP address of the API server. This happens with Host (A/AAAA) records, so it is unlikely using alias or similar records will resolve the issue.
This behav...
I can't reproduce this. If you're comfortable sharing the specific domain I can take a look though.
Let me reproduce it and make sure it was not a transient issue in the DNS system.
Apologies, not sure what was caching the DNS entry for more than the 2 minutes specified, but I am certain that is not a problem on your end.
[discord/discord-api-docs] New comment on issue #2340: Allow slash commands to use external emojis\.
did they forget about this
Error
{
"guild_join": "{"message": "401: Unauthorized", "code": 0}"
}
Code
@app.route('/join')
def join():
discord = make_session(token=session.get('oauth2_token'))
user = discord.get(API_BASE_URL + '/users/@me').json()['id']
at=session.get('oauth2_token')['access_token']
response = requests.put(url=API_BASE_URL + f'/guilds/***/members/{user}',
json={'acess_token': at},
headers={"Authorization" : f"Bot {at}",
"Content-Typ...
I don't know much about what body or headers are required to use the raw API, but I'm pretty sure you misspelled access_token in your json variable
I'm found only what code.
Well, this is really great! I love this idea!
Yeah. Assume that my account was hacked, if the server owner have 2FA requirement for moderation and my account did not turn on 2FA, the hacker(s) will simply need to add a bot, and the bot will do moderations for them.
your account would need the manage server permission and 2fa to add the bot
A hacker, simply needs a user's token to login and run all the dangerous stuff. No 2fa even required.
Nowadays, there are many scam on discord dms too, where hackers (and hacked accounts) ask you to download and test their game. On running it, the app will simply copy your token and send it to their servers.
Great. Literally the easiest and best way to bypass 2fa is to use user token itself.
In this case it was a testing app by a hacker, but what if, it was an fake antivirus or anything li...
this doesn't make sense; it isn't feasible for Discord to ask you to authenticate with 2fa every second for every action the client wants to do, so obviously you can "bypass" 2fa with the token, that's how all services work and basically the whole idea of "logging in" to a service
The guild_id "extra" field is sent in THREAD_MEMBER_UPDATE which wasn't documented. This PR documents it.
giving the token to someone is like giving them your unlocked phone with the discord app open. don't do that!
is there no way to lock the token to an ip address or device id?
Generally on other services, tokens are tied to devices, and adding a new device requires a new token...
Locking tokens to an ip address is probably not a good idea as people on smartphones or connecting their computers from multiple locations (eg. home & school) would have to constantly re-login.
About locking the token to a device ID... well how do you get the device ID? By sending it in the request. So if someone can obtain the token, they can probably also obtain the device ID, and fake it when making requests.
Some services do that sort of fingerprinting (eg. locking the token/session t...
connecting their computers from multiple locations (eg. home & school) would have to constantly re-login.
rather this than have my account stolen...
Seems discord are constantly playing cat and mouse with people writing malicious token stealers, some of them very sophisticated. This would at least make that sort of attack much more difficult.
Locking to IP only would also cause problems for anyone (most people) that have dynamic IP addresses. Imagine the lease on the IP resetting and now all your tokens are invalid for you.
I personally don't see much reason in adding these additional restrictions as it should be common sense not to share your token, and these restrictions really won't do much against most types of attacks. Don't click links or install/download/run things you don't know/trust. Not too mention, its only discord,...
Don't click links or install/download/run things you don't know/trust. Not too mention, its only discord, its not a banking account where an attacker could get your financial information.
You assume here that every user of discord is like you or I, and knows not to run random things. The fact this discussion is being had shows that it is an issue and needs addressing. No other platform i use takes a lazy attitude to 2FA. I'm pretty sure i cant just clone my phones settings to another pho...
Honestly its hammered into people not to click untrusted links or download untrusted files. This should be as obvious today as not touching boiling water. Ever been told about "stranger danger"? That applies on the internet as well.
As for the other claim, no, you can just copy session cookies from one device to another and they will work. The only places that won't be possible would be some sort of high security application like banking. I can do it right now with my google and github acc...
There should definitely be an option to log out clients, but it should be locked behind a password to do!
You can change your password to invalidate old tokens (and it's locked behind the current password) :)
Description
When joining a server on mobile, and not completing screening you see Normal (CTA) buttons as "clickable" but get the "Channel verification level is too high" message when trying to interact with them. (This message is a bit confusing.)
Steps to Reproduce
Join a server with Normal (CTA) buttons on its welcome screen via the mobile app, and membership screening enabled. You will see the buttons as available trying to interact with them will give you...
Description
A member is unable to proceed Rules Screening after re-join. Admins is unable to do anything to reject "request to join" except giving a role manually.
Steps to Reproduce
I couldn't reproduce for myself. It happened with member of the guild I am admin for.
Guild ID: 414757184044531722
User ID: 595617613409681408
Also there's a recent Reddit thread showing the iss...
Description
When adding Slash Commands to a guild with only application.commands there is no audit log entry created.
When removing the Slash Commands an audit log entry is created.
Steps to Reproduce
Add Bot with applications.commands scope(no bot scope)
Expected Behavior
audit log with integration create pops up
Current Behavior
No audit log entry is being created
Screenshots/Videos

Oh sick, where? Never seen it
@isaackogan The act of changing your password resets your token. So it would be the "Change Password" button you're looking for :)
Didn't know, very cool! Isn't that a bit unclear for the end user? Though I guess token stealing isn't exactly normal use. Willing to bet most people aren't getting helpful advice in GitHub threads though. Still awesome to know so ty.
I think the tokens are securely.
Don't click on random links and download something what are sus, and don't leak your user token ^-^
I'm also confused on why it's bad UX. Some commands have other ways of showing success, eg. a context menu command that adds a reaction to the message it was used on. Not having to respond to an interaction also makes it possible to DM the user something, so that an ephemeral message wouldn't have to be used for private information (or responses that users may not want to clog the channel with, but do want to keep). For some clients, responding to a slash command can also scroll the chat al...
Having to respond with a message that says "Success" also takes up more screen space than needed, especially if I'm going to respond publicly.
There should be some sort of response to confirm it worked. There's plenty of use cases where multiple things are getting changed where there's multiple failure points (eg, creating a role and adding an override to a channel for that role). Arguing that "well the user can just see that it worked" is not great. What if only half of the operation worked? The user may see that something has changed and assume everything is done/complete/successful.
Whether that confirmation response is a me...
I suppose my argument is more against having to respond via message, rather than having another way to respond. A toast would be nice, or something smaller that's not going to disrupt the flow of commands. You're right that a success (or failure) indicator of some kind should exist, but it really shouldn't be limited to just a message, especially when native parts of the app use toasts and other indicators (and it's clear that Discord is trying to make bots more integrated to native functions)
It would be really nice if we were able to get voice states through the REST API instead of only receiving them through the gateway, it could possibly be behind a boolean query string flag /guilds/{guild.id} allowing only those who want it to get it.
This would be super useful for bots that want to use interactions via an incoming webhook instead of the gateway.
Yes, but forcing it is pretty lame, and its the bot developers job to say what went wrong, and they should be allowed to do so via something not an ephemeral message
What if discord provides additional security like how it asks for 2fa again when I'm deleting servers or changing password, if discord sees that I'm either sending a lot of frnd req or blocking a lot of people (when someone is hacked, this happens) discord can lock up that token and ask for 2fa in order to continue. If the user fails to provide it, notify the real user via email that their account is compromised.
I once saw Facebook doing this: my father's account was once logined to an di...
I think the tokens are securely.
If thats the case, why can any app (dangerous ones ofc) easily get someone's token if they're running on their PCs? Can't wait for avast antivirus and other fake ones to steal tokens, just as they sold data before, same with McAfee.
Oh sick, where? Never seen it
@isaackogan The act of changing your password resets your token. So it would be the "Change Password" button you're looking for :)
Didn't know, very cool! Isn't that a bit unclear for the end user? Though I guess token stealing isn't exactly normal use. Willing to bet most people aren't getting helpful advice in GitHub threads though. Still awesome to know so ty.
It would be really cool for a button on user settings to reset tok...
the change password button. That's what you're thinking of.
the change password button. That's what you're thinking of.
A normal discord user who isn't in coding or doesn't know about "tokens" can never know this fact
This discussion board is for API suggestions and feedback, and this post doesn't really fall under API talk, so it's now locked.
To OP's point, as far as I'm aware the only way to extract a token is to compromise the machine with Discord installed. Unfortunately, once an attacker's code is running with user privileges, it follows that they can do anything you can do. Discord continues to take steps to limit the spread of malicious software and to mitigate the impact of stolen tokens.
This discussion board is for API suggestions and feedback, and this post doesn't really fall under API talk, so it's now locked.
To OP's point, as far as I'm aware the only way to extract a token is to compromise the machine with Discord installed. Unfortunately, once an attacker's code is running with user privileges, it follows that they can do anything you can do. Discord continues to take steps to limit the spread of malicious software and to mitigate the impact of stolen tokens.
The value of this object is a string, not another object.
it's not necessarily a string, it could also be an integer or a double
It's awkward enough having like one other spot in the entirety of the docs that could be a string, or an integer, or non-integer number. I may correct it later. It took far too long to find this issue. Leaving it defined as a string is the perfect balance of chaos, given it's not quite accurate, but at least it's not an object. 😈 Thanks for the note, adv.
I doubt if It's 1:1 API related nor discussions can be used for asking questions but there is no place else to ask so I am here.
What is the role of video metadata at embedding videos. I realized somethings were wrong when I posted some videos from some Telegram channels, where metadata erasing is common. On my iPhone they were failing to be properly saved on gallery so I used image selector to send on Disxord. After I posted the videos, They were surprisingly slow at playing in both discord...
Ah, thank you, I missed that!
On cdn.discordapp.com/emojis/..., it would help if Discord could expose a hash for emojis. This hash could be exposed through the response headers (x-hash-md5 for instance).
Bots which need to perform analysis on the image content would find this useful, as they could simply HEAD the object and detect if it had already been processed, saving bandwidth and CPU processing. If it had not already been processed, then it can do another request to download the image content.
Currently ...
Our cdn uses the standard etag header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag
In an example call, I don't see any etag:
curl --head https://cdn.discordapp.com/emojis/674758248506851379.png
HTTP/2 200
date: Tue, 14 Dec 2021 17:38:21 GMT
content-type: image/png
content-length: 17817
expires: Thu, 13 Jan 2022 17:38:21 GMT
last-modified: Wed, 05 Feb 2020 23:28:22 GMT
cache-control: public, max-age=2592000
x-envoy-upstream-service-time: 1
access-control-allow-origin: *
cf-cache-status: MISS
accept-ranges: bytes
expect-ct: max-age=604800, report-uri="ht...
On cdn.discordapp.com/emojis/..., it would help if Discord could expose a hash for emojis. This hash could be exposed through the response headers (x-hash-md5 for instance).
Bots which need to perform analysis on the image content would find this useful, as they could simply HEAD the object and detect if it had already been processed, saving bandwidth and CPU processing. If it had not already been processed, then it can do another request to download the image content.
Currently ...
The authorization header should be for your bot. The oauth2 access token goes in the body, which is documented here: https://discord.com/developers/docs/resources/guild#add-guild-member
54779d8 Document guild_id field on thread member update... - nerdguyahmad
If you click outside the text box after entering your url the save button should pop up.
afb4f1b correct 8MB to 8MiB in Message Limitations (#4222) - 12932
494829f Correction to Application Command Interaction D... - elderlabs
Thanks for the report, closing this as it seems to already be fixed
6ace2e7 More consistency in the documentation (#4000) - A5rocks
Hey! Could you please provide an example for this in which it didn't work as expected?
9098b40 Document audit logs for scheduled events - typpo
This PR should resolve the snark in #4224
37a25dd Document audit logs for scheduled events (#4237) - typpo
I would also like to see this capability. As a minimum, allow setting one of the subcommands (without any required arguments) as a 'default' to run in the event that no subcommand is provided. This is important to me to provide an interface much like a CLI command works, where the main command does something default (even if it's just to provide help) and then options or subcommands (or both) can be added to the end of the command to modify its behavior.
8859ae1 remove scheduled events gateway events experime... - hemu
remove experimental disclaimer for gateway events which are now stable and supported
425d3ef remove scheduled events gateway events experime... - hemu
Description
Hiding attachments on an embed response can make it overlap with the message under it.
The "space between message groups" option affects how much it overlaps.
This seems to only happens with interaction responses with the "executed command" thing:

Steps to Reproduce
- Have a bot reply with a rich embed in an interaction
- Press the "Remove all em...
Hi, is there anything that is wrong, or would like to be requested?
This repository is for the documentation of the Discord API.
You may go to https://dis.gd/contact for issues regarding discord itself
Text input modals are still WIP and subject to change. While this is the case, the beta preview doc is the place to go for information on this potential feature while the API is not finalized. We'll have a look at this PR once it's ready to ship.
This error code is not even merged, let alone deployed. Therefore it is not released.
Description
Bots cannot change their own nicknames in guilds despite having the right permissions. On attempting to do so, it fails with a 403 Forbidden: Missing Permissions
Steps to Reproduce
- Ensure that a bot has the permissions to change their nickname in the guild you will test this in. (Give them the
Change Nicknamepermission in case they don't. I tested with Admin permissions in the demo, but it also can reproducible with theChange Nicknamepermission.) - T...
You need to use the Modify Current Member endpoint instead.
I use Windows 11 on my PC but the clients detect it as Windows 10 (idk why)
"Windows 11" is just a version of Windows 10 really, at least for now
Nvm I used the wrong endpoint
@typpo this got released recently 100% iirc.
It's merged now and going out in the next release train. Going to merge this so I don't forget.
c4189a4 feat: document error code 50109 (#4241) - spiralw
Hey! Could you please provide an example for this in which it didn't work as expected?
#4213 yes its kinda a clone but its got an example payload
\* Only valid for [component-based](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/) interactions.
- An Action Row can have exactly 1 `input_text` component.
\* For now the [type](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/component-object-component-types) will always be `4`.
- `input_text` must be sent inside an Action Row.
possibly a DM response type?
<img width="742" alt="Screen Shot 2021-12-15 at 4 32 43 PM" src="https://user-images.githubusercontent.com/65673396/146286264-0f449e0a-6856-42b6-9358-cbb8063a1391.png">
also a small slash command icon could be helpful for this--message sent if command fails, and the icon is red. Icon is yellow while bot is "thinking." Icon is green on success.
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
getting a DM response is generally a bad user experience, and ephemeral messages should remove the need for doing that, so I don't see a point in adding a response type for it
some things are better in DMs, though. bots that show private information should probably send you that info in DMs for example, regardless of where the command is sent, and sometimes that private info is something the user wants to keep access to so they don't have to keep using the command (/rely on the bot being up) every time they want access to it
another example: form bots. modals are cool and all, but they're very limited in terms of form bot functions right now, what with a max of 5 ...
I think if DMs are allowed as a response to an interaction, there should be some sort of indication to the user that the bot has responded via a DM (maybe similar to an ephemeral message saying ‘<bot name> has DMed you’ and with a link to the DM message).
I do see the benefit of having bots respond via DMs to send private information that the user might want to refer back to in the future (so it can't be just an ephemeral message), but I think the best solution now is to respond with an ep...
tbh i just think it would be nice to have multiple ways to respond to something in general. ephemeral messages still can cause issues like scrolling away from where an interaction happened or being redundant. it's not good to completely remove things like success or failure indicators, but it'd be nice to have more flexibility when it comes to responding. all responses focus on creating or editing messages only- like before now, bots could just react to ack something, but we don't have that n...
Forcing a response in the first place doesn't make sense. Especially if I want to do something else, like send a public message, which I have to do in addition to an ephemeral message.
31e2861 Denotes sticker_pack.banner_asset_id as optional - jfurrow
b24e9e7 Denotes sticker_pack.banner_asset_id as optiona... - jfurrow
/users/@me/guilds can not only be used by bots (I think the current notice about the OAuth2 scope is a bit misleading, but I don't want to touch that) but it interestingly also supports the with_counts query parameter just like /guilds/:guild_id.
That wasn't documented previously, but this PR adds a notice its support.
Has there been any progress towards a resolution? Interaction Responses should inherit all non-destructive permissions from their bot's integration role. Not having the ability to issue responses containing emotes or proper mentions breaks functionality that exists in the message replies to non-integration commands.
With the deadline still months away, but rapidly approaching, I'd like to release slash commands to my users long before the cutoff window. I cannot do that as things current...
Description
The gateway sends the initial hello payload, an ack heartbeat then immediately after another hello payload. I found this by complete accident when I was updating Sword for the v9 API. As this library uses the v6 API, it did not require intents to be sent on the identify payload. Adding the intents key to the payload fixed it, but the reason I am reporting is that I believe this should throw an Invalid Session (OP code 9) payload, not ano...
1 << 1:EMBEDDED_RELEASED1 << 20:EMBEDDED_FIRST_PARTY
edit: oops looks like it does work for bots now, still no support via oauth tho
Funny API blob served as a rubber duck here; turns out you need guild.members.read for that to work
should we reword the description to something more like:
"when the user's timeout will expire and the user's interaction in the guild is re-enabled. null if the user is not timed out."
timeout / timed out / timing out was avoided internally to keep the fields more generic and b/c timeout is an overloaded term, but it could be clearer to use timeout / timed out terminology at least in the descriptions here where we have more context, for the sake of having easily understandable d...
Discord added a permission for managing guild time outs - I've never documented permissions, but I assume it should be documented as
1 << 40(don't quote me on this)
The new permission seems to be named
MODERATE_MEMBERS=1n << 40n
This is correct, a new MODERATE_MEMBERS = 1 << 40 permission was added to gate the ability to set and clear user timeouts. Wou...
We can't know the voice server update is failed, or discord is being late for it.
So if there's VOICE_SERVER_UPDATE_FAIL event, it will be good.
{
"t": "VOICE_SERVER_UPDATE_FAIL",
"s": 2,
"op": 0,
"d": 1337
"$note": "that 1337 will change by reason, such as No permissions, Full, and more."
}
looks good! NIT: would be good to keep description a bit more consistent with others, maybe something like:
"Allows for timing out users to prevent them from sending or reacting to messages in chat and threads, and from speaking in voice and stage channels".
Thanks for opening this. However, this is not relevant to our api docs, and it is not something we will document.
why do all of the permission flags have "1L" now? that seems to be a language-specific syntax
That's totally wrong and a mess.
Please close it
That's totally wrong and a mess. Please close it
what's wrong in it?
Everything
could you please elaborate?
Think about it
I don't see anything wrong here tbh, can you be specific
- Missing payload info
- Wrong formatting of table
- Misplaced attachment object
Missing payload info
Wrong formatting of table
Misplaced attachment object
- I hyperlinked the exact payload for attachments
- When you want to have a link in a table the formatting is 100% gonna be messed up, many tables are formatted in this same way (see screenshot below)
- What do you even mean by "Misplaced attachment object". I linked the attachment object
<img width="933" alt="Screen Shot 2021-12-18 at 1 26 00 AM" src="https://user-images.githubuse...
This pr properly adds the slash option 11 attachment
WIP, not released
- [x] Adds Application Command Option Type
- [x] Adds Resolved Data Structure
im wrong about the table formatting, fixing it now
@NovaFox161 #4251 is a mess.
@NovaFox161 #4251 is a mess.
Then comment on what is wrong instead of being rude and making the exact same PR?
I think you accidentally changed the package-lock.json, could you revert it?
I think you accidentally changed the
package-lock.json, could you revert it?
sure
closed this PR as this one got too messy, and had too many commits. new pr is #4253
@MinnDevelopment i messed that PR up lol but i think this one should be alright
Just so you know, it usually isn't necessary to open a new PR because there are too many commits.
Just so you know, it usually isn't necessary to open a new PR because there are too many commits.
yeah a few of my friends just told me that lol. should have consulted them before doing this
That's totally wrong and a mess.
Please close it
@Lulalaby your comments are not conducive to our desired environment. Please refer to the Code of Conduct for more information: https://github.com/discord/discord-api-docs/blob/master/CODE_OF_CONDUCT.md
<img alt="Screen Shot 2021-12-18 at 1 26 00 AM" width="933" src="https://user-images.githubusercontent.com/35400192/146615056-b4ef5217-1559-4c5a-9936-3bcf78893cd0.png">
looks like you have wrap on, you'll need to turn it off (alt z) to edit tables properly
<img alt="Screen Shot 2021-12-18 at 1 26 00 AM" width="933" src="https://user-images.githubusercontent.com/35400192/146615056-b4ef5217-1559-4c5a-9936-3bcf78893cd0.png">
looks like you have wrap on, you'll need to turn it off (alt z) to view and edit tables properly
yep i figured it out lol, fixed all of it in #4253
isn't EMBEDDED_RELEASED relevant, because that can determine whether an activity invite generated by a bot will be usable?
also, are max_participants and embedded_activity_config.activity_premium_tier_level considered relevant?
why do all of the permission flags have "1L" now? that seems to be a language-specific syntax
Oh that is a great catch, thanks advaith -- @Lulalaby can we keep perms as is and add the new permission to remain consistent with the other formatting of the other permission entries please?
oh I see where the issue was in needing to maybe worry about longs, my fault for not catching this in my previous review, sorry. This can be tricky because the previous permission value is 0x8000000000 and now with 1 << 40 we ran out of digits with the previous formatting here didn't we :)
I think we can just document the new value as is: 0x10000000000 (1 << 40). This will probably make it slightly misaligned with the rest of the column so if we are worried about that we could probably...
That's totally wrong and a mess.
Please close it
Be Nice, In The Discord-Testers Server If Someone Does Wrong Bug Report We Tell How To Fix Not Yell !
Zina
Official Discord-Testers Bug Squasher
Description
These flags (or at least most of them) are not self-explanatory so it would be great to have the proper descriptions in the documentation.
Description
There's a difference in value of application flags given by the gateway's READY event and the Get Current Bot Application Information endpoint.
One of the flags that differ is GATEWAY_MESSAGE_CONTENT, the rest appears the same for my bot but there might more discrepancies.
Steps to Reproduce
- [Connect (and ide...
Having had a look through the documentation, other bitfields which have their individual bits enumerated (like this one) have a description colum. There are bitfields purposefully left without elaboration like thread member flags, but since the values of the application flags are documented they should be accompanied by a description.
When adding an image to an embed, the image is currently always rendered at the bottom of the embed, below the text content.
Depending on context however, this isn't always the most aesthetically pleasing position.
To allow for more flexibility when designing custom embeds, I am proposing an additional optional parameter for the embed image structure that specifies the positioning of the image in r...
For example if my IP address was 69.42.06.942 then I could optionally bind my bot to that IP address through the developer portal.
By "binding" I mean making it so that any requests with the Authorization header as the bot's token would ONLY be accepted if they were from said whitelisted IP address, otherwise they'd be rejected with a 403 - Forbidden.
This is a great way of preventing disaster from token leaks as no one else would be able to request from the token, because Discord o...
Even whether it is just optionally, how should it be handled when your ip is dynamic?
I think making an allow list for that is not really the way, to handle these issues
Well you can't really do anything about your IP being dynamic, so you'd have to change it every so often or work on a VPS with a static IP
But yes you're right about dynamic IPs being an issue that can't be solved
For how long are attachments from command options available on the CDN? I think if there is a time window, that should be mentioned in the docs.
For how long are attachments from command options available on the CDN? I think if there is a time window, that should be mentioned in the docs.
This is a good question however I am unsure about this myself as I have not been able to successfully send an attachment due to this feature not being implemented in the discord client yet. Hopefully a staff member can enlighten us?
I tested this, and it looks like the actual behavior is that the socket closes with close code 4013 (invalid intents). I would assume you get another HELLO because the library reconnects. The closing of the socket is intended behavior, and a library should not re-attempt the connection if the intents are invalid.
Invalidate session (OP 9) is for cases where a session no longer exists. It usually implies something like the gateway identify limit, or a failed resume.
Especially if you are trying to get the url from the image uploaded, because message.content blew up. Slash commands don't support images.
Slash commands will support attachments soon fyi
Closes #4247
I would also love to reword some of these explanations to be more professional, but I'll focus this PR to one change.
All channel inputs in slash commands are validated by the API itself, you don't need to worry about the user sending in an invalid channel.
They can't be filtered though. API will check the channel exists, but not if the user can manage it (if user has specific permission in a given channel), or even if the channel is disabled in bot settings itself (in my bot, you can set permission to use command per channel per role, and that can't be done in API nor I saw any plans on adding th...
Description
When I time someone out, the audit log member_disconnect is called, I'm aware that timeouts kick the user if they're on a voice channel, but if they're not, the audit log event is called anyway.
Steps to Reproduce
- Time someone out.
- Check audit logs.
Expected Behavior
Don't call member_disconnect audit log event if the user isn't on a voice channel.
Current Behavior
It's called regardless of whether they are on a voice cha...
Can repro with Android 103.8 Alpha and 107.5 Alpha, in fact just discovered this issue today. My bot doesn't appear to be receiving events for autocomplete with grouped subcommands at all when on mobile, but works fine on desktop (Canary 108726 as well as Stable 108703)
Description
The
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
oops hit ctrl enter instead of shift enter
Description
The permissions list in the OAuth2 General tab for adding a default authorization link does not include the Moderate Members permission
Steps to Reproduce
- Open the applications page
- Select an application and go to the OAuth2 tab
- Select
In-App Authorizationas the authorization method and select thebotscope
Expected Behavior
The Moderate Members permission is present and can be selected
Current Behavior
The permission is not there
*...
The client seems to call the 1 << 40 permission "Timeout Members" instead of "Moderate Members". Will this be changed in the docs?
its internally Moderate Messages and the docs use the internal names (let's not do a repeat of the Use Application Commands mess)
it's internally Moderate Messages
Isn't this contradicting heymoo's comment 3 days ago?
a new MODERATE_MEMBERS = 1 << 40 permission was added to gate the ability to set and clear user timeouts.
I think that calling it Moderate Members is very ambiguous and conflicting when kick and ban use different permissions entirely.
Maybe we should refer to the FAQ page on Discord Support for how time outs work.
Since line 290 does this for how premium works, we could consider this as well:
https://support.discord.com/hc/en-us/articles/4413305239191-Time-Out-FAQ
it's internally Moderate Messages
Isn't this contradicting heymoo's comment 3 days ago?
a new MODERATE_MEMBERS = 1 << 40 permission was added to gate the ability to set and clear user timeouts.
how?
how?
One of them is _MESSAGES and the other is _MEMBERS. They're named two different things
sorry I made a mistake, it's members
The client seems to call the 1 << 40 permission "Timeout Members" instead of "Moderate Members". Will this be changed in the docs?
Good catch. To clarify: the permission name internally and for the purposes of the api is MODERATE_MEMBERS, with the intention that we keep it less specific to potentially allow additional future moderation actions to be grouped under this permission. You are right in that the client UI does currently refers to this as "Timeout Members". This was an inten...
Good catch. To clarify: the permission name internally and for the purposes of the api is MODERATE_MEMBERS, with the intention that we keep it less specific to potentially allow additional future moderation actions to be grouped under this permission. You are right in that the client UI does currently refers to this as "Timeout Members". This was an intentional choice to make the settings UI clearer for users. The idea is in the future if additional actions are grouped under this permission...
With this feature being released, I'll be marking this PR as ready to be merged.
It should be documented how long one can set a timeout for. From personal testing, it appears to be 5 weeks but it might be smarter to get an exact time from someone who works with the API.
With this feature being released, I'll be marking this PR as ready to be merged.
Thanks, we'll take one more look at this a bit later and get this merged in today.
It should be documented how long one can set a timeout for. From personal testing, it appears to be 5 weeks but it might be smarter to get an exact time from someone who works with the API.
I thought I saw max mentioned in this PR earlier, might have gotten lost after some of the suggestions I made re. descriptions. se...
From testing the max value is 27/28 days (tbh there shouldn't be a limit)
| Field | Type | Description | Permission |
| ---------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------- |
| nick ...
7cd2237 Add locale fields to interaction structure - infinitestory
As it says on the tin. Will merge this when it actually goes out.
why isn't it on the user object?
Note that these internal permission names may be referred to differently by the Discord client. For example, "Manage Permissions" refers to MANAGE_ROLES, "Use Voice Activity" refers to USE_VAD, and "Timeout Members" refers to MODERATE_MEMBERS.
when a user uses an interaction they are providing data to the application; being able to access the data arbitrarily is more of a privacy issue
I think adding it to the user object would be a bad design. This is not a canonical user property and having a "interaction user" or something (a la thread member) would be complecting stuff.
| Field | Type | Description |
| ----------------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------...
When can this property be missing?
It seems to be on every guild member object.
Had no case yet, where it was missing.
| Field | Type | Description | Permission |
| ---------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------...
| Field | Type | Description |
| ----------------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------...
oh this is a good point - @hemu is it optional?
also, is this field supported in the Add Guild Member endpoint?
| nick | string | value to set user's nickname to | MANAGE_NICKNAMES |
should also be fixed in add guild member (related: prev comment)
Could the permissions section be updated to explain how being timed out affects the permissions? Such as, which permissions it disables.
Shouldn't this add support for submitting localized versions of commands like was shown in the last developer event?
that is separate and waiting on client support to ship
That field is only sent for the current user (ie GET /users/@me) which most libraries already treat as a separate structure.
Honest question: if the UI shows it as "Timeout Members", would it be wrong to not keep a similar name for consistency reasons with the API as
TIMEOUT_MEMBERS? All of the other permissions are kept generally 1:1 in naming with the API and UI because of (reasonably assuming) consistency and avoiding confusion.MODERATE_MEMBERSas the permission for timeouts in the API does add a slight amount of confusion imo as @MinnDevelopment mentioned. I think the actual naming of the permission is...
ah to be honest the optionality of fields from the perspective of the public api is always a tricky question to answer definitively. b/c the objects we define in the docs are defined more for convenience, so they can be referred to from other places in the docs rather than something that always maps 1:1 to how we use models internally. I think the best answer I can give is when we serialize the guild member model, we currently always seem to include the communication_disabled_until field. T...
Could the permissions section be updated to explain how being timed out affects the permissions? Such as, which permissions it disables.
great idea, I can add this as a followup
also, is this field supported in the Add Guild Member endpoint?
not currently. would the use case be to add a member that is already timed out initially?
also, is this field supported in the Add Guild Member endpoint?
not currently. would the use case be to add a member that is already timed out initially?
Wouldn't this overlap with the features of membership screening?
I was just asking to make sure it wasn't being missed in the docs, I don't have a use case
since from a pure data model perspective communication_disabled_until isn't a core field for the member model like joined_at is, how about we leave it as optional just in case, since I'd imagine the opposite -- assuming it is required now and at some point in the future an endpoint whose document references this Guild Member Object in docs fails to include this field -- is a worse developer experience. What do you think?
We should leave it as optional :)
alright going to merge this in and deploy at this point so we can make these core parts available -- can save improvements for follow up PR's at this point
414d898 update changelog for timeout feature - hemu
Unsure if this is supposed to be possible:
{"payload_json":"{\"allowed_mentions\":{\"parse\":[]},\"content\":\"Hello\"}"}
This is a valid message create body, the docs list "payload_json" this as multipart/form-data only.
Add new documentation for the recently released guild member timeout feature.
this shouldn't be under the scheduled events header
## Guild Member Timeout
#### Dec 20, 2021
Add new documentation for recently released guild member timeout feature.
## Guild Scheduled Events
this shouldn't be under the scheduled events header
ah yea was fixing that in next commit, good catch :D
01454ed Apply suggestions from code review
- hemu
b10b065 reword permissions statement - hemu
Timed out members will temporarily lose all permissions except `VIEW_CHANNEL` and `READ_MESSAGE_HISTORY`. Owners and users with `ADMINISTRATOR` permissions are exempt.
I think admin users is too much
technically you're right but maybe in this case we can leave it just to make it extra clear, since devs are familiar with the term "admin user" we use elsewhere :)
1b27008 update changelog for timeout feature (#4266) - hemu
It looks like you might just have global and guild commands with the same names; that's different from what the issue is describing.
I had a case where it even said I disconnected 5 users when I timed out a single bot.

The problem
Other bot creators that I know and I have run into the issue where the bot could not assign or edit a role above the bot's top role. Most robust bots will have an error message telling the user that this is impossible. The problem is that the user would need to retype the command, which could be quite an annoyance.
Functionality
I'd love to have a way to enforce the role position of the bot. Meaning, if a user tries to pass a role with a higher position than the top bo...
Would be nice to also have an option to exclude managed roles 👍
this will be fixed soon, thanks for reporting
I think this function would be very beneficial for partner servers or Discovery
this is working as intended. until the message content restriction rollout our backend is overriding that flag to allow bots to consume message content.
5a40e8b Add .gitattributes (#4256) - MinnDevelopment
It is supposed to be possible, though its not an intended use case of the API.
Looks like this is happening in the client as opposed to the API; will take a look
46f0280 Tweak application_id wording on message objec... - Jiralite
overall i don't find think this is a useful addition:
- changes to the api are breaking if they change existing documented behavior, which is already self-apparent. i don't think adding further qualifications is useful since they could be broken in the future.
- random html responses from our upstream providers (cloudflare or otherwise) would be part of outages, which are almost by definition not documented behavior.
- the documentation also already states that correct user agents are co...
77e1813 Add reconnect column to close code table (#4261) - MinnDevelopment
Hey, the APPS section should now not appear in context-menus once brought up.
Thanks for the PR. At this time we don't want to document this route. You should instead always use GET /sticker-packs and filter from there
I had a case where it even said I disconnected 5 users when I timed out a single bot.
I'm guessing it was 5 users b/c there were prob 5 instances where you timed out a user and each one of those had a disconnect log entry which were all grouped together.
this should be fixed now. going to close this out but feel free to reopen an issue if you still notice this.
Description
When the timeout automatically ends it doesn't send a GUILD_MEMBER_UPDATE event.
Steps to Reproduce
- Listen to the event
- Timeout a test account
- Wait for it to automatically end.
- The event doesn't fire
Expected Behavior
To send communication_disabled_until: null when the timeout automatically ends.
Current Behavior
It doesn't fire the event.
Client and System Information
API: v9
Gateway: v9
Note
The event does fir...
the reason this is happening is because we don't go out of our way to change the communication_disabled_until field once the timeout naturally expires, so there is no update. We let the value continue to be the existing datetime which is now in the past, and since the user is only timed out until the communication_disabled_until value, a datetime in the past means no longer timed out
This makes sense on the client side, it makes logging for bots much more involved though. There is no audit log entry on timeout expiry, and there's no event, so we basically have to track the timeouts manually like we did when we did it with roles. I wouldn't necessarily consider this a bug, but I would like this to be changed or rectified in some other manner.
Description
When utilizing allowed_mentions to prevent mentioning the replied user in a reply, you must also specify other allowed mentions.
Not sure if this is intentional design behavior, but it feels unintuitive to me.
Steps to Reproduce
POST a new message to a channel with a mention, with allowed_mentions: { replied_user: false } (it does not actually need to be a reply, also the replied_user key can be literally any other invalid key)
**Expected Behav...
I can reproduce this, with the added note that an empty allowed_mentions object behaves the same as a non-present one:

this behavior was discussed a lot when replies were released, iirc it's intentional
Setting a subcommand as the default when no subcommands are specified seems like an elegant solution. I love this idea.
yea I agree the current implementation doesn't allow for the best dev experience for those of you who want to be able to react to timeout expirations easily. Realistically based on what would be involved here and current priorities for the timeout feature, I am pretty sure support for this use case won't be offered any time soon, sorry :( but we'll note this as a use case that some devs want and consider this for the future
Yes can also confirm, this is not an issue caused by sub commands. You can not scroll through the commands list if you have started typing the command. It does work on mobile, just not on the desktop client.
Please fix! :)
Greetings, everyone. We just spent a bunch of time going through button possibilities and decided we are not going to add more button styles. In general, we think button styles should be tied to behavior, not the color itself. For example, green to indicate success, red to indicate danger, etc. We also want to ensure that the styles we add to our public API reflect the best practices that we use in the client (outline buttons, for example, can raise accessibility issues).
So despite bu...
Greetings, everyone. We just spent a bunch of time going through button possibilities and decided we are not going to add more button styles. In general, we think button styles should be tied to behavior, not the color itself. For example, green to indicate success, red to indicate danger, etc. We also want to ensure that the styles we add to our public API reflect the best practices that we use in the client (outline buttons, for example, can raise accessibility issues).
So despite bu...
Yeah, coming back to this now, I really only wanted another secondary button style as the primary feels so different.
Anyways, most of that desire I have realized could definitely be satisfied by future components
If you want to automatically change the bot's profile every month, for example, you can do it with PATCH users/@me.
This worked brilliantly until the application commands came along. This is because with these, the bot icon is not shown, but the application icon.
^ I therefore suggest 2 solutions:
1. Change it to show the bot icon
2. Enable application for bots
3. Other ?:?
What are the edge cases where locale is not provided? As far as I can see, it is always provided. The same for guild_locale it seems to be always en-US for non-community guilds.
Guild locale is missing iirc in DMs instead of being null.
But I'm not sure.
@Victorsitou that is answered in a note below the table
@advaith1 oh, I completely missed that, thanks!
I have an HTML page serving an .mp4 video, with the following head information:
When I send the link to the webpage through Discord, the video preview doesn't work, and I notice this failed request (blurred file name because it's irrelevant):

Am I doing something incorrectly, or is it just not functioning right?
It was working correctly with ima...
Any update on this? This is still a major pain point for all bot developers that switch to slash commands.
So locale is expected to always be present (except for PING interactions) and guild_locale for all interactions on a guild, right?
Description
I have a bot, that doesn't have a bot token (only http interactions). I set authorization method in its OAuth2 settings. But I don't see a Add to server button in my server
Steps to Reproduce
- have a bot without token
- set authorization method
- make it respond (or not respond) to command so we can see its profile
- see no button
Expected Behavior
there will be a button in profile that will add bot to server
Current Behavior
there is no ...
Have you tried it with the stable version?
This was noted by the Bots team in the Recent Developer Stage and it was noted that this is a known issue caused by profile loading glitches.
Have you tried it with the stable version?
No, but i will try it in web version
This was noted by the Bots team in the Recent Developer Stage that this is a known issue caused by profile loading glitches.
Oh, so i can close issue
wanted to note that "no bot account" is different from "http-only bot"; you can have a http-only bot that has a bot account and it should display the button
Talked to Minn, but as a quick update the PUT endpoint is idempotent, but the POST update isn't. After break is over I'll talk with the team about whether we'd like to change that behavior or not 👍
I think it would easiest to just go to the developer portal and change the bot icon manually,, I understand the point of having to do it automatically since it would be automatic and you can really forget doing it. But changing it manually will just take 30 seconds or 2 minutes in maximum.
wanted to note that "no bot account" is different from "http-only bot"; you can have a http-only bot that has a bot account and it should display the button
okay i ll note that, but i have no bot account
You're right, but when you want to change your avatar every day (for example xelA who changes it, doesn't have slash commands) nobody wants to do it manually.
I don't think Discord wants you to change your bot's avatar once every day, that falls under the definition of API abuse
I don't think Discord wants you to change your bot's avatar once every day, that falls under the definition of API abuse
I don't think the daily changing of the profile card has anything to do with the violation. Alternatively, just for those significant moments and stuff, a lot of times one forgets about it with a lot of obligations and it's a nice detail.
It definitely does fall under ''doing X every Y''
Hi, if I post a link of my website in Discord, it doesn't load the embedd (it works correctly with on other platforms).
It doesn't embed any of the links of my website https://wyld.moe or https://elry.moe What could be the problem?
All the options to embed links are enabled in Discord and the website metatags are correctly set with Open Graph.
Are you sure that the metatags corretly set?
Are you sure that the metatags corretly set?
Yes, due to them working on whatsapp.


this is probably due to your website
btw, your meta tags must look something like this
<meta content="Title" property="og:title" />
<meta content="Description" property="og:description" />
<meta content="Title URL" property="og:url" />
<meta content="Icon path" property="og:image" />
Buddy, they work on Whatsapp.
Here are they:
` <!-- WEBSITE TITLE & DESCRIPTION -->
<title>WYLD - You vs the Wild.</title>
<meta name="description" content="Gather Resources, Fight Wildlife and build a Home.">
<meta name="keywords" content="game, landing page, gaming, business, wild, wyld, steam">
<!-- OG meta tags that improve the look of your post on social media -->
<meta property="og:site_name" content="WYLD" /><!--website name-->
<meta property="og:si...
It definitely does fall under ''doing X every Y''
Doing change every day lol
So idk whats happening, but from me everything is set correctly.
Can you try my code?
Btw, whatsapp is not discord.
Your code is litterally in my code.
My other website has the Title tag and is not behaving any differently.
I replaced, Site_Name with Title, and nothing has changed.
All of the named og tags are properly set on both of my websites.
night listed a few cases that can make the embedding fail: https://github.com/discord/discord-api-docs/issues/4146#issuecomment-983105972
Notably, he linked https://ogp.me/ which says that 4 properties are required. None of your websites includes all required properties. I would first try to include all these properties.
Also, Discord can cache an old version of your OG tags. So when testing, be sure to include something like ?test=<random value> at the end of your URL to force Discor...
None of your websites includes all required properties. I would first try to include all these properties.


How much more do i have to say that EVERYTHING IS SET CORRECTLY, please guys.
When I posted my comment, the og:type wasn't set on any of your websites.
Do you have access to the logs of the webserver? If so, do you see a request coming from Discord when posting the link in a message? (the user agent will contain Discordbot/2.0 iirc).
There is no Discordbot/2.0
These webhook endpoints support X-Audit-Log-Reason header but wasn't documented. This pull request documents them.
You forgot to include the for each of the info notes.
- > This endpoint supports `X-Audit-Log-Reason` header.
+ > This endpoint supports the `X-Audit-Log-Reason` header.
You forgot to include
thefor each of the info notes.- > This endpoint supports `X-Audit-Log-Reason` header. + > This endpoint supports the `X-Audit-Log-Reason` header.
Thanks, fixed.
I've forgot to mention it when initially making this post, but this had spontaneously come back into relevance whilst talking on Discord.
While the body of this issue has a far narrower scope than the title would imply, this actually does apply to more than just interactions, though with the direction Discord wants to steer developers, interactions are the most important, hence the initial message that spawned this discussion.
I wanted to list some examples of what can really only be de...
discord.js v13.4.0 and I'm also having the same issue.
Embed works properly, see below.

do you have the embed links permission?
Description
When a capital letter is typed while entering a ROLE or MENTIONABLE option type, the role autocomplete disappears, unless an @ was typed at the beginning of the option value. To select a role, you must either prefix it with @ or type its name all lowercase.
This issue is present on Desktop and iOS (idk about Android)
Steps to Reproduce
- Have a slash command option with type
ROLEorMENTIONABLE - Select the command and type a capital letter while sel...
i wouldnt say so since mine is for passing multiple values for one argument where as #3286 is about using one argument more than one times
For future visitors, what did you do to fix this? Was it the missing type tag?
For future visitors, what did you do to fix this? Was it the missing type tag?
Contact your Hoster, they blocked discords bot.
In Android if u don't use @ them there will be no autocomplete.
In Android if u don't use @ them there will be no autocomplete.
Just one style thing:
"stickers": []
Description
Setting the flag SUPPRESS_JOIN_NOTIFICATION_REPLIES reference seems to no longer have any effect.
Steps to Reproduce
Set the flag value
Expected Behavior
I'm expecting sticker reply prompts on join messages to be suppressed.
Current Behavior
Sticker prompts are still there. This was not the case at some point in the past
(ie. This flag was working as ad...
try clearing your guild's settings (set flags to 0) and then setting the SUPPRESS_JOIN_NOTIFICATION_REPLIES flag.
i don't know if it's the same issue, but this same behaviour was caused by iirc broken state between internal API and guilds services a month or two ago
Description
When clicking on avatars of older messages of webhooks, the wrong profile is shown.
- Affected project: https://github.com/Half-Shot/matrix-appservice-discord/issues/757
Steps to Reproduce
- Setup a bot which uses webhooks to send messages for different users. E.g. the matrix bridge using t2bot.io
- Send messages from different users
- when clicking on the profile pictur...
fwiw this behavior has always happened and been known, unfortunately it'll probably never change
Bots could use the "Note" feature that normal users see on the profiles of other accounts for a mini-database of sorts, it just seems like a handy inbuilt way to store information about users
Discord isn't meant to be used as a database for bots, you can store whatever info you need on your own server
Currently, there is no easy way to determine when a member's timeout gets removed, as we only get a GUILD_MEMBER_UPDATE event for when the timeout is added. This is likely because the communication_disabled_until property never gets reset when this happens. I'd like to suggest a change in this behavior so that we can receive this event as that would open other possibilities for bot developers with this new feature.
Ah I didn’t know this had already been reported. It’s quite annoying that this won’t happen soon since this forces us to keep legacy systems from when we used to mute people with roles like ckohen said, but I guess we’ll have to wait for that. Thanks!
This page needs the communication_disabled_until audit log change key documented (which seems to have been missed from #4075).
This close #4284 adding the missing key in auditlogs
This PR adds documentation for the bio field, which is sent to bots on the /users/@me endpoint.
Are you sure this is sent? I'm not seeing it.

Wait I'm an idiot, one moment
Wait I'm an idiot, one moment
With proper OAauth2 this time, I'm still not seeing it w/ the identify scope 
This only appears for using /users/@me with Authorization: Bot [TOKEN]
Imo this is useless to document
This only appears for using
/users/@mewithAuthorization: Bot [TOKEN]Imo this is useless to document
I think it should be documented as soon as it is sent to the bot
Well a field that's always going to be empty, and is unused in favor of a description field on the application seems a little redundant to document.
It's empty but you still receive it, therefore anyone looking at the docs should be able to know what is it for, we could specify it's unused for now or something, but if it's there then it should be documented
bots receive a lot of undocumented stuff, this isn't new behaviour
| bio? | string | the user's bio | identify |
If your account gets "hacked" (= password compromised) and does not have 2FA enabled then the attacker can just simply activate 2FA with THEIR Authenticator app.
Adding a bot to bypass is not the threat. The "2FA requirement for mods" is only an incentive for people to activate it ahead of being compromised.
It would be nice to have slash commands splitted into categories in slash command list!
Like this:
I have 5 commands:
- Kick
- Ban
- Scream
- Info
- Ping
Instead of seeing the slash commands within 5 command, it would be nicer to see this in the slash list:
MODERATION
/kick
...
/ban
...
FUN
/scream
...
GENERAL
/info
...
/ping
...
Subcommands and Subcommand-Groups exist fyi.
OFC they are visually not separate
but i dont think this is a great idea.
splitting commads into categories would introduce more visual confusion, people are already having hard time understanding slash commands and how they work
It's a great idea maybe when it's exists a setting in the client for toggle this off.
It's a great idea maybe when it's exists a setting in the client for toggle this off.
As mentioned by staff countless times before, the docs are only meant for fields and routes which bots can use.
As long as bots can't access the bio field (which will probably never happen due to privacy concerns), this shouldn't be documented.
As mentioned by staff countless times before, the docs are only meant for fields and routes which bots can use. As long as bots can't access the
biofield (which will probably never happen due to privacy concerns), this shouldn't be documented.
Bots do access the bio field, as mentioned in the PR description
getting an empty string is not the same as "accessing", and it isn't "the user's bio". also, saying that it's returned when authorized with the identify scope is just wrong.
there's no point in documenting this when it's only available as an empty string in one endpoint.
I honestly think they're useless...
What sort of strings can we expect to see as a locale? ISO 639? (I could probably test myself eventually, but having it in the documentation is better)
@A5rocks current locales of discord are:
de | German
en-GB | English, UK
en-US | English, US
es-ES | Spanish
fr | French
hr | Croatioan
it | Italian
lt | Lithuanian
hu | Hungarian
nl | Dutch
no | Norwegian
pl | Polish
pt-BR | Portuguese, Brazilian
ro | Romanian, Romania
fi | Finnish
sv-SE | Swedish
vi | Vietnamese
tr | Turkish
cs | Czech
el | Greek
bg | Bulgarian
ru | Russian
uk | Ukrainian
hi | Hindi
th | Thai
zh-CN | Chinese, China
ja | Japanese
zh-TW | Chinese...
Source of the locales posted by @Lulalaby: https://discord.com/developers/docs/dispatch/field-values#predefined-field-values-accepted-locales
Since its buried in the docs, I figured I'd post it here, however, we do not yet know if this is the complete list that the interaction locale will be using.
This list is what discord returns if you transmit a wrong localization 😅
At the very minimum, the default behavior should not be discarded when garbage properties are defined.
I think, with new discord update. Bots need a date selection for slash commands right?
[discord/discord-api-docs] New comment on discussion #4288: Date Selection for Slash command options
This has already been confirmed as being on the roadmap.
https://gist.github.com/NovaFox161/74a92ca07353df67a7e73d8c80fbe8cc
Can someone tell me how to fix it since the trello board got deleted
Intro
I think guild_id should be present at-least in the following endpoints:
GET /channels/{channel.id}/messages
GET /channels/{channel.id}/messages/{message.id}
would be grateful if it is also added in
PATCH method too
Reason
when using these endpoints , there are 2 main params, ( channelId and messageId)
and the object that is returned on success ( taking Guild Text Channel as example ) is like this:
{
id: Snowflake,
type: 0,
content: 'hello...
Hi,
My question is that why we cannot add more than 10 redirect uri in discord oauth2.
When I try to add eleventh redirect uri, it gives me an error which is given below:
"You provided an invalid redirect URI."
I don't know why?
this seems to be a bad error message, the actual error is "the list of redirect URLs cannot be longer than 10". consider using state key instead of adding many URLs as redirects, if possible
This has already been denied in the past: #912
This has already been denied in the past: #912
Description
https://discord.com/developers/docs/resources/webhook#create-webhook describes restrictions for webhook names. It also links to https://discord.com/developers/docs/resources/user#usernames-and-nicknames for additional restrictions. When testing how exactly they apply I noticed that some of them don't actually hold true and some could use some clarification.
Steps to Reproduce
Create a webhook for a channel through the API. Execute the webhook to send a message, pr...
Is this a requirement in our API? As far as I'm aware, we accept those values and then flask modifies them inline. I don't think we need to document that
Talked with Minn in DAPI, going to look into whether we can convert the attachment:// filename as well, if it matches an uploaded file
| Field | Type | Description |
| ------------- | ------- | --------------------------------------------------------------------------------------------------- |
| value | string | value of input text component, will be an empty string if no value submitted |
| type\* | integer | the [type](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/component-ob...
This has already been confirmed as being on the roadmap.
https://gist.github.com/NovaFox161/74a92ca07353df67a7e73d8c80fbe8cc
[discord/discord-api-docs] New comment on discussion #4288: Date Selection for Slash command options
also this is a duplicate of #3303 (which should stay open until it's added)
In the API Docs it says that Stage Discovery is not yet entered as "deprecated".
Alignment
| discoverable_disabled | boolean | Whether or not Stage Discovery is disabled (deprecated) |
-
let's specify non-nullable type
?ISO8601 timestamp. I don't thinknullvalues are included as part of the change -
would be good to keep description more consistent with surrounding description and maybe make the guild scope clear since we are just using 'user' -- maybe something like: "user guild timeout state changed" ? Also it's probably ok to not include the link to t...
[discord/discord-api-docs] New review comment on pull request #4297: Adds get guild widget structure
You should probably mention that these are anonymized
the widget members aren't actual user objects, they should be documented as a separate structure
I've never used notes on a serious level, but if I ever were to, I still would not see the benefit of it over your own database. Client enhancements such as these shouldn't be relied on for your bot's needs.
[discord/discord-api-docs] New comment on pull request #4296: Document stage discovery as deprecated
I feel like using the warning admonition would be better here instead of adding (deprecated) to the table contents. It's a better visual flair imo to informing the developer about an upcoming deprecated field.
[discord/discord-api-docs] New comment on pull request #3466: Clarify Ephemeral Usage With Followups
I was about to create a PR about this after hours of crying and frustration over the flags not changing when I saw this opened. Is there a follow-up on the merging status for this?
Do the deaf and mute fields actually appear in any sense (as in existing but given null values) or do not return from the API schema at all?
These fields only appear to be present via the REST API, being sent via Voice state update events over ws, to further the point
It may be worth adding a note admonition clarifying this
[discord/discord-api-docs] New comment on pull request #4296: Document stage discovery as deprecated
I feel like using the warning admonition would be better here instead of adding
(deprecated)to the table contents. It's a better visual flair imo to informing the developer about an upcoming deprecated field.
I think (deprecated) is enough.
Three new permission bits have been added, `CREATE_PUBLIC_THREADS`, `CREATE_PRIVATE_THREADS`, and `SEND_MESSAGES_IN_THREADS`.
> note
> `SEND_MESSAGES` has no effect in threads; users must have `SEND_MESSAGES_IN_THREADS` to talk in a thread.
This respects the usage of the note admonition seen across the documentation
This feature has been out for a little while now AFAIK, is the new information about the banner field in the Guild object still relevant?
[discord/discord-api-docs] New review comment on pull request #4297: Adds get guild widget structure
> The fields `id`, `discriminator` and `avatar` are anonymized to prevent abuse.
(This issue is a copy of the pre-existing GameSDK issue located here)
Description
Attempting to call IDiscordImageManager::fetch will always return an DiscordResult_InternalError via callback. We then can't run get_dimensions or get_data, as these return DiscordResult_NotFetched.
Steps to Reproduce
Minimal reproduction project:
#include "discord_game_sdk.h"
#include
#include
void fetch_callback...
03b60d1 Document limit max value for GET event users - hemu
743cd23 Document max value for GET event users limit pa... - hemu
Hello, i need help.
I test this api https://discord.com/developers/docs/resources/application using API link:
https://discordapp.com/api/applications/905544503258120272 (905544503258120272 is my bot id)
however, the api gives me the following error message:
{"message": "Bots cannot use this endpoint", "code": 20001}
when I do an
Authorization: Bot
I try to find out how to use this API, however, no postman doc or even some github can help me.
Would you help m...
Only users can manage applications
Are you looking for Get Current Bot Application Information? That would be a GET request to https://discord.com/api/v9/oauth2/applications/@me with your authorization header.
This could probably be closed since well you cant lurk public stages anymore
I opened a pull request yesterday regarding Stage Discovery https://github.com/discord/discord-api-docs/pull/4296 btw
Hello,
How do then Top.gg to display:
- Description (bio) of the bot
- Bot's avatar
- Calculate the number of servers the bot is on
it fetches the first two with /users/:id with the bot user id, and it doesn't calculate the number of servers; the bot gets its own server count from its guild cache and posts it to the bot list with the list's API.
there is /applications/:id/rpc but it's unfortunately undocumented and not supported for bots, and it doesn't return owner or server count
feature request for a supported get application endpoint that does return that data:
it fetches the first two with /users/:id with the bot user id, and it doesn't calculate the number of servers; the bot gets its own server count from its guild cache and posts it to the bot list with the list's API.
there is /applications/:id/rpc but it's unfortunately undocumented and not supported for bots, and it doesn't return owner or server count
feature request for a supported get application endpoint that does return that data:
- [[Feature Request] Endpoint to f...
[discord/discord-api-docs] New comment on pull request #4285: Add docs for guild timeout in auditlog
Ok based in @hemu feedback i make the changes for format and object type (i need learn how to use table in markdown because in vscode the format is the worst)
[discord/discord-api-docs] New comment on pull request #4285: Add docs for guild timeout in auditlog
Seems like the mail didn't worked.
Alt + Z should help you in vsc
[discord/discord-api-docs] New comment on pull request #4296: Document stage discovery as deprecated
I feel like using the warning admonition would be better here instead of adding
(deprecated)to the table contents. It's a better visual flair imo to informing the developer about an upcoming deprecated field.
I thought about it again, it would not be a bad idea after all
i would just put "deprecated" in the description and nothing more.
| PUBLIC | 1 | The Stage instance is visible publicly. (deprecated) |
Might want to add a (deprecated) here aswell since public stages dont work anymore.
but there is still the activity iirc
Yes it still shows in the users presence, but thats a bug, the idea of a stage being "public" was you can join it without being a member, this behavior is gone so realistically its deprecated
[discord/discord-api-docs] New comment on pull request #4285: Add docs for guild timeout in auditlog
The
?is missing| communication_disabled_until | [member](#DOCS_RESOURCES_GUILD/guild-member-object) | ?ISO8601 timestamp | member timeout state changed |
i test and never get a null when remove the timeout, and based in hemu the nullable are specify in change
@devsnek This has also been changed, this behavior has disappeared, so realistic it's outdated.
Is there an update on this? I would really appreciate this feature. IP-Whitelisting would make the bot a lot less vulnerable.
Description
Public threads which are created on a message have the same id as the message. This leads to the issue of the not being able to calculate an accurate creation time for the thread and instead having to rely on other methods to obtain this, which aren't always viable or as accurate such as fetching audit logs or the first message in the thread.
Steps to Reproduce
- Create a new public thread on a message.
- Observe the id of the thread and the id of the message.
**E...
The thread ID matching the message ID is a deliberate decision and how we look up the thread belonging to a message. This won't change.
Could a valid creation timestamp be added to the thread payload?
On former channel types, we can easily destructure it from the snowflake but here this isn't possible for threads. Some way to get the point of creation and by extension age of the channel would be highly appreciated.
| 50086 | The community updates channel must be a text channel |
Just stumbled upon this; for anyone still struggling with it:
Sorry to say, team, but I agree — I really don't see why you shouldn't let bot devs make this choice for themselves. I can't say it's good UX for server mods, either.
Right now, I'm using this as a workaround:
const { Discord, Permissions } = require('discord.js');
if (!interaction.member.permissions.has(Permissions.FLAGS.MANAGE_MESSAGES)) {
await interaction.reply({content: 'Sorry, you don\'t have permissio...
this github issue is old and support for tying a command to Discord permissions is being added in command permission v2, which will go into private beta this month
also, discord.js is just one of many third-party libraries for the api
Sure, but SlashCommandBuilder (what I'm using) doesn't have anything the official API doesn't; the application command permissions structure is the same. 🤷♂️
This looks nice! Looking forward to the new default_permission changes. 👍
There should be a way of making slash commands being pasteable without happening this:
Typing:

Pasting:

This already works on mobile. I would also like to see it on Desktop.
There is also another thing, I will update my post when possible
On Mon, Jan 3, 2022, 8:38 AM David @.***> wrote:
This already works on mobile. I would also like to see it on Desktop.
—
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/discussions/3581#discussioncomment-1899519,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHY5WGT2JH23I4DIITVVBCDUUGDEZANCNFSM5BQB3H5A
.
Triage notifications on the go wi...
CHANNEL_UPDATE event contains permission overwrite for not existing entity.
Steps to Reproduce
None
Expected Behavior
The CHANNEL_UPDATE event contains only the configured permission overwrites instead of additional not visible overwrites
Current Behavior
The permission overwrites array in the JSON contains in my case one additional overwrite for something that doesn't seem to exist.
Screenshots/Videos
 is similar
5fd67f6 link member audit log keys to member obj - hemu
change member specific audit log change keys to point to
member obj where they are defined
I thought about it a lot and came to the conclusion: "How nice would it be if you could change a bot discriminator, just like normal users can with nitro subscription?"
It would be really cool, if we could be able to change the discriminator of our bots. Maybe make this feature available only for verified bots or make an application form, where you can apply for changing the bot discriminator to a specific one.
from a colleague who does not have a Github account btw
ec8025c link member audit log keys to member obj (#4304) - hemu
Maybe make this feature available only for verified bots
Verified bots already can't change their username (even when contacting support, unless there are urgent legal issues), I highly doubt they'd allow them to change their discriminator.
This feature will allow context menu commands to have alternative behavior. For example, send a response with a normal message instead of an ephemeral message.
This feature can be implemented by adding a new field "alternative" in data object which can take values true or false.
Example Interaction
{
"application_id": "775799577604522054",
"channel_id": "772908445358620702",
"data": {
"id": "866818195033292851",
"name": "context-menu-message-2",
...
Maybe make this feature available only for verified bots
Verified bots already can't change their username (even when contacting support, unless there are urgent legal issues), I highly doubt they'd allow them to change their discriminator.
I have a bot in a server that has a "bookmark" context menu command (for messages). This command sends a link to the message to the user's DMs, so they can add a note and refer to the message later via the link.
Fancy fancy works great. But if I try to use it in a channel where they don't have send messages permissions, the bot responds with a Missing Permissions Discord error, even if they have the use application commands set in that channel.
When I brought this up in the DDevs se...
Talked internally. Supporting a multiline argument type is, apparently, damn-near impossible with our current editor. We will not be able to support this, and will instead leave this as a requirement for when we build UI-based interactions to support text areas (which, frankly, is a better user experience).
Following up on this, has there been any update on Discord's potential to support new line arguments for slash commands?
Seeing as Slash Commands will become mandatory one way or a...
This is confusing:

It would be better if the non-command message was separated from the ephemeral message, like this:

Description
Creating an Interaction Response with a callback type of 7 (UPDATE_MESSAGE) results in the original message's attachments to become unremovable, contrary to the expected effect described by the docs here.
Steps to Reproduce
Respond to an slash command by creating a message with an image and a button. Respond to the component interaction by editing the parent message and passing an attachment...
In some situations, I want all threads in a channel to be limited to at max 1 hour of inactivity, such as a support channel with tickets. Some users think they need to set the threads to archive after 3 days of inactivity, which results in an accumulation of useless threads that moderators have to manually archive (which locks them).
It would be nice if you could set a maximum archive duration in the channel settings, similar to how you can already configure the default archive duration.
That would create issues in mobile clients (and third party clients, in case Discord starts officially supporting them).
It would also change the stress points of Discord from easily testable pre-defined access patterns to intractably many, hard-to-test, constantly varying access patterns.
Description
The autocomplete in ROLE option shows wrong description of role. It shows
Notify users with this role who have permission to view this channel
But ROLE option isn't meant to notify users, so it should be changed.
Steps to Reproduce
Expected Behavior
It should show a different description based on the use case
Current Behavior
Screenshots/Videos

When I copy and paste after using it does this:

For reference "duration" is the autocomplete command.
It's been another two months and here I was hoping this to be fixed. Please @discord, I at least want to know if I'm doing something wrong. I'm being asked to verify my bot, but I don't want to do that as long as it still requires Admin-permissions to run correctly. I want to continue developing my bot (Argus) but I'm just very demotivated since nobody wants to invite a bot that requires admin-permissions to work.
However, this happenes to me, I am using node ws module, and sometimes, the socket randomly closes with 1000 exit status.
Description
Working on creating a new Discord API client and I kept getting 403 errors when attempting to make a websocket connection to gateway.discord.gg. Compared with a known working client and I was able to discern a difference based on whether the "origin" header was capitalized or not (as per https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 this shouldn't matter). This is may be an issue with Cloudflare but I'm not sure how to report that upstream since it isn...
Description
When receiving a message with only Message Components as an Interaction Response, the client will remain in the "Sending command..." state.
Steps to Reproduce
Create a command that responds with only Components and use it.
Expected Behavior
Since this is an invalid response, the client should time out after 3 seconds or upon receipt of the bad response with an "Interaction Failed" error.
Current Behavior
The message is stuck...
There are lots of bots having cooldowns on commands that are likely annoying users when they invoked a command without knowing what the cooldown actually is. So I thought about an implementation (when slash permissions arrive) to have an implemented cooldown option for running a specific command. This could also be done with other interactions: When a bot received an Interaction like from a button / context-menu or whatever, it could be able to create a response with a new cooldown the user/r...
This needs to be fixed actually, for small bots it may not be a problem, but for bots which are in a large number of servers, there would definitely be issues because you can't expect each server to have send external emoji perms enabled for @everyone role.
But he isn't using Android!
I don't want to create a new issue to report it. That's why I commented here.
you should make a new issue, it's not related to this issue
There is already a user-only endpoint /guilds/{guild.id}/roles/{role.id}/member-ids that the client uses. Is there any reason why this is not exposed to bots?
I asked Mason around the time the endpoints got added:

I asked again in the last stage event and unfortunately the status hasn't changed: https://gist.github.com/Stalruth/fb384bf118be83a00d9f5ae7ab89a87b
This pull request clarifies the icon? property on the channel object only being for group DMs as this confused a few people in the past
you should make a new issue, it's not related to this issue
You said
This issue is present on Desktop and iOS (idk about Android)
That's why I tested in android and I thought I should add here but anyways I'm creating a new issue and hiding it from here.
| icon? | ?string | icon hash (for group DMs) |
I would say it's better to write "icon hash of the group DM"
That's how it is done in the other columns.
I was thinking something like a "Type Something..." type of component, something like in the image called Type-Down or anything like that (That image used a dropdown)
Where you can type something in it and you can even use it in a class!
!
Forms are the go-to for text inputs, they don't want a component that moves up when chat is active
but also what if the chat is locked and I want to link it to like MongoDB for a suggestion type of thing.
same thing, use forms (when they release)
We're rolling out form modals to support this use case. Some more information here. We prefer this approach because an input box that can move up in chat as the user is trying to type in it is not good!
We're rolling out form modals to support this use case. Some more information here. We prefer this approach because an input box that can move up in chat as the user is trying to type in it is not good!
might be good to also document the prefixes in the received values, and how to handle them? (mp:, spotify:, youtube:, twitch:)
I'm not opposed to this, should I create a table below this one or add to the image formatting table on the reference page?
should I create a table below this one or add to the image formatting table on the reference page?
I would prefer the reference page.
What you said seemed more like what I meant than what most people thought, That answers my question, thanks.
imo it should go here as they aren't CDN endpoints and they're only in the activity object
yeah i had the same thought too
Yeah but somehow on mobile it copies the complete embed, if bots are displaying that in the embed. Maybe it would be possible to have a markdown for texts that can be copied?
This is actually a cool idea. Maybe it would be possible to make a thing that enters the command automatically? Like when you click on the command tag, it shows the command in the slash commands window?
Description
I would like to create a custom autocomplete for roles, for commands where certain roles should be excluded. However, when the option type is 5, 6, 7, 8, or 9, I get an error message at registry time:
400 Bad Request (error code: 50035): Invalid Form Body
In 13.options.0.autocomplete: Required cannot be configured for this type of option
The 'Required' field was, indeed, defined, but is actually accepted just fine for these option types; setting autocom...
autocomplete is only valid for option types that accept choices. we may add choice support to more option types in the future but for the moment this is working as intended. the error message is incorrect though, i'll try to fix that up in the near future.
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
Please fill in the issue template next time :)
To help prevent empty issues like #4320, this pull request migrates the issue templates to use GitHub's new yml syntax.
Rather than a large markdown editor, each section is now a smaller markdown editor, and questions can be set to require a response as needed.
Because these are a bit of a pain to test, I've cloned them to my dummy repo I use for testing GitHub Actions - if you'd like to see what the UX is like, feel free to [create a random issue](https://github.com/nhcarrigan/action...
The one downside to the forms approach is they require a title attribute (non-empty) - this is pre-filled in to the issue's title. Certainly open to better suggestions if y'all have specific verbiage you'd like there.
These don't work for pull requests yet do they?
These don't work for pull requests yet do they?
Not yet.
You can leave the title fields. Like only name and description
The PUT endpoint does not seem to be idempotent in my simple test case with one command:
[ {
"default_permission" : true,
"name" : "test",
"options" : [ ],
"description" : "test",
"type" : 1
} ]
This returns the id - version (timestamp) of 930067428807950386 - 930071205317324851 (2022-01-10T12:10:55.235Z)
I then send the same request only moments later:
[ {
"default_permission" : true,
"name" : "test",
"options" : [ ],
"descri...
Hi? Can someone help me? I don't understand what's going on...
Request
Headers
Request URL: https://discord.com/api/webhooks/930061284488138802/CxRmOq3uoCbBWcM8dYXcMQeSijQkd3AYLW5JPLsuq-jx5GIqtGXpgB4uAy1zr4JizfGe
Request method: POST
Accept: */*
content-type: application/json
User-Agent: GitHub-Hookshot/0b09aa9
X-GitHub-Delivery: 1e856fa0-720f-11ec-8a30-083a09e57c56
X-GitHub-Event: ping
X-GitHub-Hook-ID: 337502330
X-GitHub-Hook-Installation-Target-ID: 95238437
X-GitHub...
They must have updated that - way back when I first started using these, the title was required. 😅
Thanks for the response. But it would be rather sad if that behavior is here to stay, because it affects users on discord. Users with compact mode are affected the most, because this is the only avatar they can see.
This has nothing to do with the API. Please see this:
https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks
I think bot's needs a banner customization because most of the developers don't want accent color (includes me)
This has nothing to do with the API. Please see this: https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks
I was careless... Thank you so much
Any updates on this? Works on mobile devices btw
Pasting a slash command seems not to work at all for special syntax, like <@mention>
evaera described the issue perfectly. We're seeing the same problem. Can't paste /command commands
The images seem to render as intended already: https://discord.com/developers/docs/rich-presence/best-practices
Fix is on canary and stable soon
you didn't edit the readme file (the readme doesn't have any images), you edited a markdown file that exists to power the docs website
the docs are not supposed to be read on GitHub, links and images are intentionally broken on GitHub because the website parser uses special formats. your change will break display on the website, so it'll be closed.
Oh. I will close this pull request, thanks for telling me.
Failing to ACK/reply within 3 seconds
This has been done for Desktop/iOS and should be available on canary shortly
it's also been done for the 15 min followup timeout
"Input a valid integer within (range)"
This is done on Desktop/iOS and is on stable
42c605e chore: migrate to issue forms (#4321) - nhcarrigan
Just my luck to miss one 😩 - sorry @IanMitchell!
6de7670 fix(tools): template name (#4329) - nhcarrigan
Shouldn't the description needs to be updated too?
123a716 Update developer-site-bug-report.yml - IanMitchell
🤦🏻 I promise I know what I'm doing 🤣
BEFORE_MESSAGE_SHOW
This event emits when a message is sent but is still not visible for the client (aka user)
So the bot can check if contains bad words/mentions someone or other things, and cancel the message
BEFORE_GUILD_MEMBER_REMOVE
This event emits before GUILD_MEMBER_REMOVE, so the bot still has mutal servers and can send leave message to the user
Description
When I remove all permissions for a bot account, including all roles assigned to the bot, the slash commands for the bot are still available in the channel. The bot is able to handle the slash command normally, including sending messages as a response. When the bot user and all roles do no have permission to view the channel, let alone send messages, it should not be possible to interact with the bot's slash commands in that channel.
Steps to Reproduce
Create a new chan...
The fix for this should be in canary shortly
this behavior is intentional; interactions are separate from bots, they don't require a bot to exist or be in the server, and they aren't affected by the bot's permissions. servers will be able to manage which application commands can be used per channel once permissions v2 releases.
Yes, please add this. For my use case, I need to be able to mention multiple roles that I can ping to notify them of a new giveaway.
/giveaway create prize:candy winners:5 days:2 role1:@role1 role2:@role2 role3:@role3
vs.
/giveaway create prize:candy winners:5 days:2 roles:@role1,@role2,@role3,@role4,@role5
30cc2ea Add locale fields to interaction structure (#4265) - infinitestory
Apologies, spent several hours digging around but somehow missed that. Everything about the permissions v2 draft sounds amazing. Is there any sort of estimated timeline on it? Sorry if I’ve missed another obvious thing, can’t seem to find any details on timeline. Any issues I can follow for updates?
private testing is planned to start this month, future updates will probably be announced at DDevs events
Fantastic, thank you for the quick answers, truly appreciated!
Even if this was remotely feasible to implement on a backend, and had more tangible use-cases, I'm not sure it's a great idea.
BEFORE_MESSAGE_SHOW
So probably the most obvious issue with this is the fact that it could and likely would induce some amount of latency for most users, given that the same message event has to be reserialized twice per every message. As well as having to double the payloads sent, you're now receiving double the payloads per message, which can absolutely de...
Also for security reasons i never recommend a user to click any link there they expose their IP and other possible personal information, the easiest way would be to include in the Discord APP itself a way to grant those rights to a bot or user inside the app, so no external connection to another host is needed, that would be the real security option, the user is logged into the client and should be able to grant permissions from inside the client without an external link for increased securit...
Having the guild and user locale sent with interactions is a big step forward for improving bots i18n, but guild_locale (and preferred_locale in the guild object) cannot be used directly by bots as is. According to the preferred_locale documentation:
the preferred locale of a Community guild; used in server discovery and notices from Discord; defaults to "en-US"
There are two major problems for bots to rely on that field for internationalizing guild-wide messages: servers owners...
Even if this was remotely feasible to implement on a backend, and had more tangible use-cases, I'm not sure it's a great idea.
BEFORE_MESSAGE_SHOW
So probably the most obvious issue with this is the fact that it could and likely would induce some amount of latency for most users, given that the same message event has to be reserialized twice per every message. As well as having to double the payloads sent, you're now receiving double the payloads per message, which can absolutely de...
Thank you so much! Great to see these changes coming in
[discord/discord-api-docs] Pull request opened: #4333 Document thread invitable audit log change key
looks like this was overlooked when documenting threads (credit to Katrix for noticing it wasn't there)
also fixed the table formatting (twice)
Also would be good to know what the type property is, its being returned when fetching the guilds invites
type is for the type of invite (guild, group dm, or friend)
This should link to the invite types section below instead of saying integer
Typo fix + why this type field is in both Invite and Invite Metadata Object?
| type | integer | the type of channel this invite belongs to |
Hey @qtdceu, I noticed that your json doesn't actually set "autocomplete":true for any of the options. Did you mean you're just setting choices?
Also, if possible could you also provide a short clip of you actually typing and running the command? Thanks!
Can you set this type field when creating an invite?
Can you set this
typefield when creating an invite?
Its tied to channel id your using when creating the invite link, being able to set it when creating would not make sense.
c39627c Move locale list from dispatch to reference and... - advaith1
Thanks for this change. cc @infinitestory
4d2320f Document supported option types for autocomplet... - advaith1
Description
This PR adds a pull request template. This should probably solve the issue of contextless PRs and encourage people to actually describe their PR with more in-depth details (and not just erase or ignore it).
Checklist
- [ ] This PR fixes inaccurate/outdated information from the documentation.
- [ ] This PR adds clarification to complicated/unclear explanations.
- [ ] This PR adds more helpful context to incomplete documentation.
- [ ] This PR fixes spelling and ...
Since webhooks can't use replies though it would be nice if this were possible, we use an embed to copy replies from users' messages. Unfortunately, this means that link embeds do not get added to the message. Is it possible to add a way to force resolving of link embeds even in that case?
Is there an update on this? It seems to be no updates on the Discord server about this either. This is very important for our games because if you compile the game for Apple Silicon, which increases performance, the libraries need to be compiled for ARM as well. Every other plugin that we use has already been updated for ARM, except the Discord SDK.
Please do not make these a checklist, checklists show up very poorly if you're not using them as checklists.
I think this section should be called status, the suggestions should be moved into a comment so that people can move out relevant ones and not display irrelevant ones
Furthermore, the changes reflecting the current default version of the API is probably not a good suggestion. The default version is still v6 (deprecated) which is not what the documentation currently reflects.
1283c44 Document thread invitable audit log change key ... - advaith1
the changes reflecting the current default version of the API
it should probably say "the latest version" instead
Please do not make these a checklist, checklists show up very poorly if you're not using them as checklists.
Checklists were the most common in pull request templates based on a couple of search engine results, so I didn't decide that. But it's something I can look into if it's needs more editing.
Checklists are not suited to things that aren't meant to be completed, not every one of these applies to every PR (in fact only 2 will usually apply)
For example, none of them should be checked in this PR
Yeah, I'm in agreement with ckohen here - checklists are great for things like "I've read the contributing guide" and "My pull request has a clear and specific title", but not for options like you've added here.
These would be acceptable radio buttons, but GH doesn't support that (yet.) so I'd argue to remove these.
Hello @khp , here is the link of typing and running the command: https://vimeo.com/665732156
Also, what do you mean by setting choices? Like a command parameter (i.e. the user and reason in this case)?
Thanks for that overview. Does it still receive updates?
And when will the moderation changes be visible? I'm getting really tired of seeing slash commands of bots in channels they don't and should not have access to.
Also I find it weird that information about the moderation changes can only be accessed on some 3rd-party site without any branding and/or timestamp visible. Is there an offici...
Description
When having, for example, a NUMBER option that has autocomplete enabled, typing other data than numbers, such as strings, still gets sent to the bot.
Additionally, empty string for these option types are also sent (when the user has not typed anything)
Steps to Reproduce
Have a slash command with a NUMBER option with autocomplete enabled, start typing e for example, your bot will receive the e
Or also just select the NUMBER option, your bot will receive ...
This list looks up to date to me (you can see edit times in the github UI btw)
Last we heard the new permissions system is closing in on final testing.
One thing that seems to be missed by a lot of moderators is the fact that bots do not have slash commands, applications do. The concept of "access" to a channel does not exist on an application, that is relegated to the land of bots. It seems there needs to be a lot more education on this point because it is increasingly frustrating ...
This is intentional. Autocomplete sends you the user input (which is a string), so you can return something for them to select. Once they run the command, you will get a fully validated input.
This is intentional. Autocomplete sends you the user input (which is a string), so you can return something for them to select. Once they run the command, you will get a fully validated input.
Wouldn't it be helpful to have this behaviour documented since this behaviour doesn't seem to quite align up with the current documented behaviour that `An autocomplete interaction can return partial data for option values. Your application will receive partial data for any existing user input, as ...
Perhaps the wording needs clarification but what that means is that unfocused options will only be sent in autocomplete if their input is valid. The focused option will send whatever is currently in the input as a string.
Nvm, I thought by autocomplete you were talking about something else :) I think we're on the same page!
Unfortunately I'm unable to reproduce the issue easily - do you mind trying the same command with default_permission=true or unset and see if that makes a difference? Trying to narrow down where the issue is :)
All channel inputs in slash commands are validated by the API itself, you don't need to worry about the user sending in an invalid channel.
They can't be filtered though. API will check the channel exists, but not if the user can manage it (if user has specific permission in a given channel), or even if the channel is disabled in bot settings itself (in my bot, you can set permission to use command per channel per role, and that can't be done in API nor I saw any plans ...
could you explain this issue more? I am getting {"error": "invalid_request", "error_description": "Invalid \"redirect_uri\" in request."} with this code:
def exchange_code(self, code):
data = {
'client_id': self.pub_conf['discord_client_id'],
'client_secret': self.priv_conf['discord_client_secret'],
'grant_type': 'authorization_code',
'code': code,
'redirect_uri': self.redirect_uri
}
headers = {
...
could you explain this issue more? I am getting
{"error": "invalid_request", "error_description": "Invalid \"redirect_uri\" in request."}with this code:def exchange_code(self, code): data = { 'client_id': self.pub_conf['discord_client_id'], 'client_secret': self.priv_conf['discord_client_secret'], 'grant_type': 'authorization_code', 'code': code, 'redirect_uri': self.redirect_ur...
Currently, it literally just returns:
{
"embeds: ["0"]
}
Yes discord, very descriptive, I now know exactly what the issue is.
yes, however in the above example, I changed 'redirect_uri' to "https://nicememe.website" and i added the redirect:

However, I still recieve error 400.
The endpoint (intentionally) returns an error when command permissions v2 is enabled
not sure exactly what the release plan for perms v2 is - if it isn't gonna be togglable per-server while in a wider release stage then the text should probably be edited
ok
i found solution
after ages
basically redirect_uri has to be the same as you pass in auth.
like same for oauth2/authorize as /oauth2/token
Live Chat Website
Can we live chat from a custom-made website?
Does discord give permission?
Discord doesn't have a built in text chat embed but there are services that provide one using bots and webhooks (such as WidgetBot and Titan) and those are allowed
Discord doesn't have a built in text chat embed but there are services that provide one using bots and webhooks (such as WidgetBot and Titan) and those are allowed
BEFORE_MESSAGE_SHOW
This event emits when a message is sent but is still not visible for the client (aka user)
So the bot can check if contains bad words/mentions someone or other things, and cancel the message
BEFORE_GUILD_MEMBER_REMOVE
This event emits before GUILD_MEMBER_REMOVE, so the bot still has mutal servers and can send leave message to the user
Even if this was remotely feasible to implement on a backend, and had more tangible use-cases, I'm not sure it's a great idea.
BEFORE_MESSAGE_SHOW
So probably the most obvious issue with this is the fact that it could and likely would induce some amount of latency for most users, given that the same message event has to be reserialized twice per every message. As well as having to double the payloads sent, you're now receiving double the payloads per message, which can absolutely de...
Description
First observed slightly before Christmas, it seems that when banning a user with delete_message_days set to >0, messages sent by the target user within that time frame are not all reliably deleted.
This has been particularly annoying with the common Nitro scams, where from my experiences bans will now only remove (subjectively) 60-80% of scam messages, and the rest has to be manually searched for and deleted by hand.
This is inconsistent to reproduce. In my attempts t...
[discord/discord-api-docs] Pull request opened: #4343 Add Nextcord to community resources' libraries
Nextcord is a Python wrapper for the API, based on discord.py. As you all know, discord.py was archived, so features stopped being implemented there, so the things that distinct Nextcord from dpy are essentially the API changes since that point:
- Added slash command support
- Added user/message command support
- Support for timeouts and scheduled events
Ratelimiting
As this is based on discord.py the ratelimiting is still implemented well and correctly to avoid 429s where possib...
Not true, no permission is needed to fetch the welcome screen
This is partially true: After testing, Manage Server is needed to fetch the welcome screen only if it's disabled.
When enabled, no permission is needed.
not really. this (it's not really disabled, there are just no channels) requires the permission:

this also requires the permission:

This is partially true: After testing, Manage Server is needed to fetch the welcome screen only if it's disabled. When enabled, no permission is needed.
this is correct. I was testing modifying the welcome screen earlier and I forgot to switch the method from PATCH to GET.
Description
When updating a channel's position through the modify channel endpoint should create an audit log. When renaming the channel, an audit log is created. When changing the channel position, it is not.
I've noticed that there is a separate endpoint which has been created specifically for this purpose: [the modify guild channel position endpoint](https://discord.com/developers/docs/resources/guild#modify-gu...
The same behavior can be found when modifying the role positions through the modify guild role endpoint instead of the modify guild role positions endpoint
Unsure if there's been a patch or not, however as of today I can fetch the audit log reason through the DSharpPlus library. The Discord client however does not show the audit log reason for the channel's deletion
| id | snowflake | the [`ID`](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-object-application-command-structure) of the invoked command | Application Command ...
I'm not sure about title, could you send me the complete payload?
I remember it being in data, but I'm completely brain dead this weekend.
It's used by MODAL interaction to set the modal title.
i don't think that you get it back 🤔
also, I think title field is missing here.
By "here" I meant in Interaction Data Structure table.
i don't think that you get it back 🤔
No, you don't, but as I said, it's used to set the modal's title.
Marking as resolved, was a missunderstanding
I’m also experiencing this issue and actually, it annoys me for the same reason. Nitro scams.
Discord already supports suppressing embeds by setting the SUPPRESS_EMBEDS flag on the message. However setting flags is just possible on a MESSAGE_EDIT, not on MESSAGE_CREATE.
Due to that, the only way of suppressing embeds on MESSAGE_CREATE is currently to put all links into angle brackets (``).
Allowing this (and any other possible) fl...
Additionally, some links cannot be put in between of <> since it would break Discord's URL parsing and take the right chevron as inside the URL
Feature request on the Discord Feedback site: Extended Audit Logs (Log Channel Moving, Who added what Bot, Who moved who, ect)
If you don't mind me asking, why are you linking a feature request on a bug report?
I have not tested if this affects bots.
Can confirm that it does; for the same use case. Our bot detects scams and bans the offenders with the option to clear 1 day worth of messages. We have observed that this lately fails to do just that. Messages in question often aren't even old, on the brink of 1 day, or in very busy channels, but very recently sent and even in channels without any activity
I'm pretty sure it's intentional that position changes don't create an Audit Log entry, they never have (afaik), hence the feature request.
I ran into a problem, I want to edit the message flags of an interaction message. This would simply my bot's code and makes a better user experience. Here's the current solution:
User uses slash command

bot response with a normal message

user clicks button and bot edi...
Relying solely on Autocomplete might be a possible solution if that's what you are suggesting.
Ephemeral messages are not ordinary messages, they are not stored on the Discord server. Only in the cache of the client who received the message. By removing the flag of such a message, it will not become ordinary.
In your case, it would look good to respond to the slash command with an ephemeral message with text, and respond to button with an ordinary message with a picture. Also, by clicking on the button, you can delete an ephemeral message with text.
Thank you for your detailed reply, this clears up some confusion for me ❤
you can see edit times in the github UI btw
Yeah and that tells me the last update was almost 3 months ago. That's why I was asking ^^
(and if you don't want any slash commands in a channel, you can turn off perms to use them in that channel as a stop-gap, I know that's slightly frustrating for mod commands)
I know that, but it doesn't work for me, if I'm an admin. And I'm an admin on quite a few servers (un...
The difference between bots and applications from a bot dev's POV.
An application is the thing you create in the Developer Portal.
A bot is an application with a bot account that joins servers and can perform actions using the account.
This can include posting messages, managing users, etc.
What are "interactions"?
Interactions are a new way for users to interact with Applications. They do not require a bot account attached to the Application to work (though a bot acco...
Let's assume the Discord bot gateway ceased working at 9:30 a.m.; perhaps Discord is having trouble connecting to the gateway. Bots would be unable to receive commands from the gateway, so I believe a fallback interaction endpoint would be a good method to prevent this. If your bot isn't connected to the gateway, you might make interactions a backup option through the Discord Developer Portal. This could increase my bot's uptime, and my users will be unaware that there is an outage because my...
There is a lot of things that aren't audited that I feel should be.
Removing all reactions from a message, changing channel positions, changine roel hierarchy, etc.
While I understand y'all want more things audited, this issue is specifically about documentation saying the modify channel endpoint supports the X-Audit-Log-Reason, despite the position property not being audited. Again, I'm aware that the modify channel position endpoint exists, which claims to support the X-Audit-Log-Reason header, however I'm requesting for a change in docs or a change in behavior.
Please take your unrelated audit log complaints or feature requests to a different G...
Thanks for the reply, this makes my picture of that whole change a little more complete.
However as I wrote above, I'm using a library (discord.py/pycord) for bot development. One of the reasons for that is not having to look at the Discord API docs (the other reason being that I inherited that bot). Frankly put, those docs are too low level for me rn, e.g. I don't work with flags at all, those get abstracted into individual properties. To me the whole docs is pretty confusing, mentioning ...
Not sure what your solution is. But since ephemeral messages aren't stored on the server, let's just hide or gray out the buttons depending on users, should this be a separate feature request maybe?
The command ID is already necessary for all the maintenance that needs to be done on commands such as permission updates, deletion, etc. Don't let your code guess what command was used based on the name, just setup a lookup table by the command IDs to execute the precisely correct command body for a given interaction.
When you upload your commands wait for Discord's response to get their command IDs. At this step your code knows whether or not they are global or guild commands because the ...
Can confirm had this happen on a guils.
If Discord goes down to the point where you can't connect, then users wouldn't be able to connect either, no?
There simply wouldn't be any commands to serve.
OK, I was able to come up with my own solution. Before sending out the did you mean message, send a message response with a message like "Waiting on user". Then send the did you mean message as a follow up.

You'll want to store the interaction token from the slash command, as we'll be using it later.
After the user presses the button, we edit the did you mean message to something...
[discord-api-docs] Discussion #4348 marked answered: Please allow updating interaction message flags
OK, I was able to come up with my own solution. Before sending out the did you mean message, send a message response with a message like "Waiting on user". Then send the did you mean message as a follow up.

You'll want to store the interaction token from the slash command, as we'll be using it later.
After the user presses the button, we edit the did you mean message to something...
Please take your unrelated audit log complaints or feature requests to a different GH issue or to the forums. This issue is specifically about the modify channel endpoint.
Trying to suppress others' opinion while claiming them so-called "unrelated" when they are clearly not, yet you mentioned some other cases as well? Doubleplusgood comrade.
As far as I know there were several issues already where feature requests (on support.discord.com), some other cases wh...
By the way, I tried using a deferred message, and got this.

Follow-up message isn't ephemeral, not sure if this is a bug or by design.
Here's what happens when you use a deferred update message
Error 400
{"code": 50035, "errors": {"type": {"_errors": [{"code": "BASE_TYPE_CHOICES", "message": "Value must be one of {9, 4, 5}."}]}}, "message": "Invalid Form Body"}
Which i...
There have been outages in which bots couldn't connect but users could.
Trying to suppress others' opinion while claiming them so-called "unrelated" when they are clearly not
Suppressing would be telling others to shut up and that their opinions don't matter, which I clearly did not do. Instead I forwarded them to post their opinions in a more appropriate place, which certainly isn't this specific Github issue. This Github issue is about the audit log, the channel modify endpoint and the channel modify position endpoint, not about audit logging the removal o...
Thank you for the report. We'll take a look at it and deem whether it's intended behavior (and therefore feature-request-able) or something we should fix.
Locking the issue conversation.
Hi,
Thank you for the thorough report - seriously. We have gotten to the bottom of this one and should have a fix out soon.
The name in the popout will now show on Desktop Canary. iOS is coming, Android will be delayed a bit
The name in the popout will now show on Desktop Canary. iOS is coming, Android will be delayed a bit
A new error message for outdated commands sent by clients will be released shortly
It would make sense for applications to be able to mention their own commands, allowing a way to instruct a user to another command.
For example, my bot implements Fortnite oAuth, which requires users to do /login. If they try to do an oAuth command without logging in, they will get this error: https://imgur.com/a/Xggydm6
I propose a way to link to an application command. This would allow the user to click on the "hyperlink type object" to start invoking the command, and hover over i...
Application command options are documented here: https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure
One of the fields for options is choices, which limits the permitted values shown to the user for the given option. Currently, this field can only be configured for STRING, INTEGER, and NUMBER option types. I suggest that choices be implemented for the USER, CHANNEL, ROLE, and MENTIONABLE opt...
can we get this error message in message components also?
Server Permission: View slash commands
This is necessary and simple.

How it works:
It is a permission toggle when applied to a bot allows or prevents it from displaying in the slash command menu and being having its commands used.
Simple because:
It uses a permission system consistent with existing ones which everyone will be familiar with already....
this would be really nice. Here is a concept I made for it of how I think it would be

[discord/discord-api-docs] New comment on pull request #4296: Document stage discovery as deprecated
Uhm, can anyone review the edits please whether these are ok? 😅
This would be a great use case!
TL;DR: Add a field on /bot/gateway that contains the global REST ratelimit
I was recently made aware that bots can have varying REST limits outside of big bot sharding.
Previously, the consensus was this: you either have 50/s or you are on big bot sharding. For big bot sharding, you have a 500/s floor and your REST limit is based on this formula: 25 * max_concurrency. In this manner, libs could calculate the REST limit accurately. Apparently this is not the case anymore (or hasn't bee...
[discord/discord-api-docs] New comment on pull request #4296: Document stage discovery as deprecated
Discord will review it when they have time for it.
Just wait
An update to the situation as not everyone seems to be aware of this. Discord is currently building a slash commands permission UI (and API for that matter) which looks something like this:

This is not exactly what this issue was proposing but it does serve the same purpose. The screenshot above is still a beta or even alpha version of the UI so things might change but so far th...
wow. that seems over the top. but welcome never the less.
That isn't related to the gateway so it wouldn't fit in the /gateway/bot endpoint
I noticed this property appears under MESSAGE_CREATE event

in php:
["interaction"]=>
object(stdClass)#1946 (5) {
["user"]=>
object(stdClass)#1945 (5) {
["username"]=>
string(8) "Robo_N1X"
["public_flags"]=>
int(0)
["id"]=>
string(18) "275546238290493440...
| icon? | ?string | icon hash of the group DM |
8b2b155 Document stage discovery as deprecated (#4296) - InvalidLenni
13e45f4 Clarification on channel icons (#4315) - Suspense4615
e0e6e0d Removes the endpoints authorization note for re... - GoldenAngel2
00a0ae2 document the required permission for retrieving... - caneleex
c7501f1 Document X-Audit-Log-Reason on webhook endpoint... - nerdguyahmad
We'd recommend for now that large bots only update their status in session start.
f0bb955 Document behavior of CONNECT permission (#4291) - MinnDevelopment
5868a2b Document filename restrictions for attachment U... - MinnDevelopment
This is a client issue, not an API one; I know dtesters is closed right now, but I'd recommend filing it there once it opens again 👍
[discord/discord-api-docs] New review comment on pull request #4297: Adds get guild widget structure
I think this warning should be below the model definition instead of below the example
Due to race conditions which exist in our infrastructure it is possible that a role or member could be added to an overwrite during a role deletion or member removal. Our recommendation would be to ignore unresolved references you encounter.
As the errors mentioned in this discussion have all been improved, I'm going to be closing it. I want to say thank you to all the discord devs involved in improving the error messages, we all really appreciate it!
As the errors mentioned in this discussion have all been improved, I'm going to be closing it. I want to say thank you to all the discord devs involved in improving the error messages, we all really appreciate it!
[discord/discord-api-docs] New review comment on pull request #4297: Adds get guild widget structure
Returns a [guild widget setting](#DOCS_RESOURCES_GUILD/guild-widget-settings-object) object. Requires the `MANAGE_GUILD` permission.
[discord/discord-api-docs] New review comment on pull request #4297: Adds get guild widget structure
Modify a [guild widget settings](#DOCS_RESOURCES_GUILD/guild-widget-settings-object) object for the guild. All attributes may be passed in with JSON and modified. Requires the `MANAGE_GUILD` permission. Returns the updated [guild widget](#DOCS_RESOURCES_GUILD/guild-widget-settings-object) object.
[discord/discord-api-docs] New review comment on pull request #4297: Adds get guild widget structure
Would be nice to link widget to the Get Guild Widget Object section above.
Just to clarify: "Across all clients" may be misleading as iOS support will probably not be rolled out for 1-2 weeks, and Android may lag behind for some of these by quite a while
Ah, I'll fix the wording on that, thanks
0a91423 Document the ability to parse dynamic images fo... - LostLuma
[discord/discord-api-docs] New review comment on pull request #4297: Adds get guild widget structure
Returns a [guild widget settings](#DOCS_RESOURCES_GUILD/guild-widget-settings-object) object. Requires the `MANAGE_GUILD` permission.
Close this up :p @khp
The instant invite in this example does seem to be valid (and taken by some server), not sure if that should be changed or not?
That isn't related to the gateway so it wouldn't fit in the /gateway/bot endpoint
True, however /gateway/bot would be the path of least resistance. There is the added benefit that it's a route that is probably already being queried anyway. That being said, I wouldn't mind if Discord chooses to introduce another route.
If you have support built for it, why aren't your interactions REST already? Discord built this system with the gateway pain points in mind. Furthermore, the cases where Discord goes down only for bots and not for users aswell are so rare that it just doesn't make sense to have a backup in place.
If you want commands to be more reliable, just use REST as the default. It's a dedicated service for bots and will probably prove itself as the more reliable option (to us, it already has).
Are you sure these are all the fields? While testing this, I got a few more fields.
{
"interaction":{
"id":"933457462147813387",
"type":2,
"name":"test",
"user":{
"username":"Victorsitou",
"public_flags":64,
"id":"184040656761651200",
"discriminator":"7165",
"avatar":"a_84302c11d747e16cac1c646bb8efcf32"
},
"member":{
"roles":[
"927583695240593470"
],
...
This is now possible (or will be possible after the next api deploy)
536bb4f document message create flags - devsnek
Which message flags are actually supported here
it should be the surpress embeds flag
and in case of interactions the emepheral
95816a5 document message create flags (#4356) - devsnek
And wouldn't this be useful information to actually document
53ee010 Document thread.create_timestamp - ajpalkovic
cant wait for this to explode
Is this bitfield limited to any particular flags? For example in the docs for MESSAGE_EDIT it explicitly says that only SUPPRESS_EMBEDS can currently be set as a flag.
If there are restrictions, can they also be documented please?
Was initially added with https://github.com/discord/discord-api-docs/commit/95816a58aec3b04798e77079dee2b271d243ecdd with an additional answer on https://github.com/discord/discord-api-docs/discussions/3236#discussioncomment-2001169.
Thanks!
Was initially added with https://github.com/discord/discord-api-docs/commit/95816a58aec3b04798e77079dee2b271d243ecdd with an additional answer on https://github.com/discord/discord-api-docs/discussions/3236#discussioncomment-2001169.
Thanks!
Setting flags doesn't seem to work in webhook endpoint
Channel banners were removed and guilds no longer have the feature.
Setting flags when creating messages is now possible (or will be possible after the next api deploy)
See #3146 (comment) and #3146
discord-buttons was an "extension" which was for bots using discord.js v12 and it didn't have any independent function; pycord is a standalone discord.py fork like nextcord, which got merged (#4343)
didn't have any independent function
it was designed to add interaction (button) support before d.js had them. when they requested to get merged here d.js already had a beta for buttons so it wasn't worthwhile. not disagreeing with the latter part of your response but you are still wrong on the first part.
To enable autocomplete for a command option, you must configure it with `autocomplete: true`. The only option types which currently support `autocomplete` are `STRING`, `INTEGER`, and `NUMBER`. Autocomplete options cannot configure `choices`, since they are provided by the interaction response instead.
Unfortunately, the only errors we are seeing on this endpoint are caused by malformed responses.
Looks like this was documented by #1572
Description
If you try to register an autocomplete boolean slash command option, the given error message is wrong:
{"code": 50035, "errors": {"0": {"options": {"3": {"options": {"0": {"autocomplete": {"_errors": [{"code": "APPLICATION_COMMAND_REQUIRED_INVALID", "message": "Required cannot be configured for this type of option"}]}}}}}}}, "message": "Invalid Form Body"}
Steps to Reproduce
try to register a boolean slash command option with autocomplete enabled
Exp...
whoops, didn't find it from search, sorry
The error message has been fixed
Description
After entering the Discord OAuth2 flow (https://discord.com/api/oauth2/authorize) and signing in with either email/password or QR code, it does not go to the callback and instead just sits there.
The login request (POST https://discord.com/api/v9/auth/login) succeeds and returns a token and [AuthenticationStore] setAuthToken called. {tokenManagerHasToken: true, storageHasToken: true} is logged. If you close the window and reopen it, it will immediately go to the callback...
It would be cool to have a feature that a dialogue, similar to the one that pops up if you delete a server, pops up if a bot gets removed from a server. In this dialogue the member who removed the bot can select an option why they removed the bot.
This would be really helpful to improve bots
Slightly related: #3988
@night Could you open this again? I have exactly this problem with images from discord itself. And it does not happen on specific images. I tried it on the exact same image hosted on cdn.discordapp.com and mosly it shows up, sometimes not.
I feel like when you are not beeing able to fetch an image from your own server, that is something you should be able to fix.
Description
when ever i like talk to people it doesn't let me here them and its the same with music so i have to change my import to here them and i can't talk
Steps to Reproduce
please fix this problem i keep on using my alt accounts so i can here and talk at the same time and listening to music please help
Expected Behavior
not good
Current Behavior
anger and frustration
Screenshots/Videos
i dont have any videos or screenshots sorry :(
Client and...
Hi there! This issue tracker is for issues with the API itself.
However, your issue seems to be about your Discord client. I would recommend submitting a support request at https://dis.gd/contact, and seeing if Discord's support staff can help you.
It's been a while since this PR was first opened and the ecosystem has become much more stable. We also saw #4343 and our confidence increased.
I also want to thank Danny for his review in discord-api server. It helped us to improve our organization a lot.
I also want to thank Danny for his review in discord-api server. It helped us to improve our organization a lot.
I didn't mention anything so not sure what this message is talking about.
As far as I know, you mentioned several commits in discord: #381887113391505410 message
Yes, I gave those commits to someone else who asked from a cursory glance. It wasn't me giving you a personal review since I don't really have the time to actually do thorough reviews on entire projects anymore. But yes, those commits were nuked from history -- they were force pushed away. Not really sure what that says about reorganisation.
Probably "review" wasn't the most accurate word in this situation. Speaking of those commits, the links are invalid because we transferred the repo to an organization, but all commits are still there.
This discord-api.py library does not seem to handle rate-limits properly:
https://github.com/tuna2134/discord-api.py/blob/main/discord_api/http.py#L42
https://github.com/discord-api-py-org/discord-api-types/blob/main/discord_api_types/http.py#L30
You must handle the X-RateLimit-* headers as described in the documentation: https://discord.com/developers/docs/topics/rate-limits
This library also only seems to handle 3 gateway events, unlike all the other python libraries which sup...
discord-api.py was created by cutting and pasting code from the original Discord.py.
However, I think there is a problem because the license is not inherited and the repository is completely independent, as if it was created from scratch.
When you upload a file named hello (world).png, it will be renamed to hello_world.png. The attachment://filename.png used in embeds is not changed, which results in a resolution failure and the image is not added to the embed.
Maybe this same rename strategy could also be performed on the link to make this compatible?
This was originally brought up in #4292, which documented the behavior. However, this should probably be addressed and improved for a better user experience. @IanMitch...
Hello, I'm the author of discorb.
There's PR for discorb already ( #3954 ), and the PR MUST be opened by the author of library.
Refer: #381887113391505410 message, Discord API Unofficial
Description
When removing an attachment in a message sent by another user, the API 403s with the response of {"message": "Cannot edit a message authored by another user", "code": 50005}
Steps to Reproduce
- Have manage message permissions within a server (Ownership included).
- Have another user send a message with an attachment, the message must have some form of content such as multiple attachments, or text.
- Press the x button on an attachment to remove it, then confirm....
Not A Bug, a Fellow Bug-Hunter made the Same issue about this few months back https://github.com/discord/discord-api-docs/issues/4064#issuecomment-963429277
I'm avidly against the idea of adding a library with a support server whose PR author here (admittedly) partake in saying toxic things. It's not necessarily a bad thing to be joking about the culture of your own community, (as this is most of the time the case) but I think it's immature and extremely selfish to be saying things that appear to be in some form open-handed manipulation of the Discord staff for access to closed beta testing:
 that bots can access their pings and DMs as well as the extra complexity of managing prefixes as their reasoning.
I guess I was late here to argue before slash came out, but I want to still argue about it. Bot prefixes were made so people and bots could differentiate bot commands from normal chats
And why can't we use that point as a way of not using slashes but still keeping away from "message intents" actually
Seeing as I have been banned from the Pycord Discord server for posting my opinion here on this PR, I will be making an updated response.

I see absolutely no issue with them requesting access to the server and Mason granting them said access.
I absolutely see no issue with requesting for access either, after all, this is an OSS ecosystem and we're encouraged as developers...
The Discord staff have been very transparent about the reason behind the message intent behind for privacy and security reasons. I agree with the developers' response that applying for the intent "to make message commands still work" is and should remain invalid. I strongly believe that we'll be seeing most developers like myself transition over to interactions including application commands for the long-term future. While message commands may have their own benefits, an intuitive UX design f...
Duplicate of #3744 - custom prefixes aren't something we're exploring, for many of the reasons mentioned in that thread
Duplicate of #3744 - custom prefixes aren't something we're exploring, for many of the reasons mentioned in that thread
Same issue here,
fedora 35
apm 2.6.2
npm 6.14.13
node 12.14.1 x64
atom 1.58.0
python 3.10.2
git 2.34.1
_Originally posted by @RandomVersion in https://github.com/atom/atom/issues/23493#issuecomment-1019353853_
Same issue here,
fedora 35
apm 2.6.2
npm 6.14.13
node 12.14.1 x64
atom 1.58.0
python 3.10.2
git 2.34.1_Originally posted by @RandomVersion in https://github.com/atom/atom/issues/23493#issuecomment-1019353853_
The patch was created by Jan Kratochvil, formerly from Red Hat.
_Originally posted by @mruprich in https://github.com/WayneD/rsync-patches/pull/3#issuecomment-948510405_
From my understanding, external asset URLs (seemingly only for large_image and small_image) have been possible for the past month or so, yet have gone undocumented. This PR attempts to solve this!
I have two thoughts regarding the contents of this PR:
- Should I keep the edit to the deprecated Rich Presence SDK? I did so as the RPC FAQ is still prominent on the sidebar listing, but I am not sure if this ideal.
- What external image URL should be used as an example? I used the GitHu...
Message Reaction Remove Emoji sub section missing the "Event Field" in header
Just a little text missing
"media proxy image" in the gateway page is the same as external image; it has the mp: prefix when receiving and you send a full image when sending. I think sending information and other details were unfortunately removed from #4317 before it got merged
Thank you for catching that! I edited in a note similar to the linked PR.
Is this something that might hit the developer portal? Dark-mode-only is an accessibility barrier for these docs
The current version of Sword is using gateway version 6 and is archived.
I have forked the repository and made it compatible with the v9 API. This includes Application Commands, Message Components, Stickers, Guild Scheduled Events and Timeouts.
The rate limit handler and bucket system were left untouched, which means it conforms to the standards you are looking for.
unless this is an official continuation, imo it should be displayed as a separate library and have a different name
To use an external image via media proxy, specify the URL as the field's value when sending. You will only receive the `mp:` prefix via the gateway.
There should be a way to send arrays into slash commands
absolutely! that would be great
so i just stop making webhooks and i haven't even make 1 yet and this pops up
unless this is an official continuation, imo it should be displayed as a separate library and have a different name
Fair point, as such I renamed my library to Swiftcord
It should be noted that this is a fork of Sword. The credits.md file on the repository clearly outlines all past contributors to Sword and Swiftcord uses the same licence as Sword did.
has any progress been made on slash commands supporting attachments?
yes, the feature is currently undergoing fixes, testing, and final changes before release
ooooooooooh super hype, thank you for the speedy response!
dose locale needs time to update after register?
I don't think localized commands (names and descriptions) have released yet, just sending user locale in the interaction. I may have missed something though.
So I don't know what you mean by "does locale take time to update after register."
Description
I get a 404 error for some reason
Steps to Reproduce
I don`t no but sometimes happen.
Expected Behavior
I don`t no
Current Behavior
404 error at interaction api.
Screenshots/Videos

Client and System Information
library is nextcord and os is linux
That error is clearly not a 404
Its a 500 aka Internal Server Error
At least you could have bothered to read the docs https://discord.com/developers/docs/topics/opcodes-and-status-codes#http-http-response-codes
According to the error, it seems that 404 is issued on the api side
at the document "Exception that’s raised for when status code 404 occurs."
I think it's strange because I used it for the first time when sending the interaction token.
After restarting the bot, it heals temporarily, but it reoccurs again.
Contact the library developer once, and if the cause is still unknown, ask again.
@A5rocks
using http post method with localizations returns me status code 200s
json_ = {
"type" : 3,
"name": "테스트용_커맨드2",
"name_localizations" : {
"ko" : "테스트용_커맨드2",
"en-US": "command_for_test2"
}
}
endpoint ="https://discord.com/api/v8/applications/{testapp_id}/guilds/{guildID}/commands"
requests.post(endpoint, headers, json=json_)
I sent json like above, so I thought localizations were working
client support hasn't shipped yet, which is why the feature is not released or documented yet
also you shouldn't have commented your question on this old and outdated GitHub issue
[discord/discord-api-docs] Pull request opened: #4376 Clarify Which Gateway Close Codes to Resume on
Adds a new Resume field to the Gateway Close Codes table which clarifies whether you should resume, or start a new session.
The "if you have a session_id" is true for all close codes until you get a OP 9 response on the gateway.
The "if you have a
session_id" is true for all close codes until you get a OP 9 response on the gateway.
You may send a payload before you actually send the first identify, and you wont have the session_id
You may send a payload before you actually send the first identify, and you wont have the session_id
So "if you have a session_id" is still correct, am I missing something?
You may send a payload before you actually send the first identify, and you wont have the session_id
So "if you have a
session_id" is still correct, am I missing something?
Just to clarify, I've set it as "if you have a session_id" just because you can get those errors before you get your session_id, attempting to send a valid resume payload on close code 4001 gives an opcode 9 though.
attempting to send a valid resume payload on close code 4001 gives an opcode 9 though.

that will be suuuuper nice!
Also having this issue on 109.0 (29659) stable on iOS 13.4.1 iPhone 11 Pro
This is a huge issue due to possible rate limit violations, as it appears the server is receiving duplicate requests multiple times a second from a client device with this issue.
This is also not very good for server performance. Is there any guidance to try to mitigate this issue until the mobile teams get to it? Right now I'm only responding to unique Autocomplete Interactions but the spam doesn't appear to sto...
\* Getting the ID for an emoji can be done by typing ``\:emojiname:``. Bot users may send animated emojis, as well as external emojis (external meaning from a server other than where the message containing the emoji is sent). External emojis will only be rendered if the bot is a member of that server.

For example, let the users use the remindme command itself. As thats possible in prefix commands, that should be possible in slash commands too
Banning manually through the Discord web app still doesn't remove all messages posted by the account with the Past 24h history delete option being selected.
There has been quite a bit of confusion about the 6,000 character limit applying to all embeds instead of each individual one so this PR aims at rewording the documentation to make it more clear
\* Getting the ID for an emoji can be done by typing ``\:emojiname:``. Bot users may send animated emojis, as well as external emojis (external meaning from a server other than where the message containing the emoji is sent). Unlike Webhooks, External emojis will only be rendered if the bot is a member of that server.
[discord/discord-api-docs] New review comment on pull request #4380: Document Scheduled Event Covers
| image? | ?string | the [cover image hash](#DOCS_REFERENCE/image-formatting) of the scheduled event |
also are you sure that this is optional?
[discord/discord-api-docs] New review comment on pull request #4380: Document Scheduled Event Covers
| Guild Scheduled Event Cover | guild-events/[scheduled_event_id](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object)/[scheduled_event_cover_image](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object).png | PNG, JPEG, WebP |
yes, the feature is currently undergoing fixes, internal testing, and final changes before release
Is there any ETA for this?
b3cc70e clarify embed character limit (#4379) - Suspense4615
030e21c Add Pycord to Community Resources (#4355) - Lulalaby
Hi, thanks for the issue. We've determined that this is intentional as it would otherwise be quite spammy in the logs, so at this time we won't be doing this with the current audit log system.
Hey @nathan-knight, I tested this out in incognito Chrome and wasn't able to reproduce this. Could you provide a sample url?
a4be17f Document error code 30046 (old message edit rat... - advaith1
Maybe add a , ? or move it into ()
tbh this feels more like a bug, the behavior should probably be changed
| id | snowflake | id of the interaction |
| type | [interaction type](#DOCS_INTERACTIONS_RECEIVING_AND_RESPONDING/interaction-object-interaction-type) | the type of interaction ...
1d39b02 Document what message flags can be sent (#4357) - advaith1
Looks like this should be fixed, going to close for now.
| member? | [partial member](#DOCS_RESOURCES_GUILD/guild-member-object) object | the member who invoked the interaction in the guild |
56cea94 Document partial member data in message interac... - SQKo
This is client behavior not API. Some people still using it to get id so we keep it there, however that shouldn't go into API doc.
2d13f67 Document message flag `FAILED_TO_MENTION_SOME_R... - advaith1
To prevent permission escalation, a user must have a permission at the parent channel or guild level to be able to add that permission to an overwrite in a channel when they only have Manage Roles permission at the guild/category level. We do this to prevent permission escalation within channels. To avoid this, your bot must have Manage Roles permission bit in the channel, which will allow it to set any permissions within said channel.
Summary
This PR adds the package Discord.Net.Rest to the Interactions section in the community resources
The rest package provides methods to both verify and deserialize webhook interactions.
Below is an example on using the webhook based interactions.
string publicKey = "YOUR_APPS_PUBLIC_KEY";
var signature = request.Headers["X-Signature-Ed25519"];
var timestamp = request.Headers["X-Signature-Timestamp"];
var body = await new StreamReader(request.InputStream).ReadToEndAsyn...
dfb7310 Document Scheduled Event Covers (#4380) - Lulalaby
\* Getting the ID for an emoji can be done by typing ``\:emojiname:``. Bot users may send animated emojis, as well as external emojis (external meaning from a server other than where the message containing the emoji is sent). Unlike webhooks, external emojis will only be rendered if the bot is a member of that server.
This is client behavior not API. Some people still using it to get id so we keep it there, however that shouldn't go into API doc.
There has been a lot of confusion from new developers (or at least new to the discord API) on how to render emojis when sending message through bots, some were thinking right clicking an emoji would copy its id when it actually copies the message id. While documenting the client behavior may seem off topic on the API docs, it is important to realize that the ...
Will there be any audit log entry for this?
Good question, @hemu can you elaborate on this?
On a personal note: How should it look? 🤷♀️
Description
we are able to set timeouts to a time in the past by giving a negative value.
Steps to Reproduce
provide a negative value when using timeout endpoint
Expected Behavior
Its supposed to return an error.
Current Behavior
It sets timeout to a time in past.
Screenshots/Videos

 |
| Role | <@&ROLE_ID> | <@&165511591545143296> |
| Standard Emoji | Unicode Characters | 💯 |
Table width must be expanded because of new *, this is what Lulalaby mean.
Discord has been around for years and to this day has not provided a button to delete messages and conversations. Sometimes we need to forget a bad past that we literally want to erase and we can't because we don't have that option. :,(
- This idea might be good. Because some users really like the light theme more and such theme options might be a good idea.



