There should still be a more clear error message. That's just bad UX. If I have a range of 0-10, and they input 11, it's a valid integer by definition. The erro should say "input is outside the accepted range" or something similar.
#github-notifications
1 messages · Page 33 of 1
I got word from Night that this has been fixed. Testing shows its resolved as well.
This has been fixed: https://github.com/discord/discord-api-docs/commit/39f1b745a008b34a7a86c15933acf63c25c1818a Changes will show when it is deployed.
This wouldn't be an embedded user agent, the proposal is for the discord client to act as the user agent in the oauth2 request, not to embed a browser via something like webview to facilitate authentication.
This has been fixed: https://github.com/discord/discord-api-docs/commit/39f1b745a008b34a7a86c15933acf63c25c1818a Changes will show when it is deployed.
The Problem
With Discord pushing toward the use of interactions, I think a major pain-point for both developers and end users is the non-descriptive errors displayed in the client when the interaction fails.
End users often get frustrated when encountering an error, and that frustration is directed to the bot developer. However, many of these errors may not be the developer's fault, and it can be hard to diagnose when the only info provided to the user is "This interaction failed"
Li...
I was just thinking that it's really a hassle for bot designers to have to create a server (or a few) to hold their bots emojis. This is made worse with multiple bots, forgetting which ones were only for testing, wanting to use user inputted images, etc. This could be solved by using temporary emojis allowing images from the filesystem or links to be used in place of emojis everywhere.
Example:
.setEmoji('../images/emoji1.png)
Not sure if this is the best solution, any thoughts?
I would assume this isn't done for performance reasons, it would be nice to have more control over images though.
Can reproduce, I have reported it in DDevs a few weeks ago but I have no news about this.
Description
When we hit the "hidden" per-channel ratelimit on webhooks which is 40-45 seconds, the headers shows the normal 5/5s.
Steps to Reproduce
Spam a webhook message 30 times. The next one will return 429 with a "retry_after" of 40 or more seconds and a 5s x-ratelimit-limit / x-ratelimit-remaining
Expected Behavior
Headers should match the longer hidden ratelimit

Did you want to open up the vdi so I can actually commondeer your discord bots to help me trouble shoot discord, telegram, and irc channels using cross site scripting?
I only have about 100,000 device unit rn.
Question, shouldn't the names for HypeSquad badges be called HYPE_SQUAD? When converting UPPER_SNAKE_CASE to PascalCase, HYPESQUAD ends up being Hypesquad (with lowercase S), however, the description says HypeSquad instead.
Should the names be changed to HYPE_SQUAD, or the descriptions to Hypesquad?
Description
As shown in the discord.py documentation (https://discordpy.readthedocs.io/en/latest/api.html#discord.Guild.audit_logs), The guild.audit_logs method has a keyword argument called after, which is a filter meant to ignore entries before a given datetime or entry, however it does not seem to filter anything.
Steps to Reproduce
1- Go through the default procedure to obtain a discord application and bot API key.
2- Make sure the discord bot is in 1 guild which current...
This repository is for Discord API related issues, not the libraries.
This repository is for Discord API related issues, not the libraries.
Sorry, I didn't find a more accurate place to post this issue as the discord support page is not meant to receive API bugs, and thought it was fine to put it here because I found a few discord.js reports, can you point me out where to report discord.py bugs?
you can join the server https://discord.gg/dpy
Thanks!
Now I'm not sure what to do about this issue, if this is the wrong place I'm fine with closing it.
Seems HYPESQUAD_* is what they're internally referred to by, but still might be good to change.
Added ****** to content, embeds, attachments, components with a note about message content access.
If your bot or app is not approved for message content these fields will either be an empty string or empty array, depending on the data type. These restrictions will not apply to message objects received via interaction payloads (Only for verified bots.)
Description
When trying to delete an Guild Role with an reason (as the docs says), you can use the 'Audit-Log-Reason' header. But when using it, it succesfully deletes the role, but without any reason. I've tried the 'Audit-Log-Reason' with kicking an member with an reason exactly the same as deleting the role and with the kick it works perfectly.
Steps to Reproduce
As the docs say, use the delete method with the right url. (v9 api btw). And run the code.
**Expected Beha...
The reason is being attached to the audit log entry, it just isn't being displayed by the client.
For the following client representation

GET /guilds/{guild.id}/audit-logs?limit=1 is returning the following for me
{
"audit_log_entries": [
{
"id": "905153846203011083",
"user_id": "658822586720976907",
"target_id": "90515339580605646...
The header should be X-Audit-Log-Reason
Oh oops i wrote that wrong in the issue, my bad! I meant X-Audit-Log-Reason indeed.
\*\*\*\*\*\* If the Message Content Intent isn't enabled for your bot, these fields will either be an empty string or empty array, depending on the data type. These fields are still always accessible for messages the bot sends, messages the bot receives in DMs or messages in which the bot is mentioned. [Learn more here](https://support-dev.discord.com/hc/en-us/articles/4404772028055).
Description
The 6000 character limit for embeds in message applies to all embeds in a message, instead of applying to each one of the embeds individually, making it impossible to send larger amounts of text in multiple embeds. Neither the expected not the actual behaviors are documented, which is why I assumed this to be a bug instead of a feature
Steps to Reproduce
- Create 2 embeds that both have a description with 4000 characters
- Try to send them both in the...
This behaviour is correct. It looks like the documentation isn't clear on this though - that could do with some clarification
This is not a bug - but yes, documentation can be improved clearly.
This is not a bug - but yes, documentation can be improved clearly.
Please improve the error too because it currently suggests that the limit applies to one "Embed" and not all of them.
I think I remember there being talk of possibly letting bots use emojis from any server, especially since interactions already can (since they're built on webhooks)
Maybe post that as a separate discussion? (Also, I'd name them "max_length"/"min_length"; more accurate)
add limit for banning non guild members
The limit can fluctuate, best not to note any specific numbers
2048 is an allowed size, but the square root of 2048 is 45.25483399594
2048 is a power of 2, there's no issue with that. A perfect square is completely different from a power of 2...
@applebee1558 there was a deleted message mentioning that 100 is 10^2, and that it thus was a power of 2
I assume whoever posted the comment realized their mistake and deleted it.
As we know, when we get an item using management (mgmt henceforth) api in the response we have ids of the fields instead of code name which makes it hard to know what fields value it is. So we use the delivery api to fetch the item and use mgmt api to update the language variant. I was testing the the endpoints in postman. The mgmt api throws 400 bad request because of some unallowed attibutes of in the richtext while updating the item.
I think you've got the wrong github repo, friend. Good luck!
I think you've got the wrong github repo, friend. Good luck!
So can you tell which repo I will have to use to log bugs against the api?
this repo is for bugs with the Discord API; we have no idea what kontent.ai is
we support quite a few sizes that are not documented, as there are lots of things to display in the app at various sizes. i'll check if we should document them or not but most likely the only ones that people using our public api should rely on are what is currently documented.
It seems as though size 100 is used in the client. If I use the Discord app on Windows (Stable 103410), I can drag and drop someone's avatar into a browser like Chrome (95.0.4638.69) and it will show up as `?size=...
Any plan to support discord:// protocol in embed-author URL's?
Request
Hi there, as a quick suggestion: I think a feature to determine whether or not a txt based file would be previewed would be helpful.
To clarify, I am talking about these file previews:

Approach
The API could be something sort of this, accessible to bot developers of course:
preview=True/False
And additionally, if this were to pass on to clients, it c...
It would be cool to have an option for slash/application commands in that users can upload files.
You could also specify what file type (e.g. image) the users can upload
I believe this is on their short-list and discussion of it can be found at #3581 (granted its a bit hidden)
I believe this is on their short-list and discussion of it can be found at #3581 (granted its a bit hidden)
I wanted to suggest something similar. But I decided to check first to see if I was duplicating someone.
I really like this idea, and I hope that it will be implemented in the same way as in Selects.
I'm just gonna close this, since it's been +4 months.
Description
I am using https://github.com/discordjs to have a bot send embedded messages to a discord channel.
(Early preface, I have already opened an issue with them, they said its not an issue with their library https://github.com/discordjs/discord.js/issues/6940)
The embedded messages I am sending contain an image with a URL of the following format: https://bafybeifjmhuhyfk52euitamx5qajmn4g6ssopj2vm2lrznhj5nt4c27ctu.ipfs.dweb.link/fff612879aac4
If I take that URL and send it ...
I would like a way to mention a message by using a slash commands. I see that this is not on the to-do list. Is this something new or just not possible?
I would like a way to mention a message by using a slash commands. I see that this is not on the to-do list. Is this something new or just not possible?
Context menu?
@LinkossLink Context menu commands only allow for single message/user to be referred to.
Context menus also don't allow you to send additional arguments, such as text or choices
Hi so I'm bad at explaining things
I was thinking maybe there would be a min_length and max_length for the strings if for example you are making an application bot with slash commands and want to have a question require at least 5 characters but under 50 for example. Thoughts?
Oh, yea!
Attachment option, didn't saw 🙈👌
🍞
This is something we've all seen at least once when traversing websites on the Internet. Toasts. Toasts are a very simple and UX-elegant way of displaying information for a temporary and short time period. Toasts that we've seen on the Internet usually look a little something like this:

A toast in design is pretty simple. You have a bar that usually makes from either lef...

Something like this would be great
this is an inverted of normal support threads.
Might I suggest using: https://darkreader.org/
Not the optimal solution, but then again I don't think this is technically the place for asking for these things anyway.
Agreed. Update on this would be dope. Trying to get my friends over to Discord by making a GroupMe bridge to make it their choice until I start making messages that say "view the original message in Discord* for things GroupMe can't do to prove it's inferior. Feels bad that I can't show the better native reply interface and will have to resort to embed replies from the Webhook. Would also accept the Bot sending messages as a different username/avatar as an alternative - the Webhook execute ...
The desktop client actually has toasts (I think it's a recent addition, no clue if it's actually used anywhere) which look very nice and would be awesome to use through interactions

Android also has toasts built into the OS and I believe the iOS client has toasts similar to desktop
When I asked about having a response type to indicate a generic success back in july they seemed to want people to use ephemeral messages for things like this, especially if you're sending text in the response. They did however indicate that a generic command succeeded response might be something they would add -- this would be like slack's empty slash command response I imagine -- and potentially use a toast for this.
Is seems like guild_scheduled_events field of the Guild object is missing in this PR.
Also I'd like to mention that guild_scheduled_event_user_create and guild_scheduled_event_user_delete events should also include the guild_id field in the inner payload, because it's hard to find a GuildScheduledEvent object if scheduled events are cached on a per-guild basis.
we've changed it to include guild_id now :) but the event names will be changed. I'll explain in a separate comment
Also I'd like to mention that
guild_scheduled_event_user_createandguild_scheduled_event_user_deleteevents should also include theguild_idfield in the inner payload, because it's hard to find aGuildScheduledEventobject if scheduled events are cached on a per-guild basis.
guild_id will be added 👍 but the event names are changing slightly
Is there any update possible on this? My bot literally cannot work as intended until this is fixed and I was now asked to verify my bot Argus.
3d08f0c Getting own oauth application now returns flags - zeylahellyer
Getting your own OAuth Application via the GET /oauth2/applications/@me route now returns the flags field for the application.
imo just remove the "with flags" and remove the ? on the flags field in the table (I think it's returned everywhere else?)
should also add a flags field to the example object
(I think it's returned everywhere else?)
There's plenty of places which return partial application objects that don't including the flags field like GET /oauth2/@me, attached to invite, attached to messages (previously the only documented place which included "flags" was the partial application on guild ready events as far as I'm aware).
1f53e6d actually don't even mention the flags - zeylahellyer
compromise
noun
an agreement or a settlement of a dispute that is reached by each side making concessions and leaving unsatisfied.
In bold is my addition. For now I've removed the mention of this entirely while also not adding an exhaustive list of what's included here, because that's consistent with the rest of the docs for now.
When I asked about having a response type to indicate a generic success back in july they seemed to want people to use ephemeral messages for things like this, especially if you're sending text in the response.
How about a timer for ephemeral messages?
Rewrite example from third-party tweetnacl library to native node.js crypto module
"NODE-ED25519",
IMPORTED_PUBLIC_KEY,
Buffer.from(signature, "hex"),
Buffer.from(timestamp + body)
);
const IMPORTED_PUBLIC_KEY = await crypto.webcrypto.subtle.importKey(
"raw",
Buffer.from(process.env.PUBLIC_KEY, "hex"),
{ name: "NODE-ED25519", namedCurve: "NODE-ED25519", public: true },
false,
["verify"]
);
Thanks for formatting, that's better now!
I was very surprised when I didn't see this field in the Interaction object. I think this field will be very useful in many cases.
Yes. i can. But then why does this field exist in the message object? timestamp can also be obtained from the ID. Now one part of the API is done in one way. Another part is done in a different way. I think this is bad and I also think the API should have a certain structure.
The message object is the exception, every other object with a derivable timestamp does not send it. Message objects have sent it since v1 of the API -- it's most likely deprecated legacy.
I'm not a Node.js dev, so perhaps I'm missing something, but I'm curious. Is there any reason for this change beyond "the native crypto module comes with Node.js"? For example, is the tweetnacl library unmaintained, or does it contain security flaws?
I ask because, when it comes to security such as this, I don't think we need to be mucking around with all these additional options unless we absolutely need to -- and most people don't need to. Otherwise, we can accidentally introduce a sec...
When it comes to security, a native nodejs module will always be preferable.Why? Because the nodejs module is contributing to thousands of developers who will fix any gaps before they are published in any cybersecurity publications.
Also tweetnacl uses C++ bindings, so they are not always available on very new versions of nodejs (additional compilation may be required)
Tweetnacl is vetted code written by professionals and publicly audited by researchers and scientists.
Ive seen it recommended over other crypto libs for that reason
@angrymouse I think you misunderstand me. I'm not talking about node.js itself having security vulnerabilities. Rather, I'm talking about someone causing their own security vulnerabilities if they don't know how to properly use the crypto module. The crypto module does appear to be putting the brunt of the settings on the user, which signals to me that users of it may inadvertently specify settings that may not be as strong as they sound -- thus causing a security vulnerability.
That...
Description
Page contains full description of Application object, but not endpoints.
Please add the following endpoints in docs:
// BASE_URL = 'https://discord.com/api/v9
Method: GET
Url: /applications
Description: get all current user's applications
Method: POST
Url: /applications
Description: create application
Method: POST
Url: /applications/{application_id}/delete
Description: delete appl...
I would rather this example was left with tweetnacl because that library has bindings in many popular languages which means the sample code is more inteligable. I'm not sure what the benefit of this is?
Using a node.js specific module instead of the web crypto api is also excluding other js runtimes, I believe nowadays all the popular js runtimes support web crypto's subtlecrypto.
Please correct me if I'm wrong, but these endpoints aren't available with bot or bearer tokens? That's why they aren't documented.
Some of the code examples that use the requests package didn't include the necessary import statement, this PR adds those missing statements to make the docs more consistent.
The create message and send webhook endpoints should be able to have the flags field as an argument. This would allow us to send messages with embeds pre-suppressed, so we could repost user content and always be able to emulate their own 'embed links' permission. Currently if you want to do this, you need to make two requests, and the embed would pop out and then quickly vanish.
If Node's Web Crypto implementation is comparable to Workers', then it's significantly faster than tweetnacl, imo that's a good reason to switch

https://twitter.com/advaithj1/status/1420696472933175297
Using a node.js specific module instead of the web crypto api is also excluding other js runtimes, I believe nowadays all the popular j...
If Node's Web Crypto implementation is comparable to Workers', then it's significantly faster than tweetnacl, imo that's a good reason to switch
The main thing for me is that the code is at least useful as an example to more than javascript developers, more so than the python nacl example in my opinion.
doesn't that support this change? it's switching from a third party library to web crypto
The comment: "to native node.js crypto module" initially lead me to believe they wer...
Warning: The Web Crypto API provides a number of low-level cryptographic primitives. It's very easy to misuse them, and the pitfalls involved can be very subtle.
Even assuming you use the basic cryptographic functions correctly, secure key management and overall security system design are extremely hard to get right, and are generally the domain of specialist security experts.
Errors in security sy...
[discord/discord-api-docs] Issue opened: #4064 Can't remove attachments off of another users message
Description
When you try to remove an attachment from another users message when you have permission to it will send you an error in the console and not remove the attachment
Steps to Reproduce
Send an attachment and text from one account.
Go to another which has permissions to remove attachments.
Click the X.
Click remove the attachment.
Observe.
Expected Behavior
The attachment is removed
Current Behavior
The attachment is not removed and the client gives yo...
Would like to bump this issue as well as #4010
Thought this would be related to an incident around the time this issue was created (https://discordstatus.com/incidents/19s8kbj78zh8), but the headers are still not sent
Discord has this information as of recent api changes.
Given that a maximum or minimum were provided, why not display them?
I second this. I just completed the migration of my bot to slash commands, and currently I have to tell my users to enable external emojis for the everyone role for some of the replies to display properly. Really annoying...
web crypto will be available on any platform that supports JS (cloudflare workers, deno, browsers), while tweetnacle only works on nodejs
And the flag "experimental api" only means that it is not supported on older browsers
From Node's own documentation:
Stability: 1 - Experimental. The feature is not subject to Semantic Versioning rules. Non-backward compatible changes or removal may occur in any future release. Use of the feature is not recommended in production environments.
Plus one for displaying min/max values in numerical option range errors - this was the very first thing I noticed as a user of my own bot and it felt like it would have been an obvious thing to include from the get-go. As it stands, us developers have to put the range information in our option descriptions, which isn't particularly great.
Ideally any numerical options with a min_value and/or max_value would show that on the option as it's in the menu / selected.
the error is {"message": "Cannot send an empty message", "code": 50006}
So the HTML code that I'm using is:
<!--
-->
IDK how to add: Content-Type: application/json
and I am running the code in Edge web browser
<!DOCTYPE html>
<html>
<head></head>
<body>
<form method="post" action="webhookURL">
<input name="username"/><br/>
<input name="message"/>
<input type="submit" value="send"/>
</form>
</body>
</html>
web crypto will be available on any platform that supports JS (cloudflare workers, deno, browsers), while tweetnacle only works on nodejs
While I was working on a response for this, I took a look at the tweetnacl NPM package, as well as its repository.
It seems that the NPM package is actually a port of all the NaCl functions to JavaScript, meaning that it can be used anywhere JavaScript can (includ...
88331d8 fix missing requests-import in code examples ... - joseywoermann
99d5ae2 Getting own oauth application now returns flags... - zeylahellyer
30b75ca Using the internal page link system for applica... - vitorlops
This behavior looks to be working as intended. You may encounter more internal resource limits as our infrastructure team has been working towards improving platform stability for outlier abuse we've been seeing. When internal limits are encountered, you will receive a 429 which does not apply to your resource usage specifically. The normal rate limit headers track your per-user usage, and you should still consider them. In this situation the Retry-After is the header acts as an override, a...
This API response looks to be accurate. Users cannot edit other users messages. The only moderation actions that can be performed on other users' messages are
- Deleting the message
- Supressing embeds on the message
These endpoints are indeed not available to bot users or oauth2 authorizations. You can submit feature requests via discussions if this is something you would like to see: https://github.com/discord/discord-api-docs/discussions
should the client not show the X then?
Hello 👋
Since stage discovery was removed, i believe a lot of documentation is left in limbo which should either be fixed or deprecated.
Both privacy_level and discoverable_disabled seem to be something that should be deprecated.
https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-stage-instance-structure
Guild member update events and i believe voice state updated were changed to make joined_at nullable to make discovery work. This makes for a more ...
This behavior appears working as intended. We do not show reasons in the product for all audit log events.
We support some legacy sizes for internal usage. External developers should rely solely on powers of 2.
These rate limits were actually resource rate limits, and applied to the guild instead of your bot user. Rate limit headers are intended to be per-user limits. We audited all exposed rate limit headers and the ones being returned are the ones you should be seeing.
This will be fixed in the next API deploy.
This sounds like a client bug. You can refer to our help desk article on reporting client bugs: https://support.discord.com/hc/en-us/articles/360046057772-Discord-Bugs
Add the new channel banner feature to the docs.
So today I unsuspectingly wanted to add another sub command to my slash command and i was prompted with this error:
DiscordAPIError: Invalid Form Body APPLICATION_COMMAND_TOO_LARGE: Command exceeds maximum size (4000)
and the friendly people in Discord Devs told me I can't have over 4000 characters total in my command.
I'm trying to keep my descriptions short but since I have a few options with choices while still having them as helpful and detailed as possible to easily use my ...
The channel banner cdn endpoint was not in datamine I assume, that's why they can't add it :P
Since reloading fixes the issue, this is a client bug which exists on all platforms except for Android.
I have reported this as a client bug a few days ago (Ticket), but the support agents really didn't seem like they wanted to help me.
The channel banner cdn endpoint was not in datamine I assume, that's why they can't add it :P
Currently they use the same CDN endpoint as server banners from what I was able to gather when getting screenshots of it for the datamining repo.
const IMPORTED_PUBLIC_KEY = await crypto.webcrypto.subtle.importKey(
This is not correct. The CHANNEL_BANNER feature will be added automatically to a server once it reaches server boost level 3 (and currently also needs to be part of the guild experiment, though this will obviously change once the feature becomes available beyond the experiment). This is not something that server owners can (currently) toggle on or off.
This API response looks to be accurate. Users cannot edit other users' messages. The only moderation actions that can be performed on other users' messages are
- Deleting the message
- Supressing embeds on the message
In that case, the client should not give you the option to remove another user's attachment when you have permission to do so.
True, it's that it has access to the channel banner.
I really like idea of having application running by just http webhook. The thing is that most people (& 3rd tools) are used to see bots as regular users so they are listed on member list from right side of Discord app. We received a moment ago ability to achieve this by using both application.commands & bot scopes.

There's only 1 problem with this...
Currently - app added t...
Being honest I don't get it why you would want do have it. In my opinion, timestamps from all objects you can potentially receive should vanish. Each object has own id and Discord's ids are snowflakes. You can get exact timestamp from snowflake.
Having extra timestamp vield on each payload makes it only heavier. You may see it's not much which is true. But at scale - from just a few extra bites you may end up with megabytes of saved network.
For me it sounds like just extra pain. The way it is now is fine. It's not that hard to add single if statement in your code :)
This sounds like one of those options that will make (at least PC) client even more laggy. I think that so far every popup I've seen created lags in no time. Another thing is that can be very dangerous - assume we have some bad bot (or maybe just bot who bugged) and now it would send storm of those popups to people's screens.
I don't see any option it would be good without adding some really hardcore limitations. The thing is that if you hard limit this - it will become useless.
PS: If you add option thanks by people would be able to disable popups on their clients then I bet - nearly everyone would disable it in first few days lol.
Adding it to the command option itself would allow Discord to throw up an error when the user attempts to send the command, allowing them to amend the parameter and send again.
This is much more work for the user if we have to provide an error related response instead
Honestly? Setting it up would probably require more boilerplate code than using single if statement 🤔
I don't see a problem with spam since it has to be in response to a user triggered interaction.
You have ability to send private messages that only user who executed command can see. That's already kinda popup.
If you want - you can send short text and then delete it after few seconds.
Discord app is already overloaded which a massive amount of things that statistically - most people doesn't really use. I just don't like adding things that will be used by like maybe 1 out of 1000 people.
Providing client-side restrictions on slash command input is objectively better UX. It allows people to know that their data is invalid and get a chance to correct it without having to retype the command.
It'd probably require two lines of JSON on the bot developer's end, similarly to how max_value and min_value work today.
With respect to updated commands - no longer needlessly updating command versions on Bulk Update would help a lot.
Unavoidable 429s like this no longer count against our firewall limit. You can also now use X-RateLimit-Scope to determine the type of rate limit that has been reached.
This is actually an intentional limitation. They were created for GameBridge, an old SDK product we built for game integrations. It allowed games to use text + voice from Discord in their games through temporary group DMs. Because these group DMs automatically get deleted, attachments were not storable. We will likely be turning down the ability for bots to create group DMs in the future, and I would not recommend using these in an integration (we are no longer approving additional applicatio...
I'm a developer for a bot in ~250,000 guilds and our bot has been experiencing shard crashes at least once or twice a week for the last few weeks while trying to update status.
Talking about it with other large bot developers, I was told updating status pauses events while all guilds process the new status, and if a guild is lagging / doing expensive stuff, that might cause issues.
This is very frustrating. Could this either:
- get fixed
- get documented (similarly to the note on [Sha...
Recently this "known" feature's actual name was found on an experiments tracker under the experiment 2021-07_threads_only_channel and since It wasn't really documented on this docs I thought I could make a pr for this.
Here is my source

I don't think this is relevant to bot API consumption? These docs are for bots / integrations, not general / internal Discord documentation.
Even if It's almost impossible for an ordinary bot to be in a that kind of server, It's still a fetchable guild feature and bots without knowledge of it might break in case. we can't really know what's going under these servers.
IDGI why would bots break.
And also a developer should account for such cases and handle errors gracefully.
Take listing emojis for features on a /guild-info command as an example. This command will be broken without the knowledge of the flag. Not every bot dev has possibility of knowing that their bot is in a staff guild if they try to locate the problem.
bots should properly handle unknown guild features though, as new ones are are added all the time
| attachments\*\*\*\*\*\* | array of [attachment](#DOCS_RESOURCES_CHANNEL/attachment-object) objects | any attached files |
| embeds\*\*\*\*\*\* | array of [embed](#DOCS_RESOURCES_CHANNEL/embed-object) objects ...
| components?\*\*\*\*\*\* | array of [message components](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/component-object) | sent if the message contains components like buttons, action rows, or other interactive components |
There's plenty of undocumented guild features for various kinds of purposes, for example this one. However as others already mentioned these guild features won't be encountered by bots on the regular since those guild features only exist on very specific servers. As also already mentioned, no bot should crash when it encounters an unknown guild feature, if it does nobody but the developer(s) of the bot or the developer(s) of the library used for the bot are to blame.
As for the actual purpose...
[discord/discord-api-docs] New comment on issue #2352: Can't respond to an interaction with gateways
A bit late to the party. But I am now experiencing this issue.
Bot was replying to slash commands completely fine then magically started giving errors with Unknown Interaction. Tried deleting and creating the commands but no luck.
This PR adds documentation for guild time outs, which currently mainly only consist of the communication_disabled_until field on guild member objects. Since this field has been showing up on guild member objects for quite some time now and the field getting functionality on the API-side, I feel like it's at least worth creating a draft PR mentioning this field, since this can affect bots on servers where this gets tested. For example, someone could be time outing the bot and the bot would b...
Yeah, a few users already reported that they played with it and can't remove it anymore 😅
| communication_disabled_until? | ?ISO8601 timestamp | timestamp of when the time out will be removed. until then, they cannot interact with the server |
| communication_disabled_until? | ?ISO8601 timestamp | timestamp of when the time out will be removed; until then, they cannot interact with the server |
I don't know how DiscordPY works but for DiscordJS you can easily fetch all commands for a guild when you don't specify a command id. https://discord.js.org/#/docs/main/stable/class/ApplicationCommandManager?scrollTo=fetch And Discord developers documentation: https://discord.com/developers/docs/interactions/application-commands#get-guild-application-commands
Also to come to the topic of guild commands you shouldn't read them on startup but store them upon creation, they only change ...
Here are the current endpoints we're looking at, with a bit more consistent naming:
/guilds/<guild_id>/guild-scheduled-events [GET/POST]
- return all events for a guild [GET]
- create new event [POST]
/guilds/<guild_id>/guild-scheduled-events/<guild_scheduled_event_id> [GET/PATCH/DELETE]
- get existing event [GET]
- update existing event [PATCH]
- delete existing event [DELETE]
/guilds/<guild_id>/guild-scheduled-events/<guild_scheduled_event_id>/users [GET]
- return users...
it is unlikely that we will change the api to account for weird attachment names. my recommendation would be to use simple ascii names instead, like
f'image{n}'
Why not just support Utf8 to include characters from the language with the most native speakers on earth in filenames?
IDNA is also a possible solution and as seen by the author is not supported right now.
There's no need to bulk update with an empty query if you're just going to bulk update again with new ones, that's the whole point of bulk update, its an upsert.
For the "advanced" way, I'm again not sure why you're stuck in the delete-create loop. In fact that method would not work at all as described (delete then update would error on the update)
The update with the empty JSON was more intended for explaining how to remove them all...
That's why i wrote it in 2 separate lines, ...
My problem with this, it's not one quick grab request, which is my library would want to do, they don't want to fetch every slash commands for every guild that would be very api heavy, and they don't really want to store local commands locally, and how it works makes it impossible to essentially do this:
- keep Database of every slash command and what guilds it is in so...
- Database shouldn't be needed anyway.
Now i gave you the link on how to read all commands per guild, yo...
List of gateway events:
GUILD_SCHEDULED_EVENT_CREATE
GUILD_SCHEDULED_EVENT_UPDATE
GUILD_SCHEDULED_EVENT_DELETE
GUILD_SCHEDULED_EVENT_USER_ADD
GUILD_SCHEDULED_EVENT_USER_REMOVE
These will be grouped into a new gateway intent so bots can opt in.
The following two events currently sent that was mentioned in this PR, when a user RSVP's to an event or removes RSVP, will be deprecated soon in favor of the new `GUILD_SCHEDULED_EVENT_USER_ADD / GUILD_SCHEDULED_EVENT_USER_REMOVE...
Hey hemu, I am still willing to contribute to this PR and to want include full changes here but I am not always available. If I am causing any slowdowns then contributing directly to my PR would be great (unless you are not a maintainer according to GitHub, then oops)
It's not a matter of bloating, it's a matter of offering creative and inspiration for better solutions to bot developers that don't want to cater towards the current methods of handling things like this. Is it really necessary to send an ephemeral for every time you want temporary information? For example, that could spam and clutter up the chat. Or even sending a message and deleting it a few seconds later takes away the practicality of something like an ephemeral as well. It's also just usi...
I don't feel like ephemerals are the best solution because they have the chance to clutter information in the chat, and chats are a core integral aspect of communicating on the platform. Sure, it's also the place where interaction responses exist, but I don't think forcing developers to send a message to "respond" to an interaction is also a smart solution.
Hey hemu, I am still willing to contribute to this PR and to want include full changes here but I am not always available. If I am causing any slowdowns then contributing directly to my PR would be great (unless you are not a maintainer according to GitHub, then oops)
Would you accept a PR into your branch?
Would you accept a PR into your branch?
Sure 👍
Then I'm helping out :3
Probably the next days
Channel banners now use the following CDN url format: https://cdn.discordapp.com/channel-banners/{channel_id}/{channel_banner}.png (can be .jpg or .png)
Maybe someone needs to go through the whole docs and swap "server" for "guild" everywhere, it's quite inconsistent at the moment.
| communication_disabled_until? | ?ISO8601 timestamp | timestamp of when the time out will be removed; until then, they cannot interact with the guild |
Channel banners now use the following CDN url format:
https://cdn.discordapp.com/channel-banners/{channel_id}/{channel_banner}.png(can be .jpg or .png)
It's https://cdn.discordapp.com/channels/:channel/banners/:banner.jpg (.jpg/.png).
It's
https://cdn.discordapp.com/channels/:channel/banners/:banner.jpg(.jpg/.png).
It's true that this is the datamined value from a new CDN URL function but my client requested the channel banner using the URL format I mentioned above so I'm honestly unsure which one is the one being used as both seem plausible to me, guess we'll just have to wait and see.
sounds good - I can both leave comments and make commits too if I need to, we'll get it figured out no worries 🙂
I don't think forcing developers to send a message to "respond" to an interaction is also a smart solution.
This was my point.
I want to send a something really small and generic like: {type: INTERACTION_SUCCESSFUL} and discord show a toast or similar inline to indicate the command has completed. We shouldn't need a whole message for that.
I highly doubt discord would give interactions two avenues to send arbitrary text, but something like I described above would solve your p...
I'm passing the exact code I receive from /authorize but receiving this error after attempting the exchange. What is especially bizarre to me is that this is a project I'm continuing after a few months hiatus and oauth authentication was working perfectly at that time. Here is a sample curl and the error response, let me know if there is any other information I can provide.
curl --request POST \
--url https://discord.com/api/v8/oauth2/token \
--header 'Content-Type: application/x-...
Description
discord developers will be getting api to search the nft marketplace?
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos

Client and System Information
Similar to the existing "Dismiss" link, I would like to have a way for a user to make a ephemeral response get posted to the channel they issued the slash command in. My bot can look up information in a game for a given user, and sometimes they are doing this for themselves but sometimes they are showing off. I could certainly add a "public" boolean option, but it would be much nicer for them to see the response and then click to make it a channel message instead of an ephemeral message. Alte...
If this is implemented, bots need to at least have some way of controlling whether or not it's allowed. Ephemeral messages can be used to transmit sensitive data that should not be accessible to others, and I suspect there would be a fair amount of accidental "publishing" of messages.
I guess, though I would lean towards the default allowing it
Imo, the change if implemented should lean to disallowing it by default so that bots and libraries that assumed ephemeral messages couldn't be seen by others don't all break because they couldn't get the change in soon enough (as often happens with API changes)
We would like to add Pincer.
It is a young library written in Python and we want to have it under "Discord Libraries" in "Community Resources".
I don't think this should be added.
- Many forks atm exist since Danny's announcement
- Your library states that it should replace discord.py.. mmh
- It seems like it's not finished yet. A lib should be completely finished and should be more useful as other libs of the same language
This is just my personal opinion tho.
TL;DR: When approximately are we getting Membership Screening integrations?
Hello,
As you all know, Discord has a "Membership Screening" feature which lets you put rules. It also says "coming soon" are short answers, paragraphs, multiple choice, and integrations. The last one is especially important for us developers, as it lets us screen people with our own custom code. AFAIK, these have been "coming soon" for more or less a year. Did Discord just forget about this?
Disco...
Tbh it's already working the last time as I saw the full membership screening in action and that was in the first half of 2021 so..
Yeah what happened to it. Seems like discord focus on other things rn.
I don't think this should be added.
- Many forks atm exist since Danny's announcement
This doesn't look like a fork; is it a fork?
I disagree with @Lulalaby
- This is blatantly not a fork, it appears to be its own standalone project
- Replacing d.py is a good thing. D.py is dead, making something new should not be punished, and instead should be encouraged
- This lib is young, and this is the only point they made that i think has any relevance. Potentially, it should be held off from being added until the lib develops further
Adding this lib to community resources would only encourage use of this lib, and fu...
| communication_disabled_until? | ?ISO8601 timestamp | timestamp of when the time out will be removed; until then, they cannot interact with the server |
table spacing
Probably shouldn't add your library into the resources page if it's incomplete. There's an expectation of completeness within the list and the API is rather vast with many people giving up maintenance before they actually manage to complete it. This happens all the time over at DAPI with people reimplementing libraries.
I had thought "Connections" referred to user profile connections (i.e. Spotify, GitHub, Twitter, etc.) as opposed to some sort of API that Discord applications use to integrate.
Hey there. As one of the main maintainers of the Pincer library, I don't think the library is mature enough to be used in production (since it's in pre-alpha). Many features still have to be implemented.
So I fully agree with @Rapptz.
Once we are at v1 (have most of the API implemented, proper tests, and overall a stable usable library) we should recreate an issue for this. But that moment is not right now, nor is it (probably) in the near future (next 2 months).
@Lulalaby Pi...
Agreeing with @Arthurdw & @Rapptz
or even a CAPTCHA?
They are testing out server captchas atm, on a small amount of servers. Hopefully we see this integrated into member screening.

Since there is more than one possible OAuth2 scope for a bot in a guild, the GUILD_CREATE event should return an array of scopes the bot has been granted in this guild.
https://discord.com/developers/docs/topics/gateway#guild-create
Also Addresses:
https://github.com/discord/discord-api-docs/discussions/3792
https://github.com/discord/discord-api-docs/discussions/3341
https://github.com/discord/discord-api-docs/discussions/3656#discussioncomment-1184424
https://github.com/discord...
Description
i cancel my nitro when the nft hoax was valid but it now fake will discord support give back boost date badge?
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
5e60dda revert the administrator permission change log,... - night
Unfortunately, the event endpoints now seem to be explicitly blocked for bots. :/
@spiralw Is there any extra word about what influenced this choice, and whether it will be retracted?
bots will regain access when/before the feature is considered officially released; they're making breaking changes (they just changed all of the urls today)
Sadly it is not customizable. For example it tells you: do the captcha or leave. I would much prefer the server to be in a read-only state. Also it sends no signal to server owners. Not to mention there's no way to trigger it pragmatically. It is a nice addition and I like it but I am concerned that A) it's not customizable and B) it's not toggleable.
From what I have seen, you cannot mention (specifically roles in my case) by replying to an interaction without giving the Mention @everyone, @here and all roles permission to the @everyone role.
I think this would be a good idea to have added, or perhaps it is a bug? This would allow bots to ping roles by having the above permission attached to one of the roles they have rather than having the @everyone role where anybody can mention any role. It is currently set up like this with norma...
I cant imagine this being the final form of it, they wouldnt force every user to go through a captcha with no ability to disable it.
This has been released publicly now, right?
I believe you can also set this field when creating a guild right? Could you add that as well?
Not sure about guild creation. I tested it but since the feature is in rollout, I can't confirm.
Can confirm you cannot edit this value on guild creation, it simply gets ignored and defaults to false. This is good to go!
This has been released publicly now, right?
Yeah its fully released
Description
When i create a thread from a message and trie to delete the duplicate of this message in the first of the thread it throw "Cannot execute action on a system message"
Steps to Reproduce
get discord.js create a thread with startThread() then delete the first message with bulkDelete
Expected Behavior
delete the first message of the thread
Current Behavior
throwing a error from discord api
Screenshots/Videos
This is intentional behavior, if a thread is created off of a message, that initial message within the thread cannot be deleted. There's no delete button on the client either.
The changelog about default_permissions no longer affecting guild owners/admins was reverted in this commit because it'll be part of the upcoming permission rework. This PR removes a statement about the behavior that was reverted
imo it should mention that admins will be able to use the command and change permissions in the next version, to let devs know that they cannot rely on this behavior continuing
This is out for all guilds now 👀
No ETA yet on when bots will be allowed access to the routes unfortunately.
Oh really? I thought bots already had access to some and the ones they didn’t were on purpose
They used to have access at one point. Discord blocked bot tokens on all the routes awhile ago though. To be fair, it was previously unreleased to all servers so it made sense.
Hopefully we get access soon otherwise my bot is getting killed off.
To clear up some of the confusion here -- the initial access to the endpoints weren't officially supported and not intentional :) As we formalized the work on the events feature and finalized the api we wanted to make sure we didn't thrash everyone with breaking changes so we cleaned up the access to endpoints so we can reopen them once the feature set and api were more stable. The endpoints I posted above will be opened up hopefully today and worst case Monday. We'll get these api docs updat...
@hemu

Is it supposed that any link is rendered?
Is it supposed that any link is rendered?
great question! We're working on changing it to be more restrictive. Good catch @Lulalaby
GUILD_SCHEDULED_EVENT_USER_CREATE and GUILD_SCHEDULED_EVENT_USER_DELETE will be deprecated in the near future so we can remove these
Why isn't discord using the standard RFC 7519 for the access token?
During my OAuth2 Authorization Code flow, if I want to send the users token to one of my backend services I want to be able to validate the token without making an additional api call to discord. Typically this is done by checking the signature/etc and comparing it to the payload to ensure discord was the issuer and it wasn't tampered with. Maybe I'm missing something but I need to validate the access_token on a backend s...
Ahh looking at how the timing currently is between the different pieces of the rollout I might just knock out this docs change directly this weekend to make sure we get this out asap for all of you. And also so we're not putting any pressure on anyone to contribute or review my changes to this on any timeline. Sorry I know ya'll put a ton of work into this, we really appreciate that you're willing to help contribute here. I'll make sure I shout out the contributors from this PR in the other c...
Ahh looking at how the timing currently is between the different pieces of the rollout I might just knock out this docs change directly this weekend to make sure we get this out asap for all of you. And also so we're not putting any pressure on anyone to contribute or review my changes to this on any timeline. Sorry I know ya'll put a ton of work into this, we really appreciate that you're willing to help contribute here. I'll make sure I shout out the contributors from this PR in t...
This is not relevant for bots or our API docs, and is not something we will document.
1e66727 update application commands permission descript... - Suspense4615
This documents an error for a WIP endpoint. As it is still undergoing changes we are not accepting documentation for it.
This documentation edit appears inaccurate. There is not a hard limit, but rather a rate limit.
So events are rolled out now and I think they are a great step for discord. I run a bot that revolves around event scheduling, specifically for MMO guilds.
The event feature discord implemented is nice, but naturally lacks the depth to work for any but the most standard use cases. And that's fine.
The limitation with discord events is that a member can only mark themselves as "Interested", which is not very definitive and lacks further information about any sort of status/role the member ...
IMO, letting bots mark users as interested is too big of an abuse case without being useful; just send an event invite if you want to give users a button to do it
Fwiw the event docs haven't been made yet. The community led PR is not fully accurate and discord has said they will be documenting it soon. Its possible this is already possible, but we won't know until discord finalizes the docs.
(I will edit my comment should this change)
IMO, letting bots mark users as interested is too big of an abuse case without being useful; just send an event invite if you want to give users a button to do it
So events are rolled out now and I think they are a great step for discord. I run a bot that revolves around event scheduling, specifically for MMO guilds.
The event feature discord implemented is nice, but naturally lacks the depth to work for any but the most standard use cases. And that's fine.
The limitation with discord events is that a member can only mark themselves as "Interested", which is not very definitive and lacks further information about any sort of status/role the member ...
bots can delete a users message, change their roles and kick/ban them. Is adding them to an event that has no consequences really an abuse case ? What exactly can be abused ?
Users that are interested get push notifications and pings for events that are started. Rare as it may be, it could be an abuse vector or just mildly annoying.
Yes but bots can already directly ping users. It's not like we have shielded users completely from bots until now. If a bot is acting maliciously it has to be removed or the relevant permissions disabled. Push notifications have their own granularity and if a user doesn't want to receive them for events, the user should be able to turn that off. If the user does want to receive them but a bot is adding the user maliciously to events, then the bot needs to be removed/permission revoked.
As...
you should be doing the token exchange on your backend. if you do that, I don't see any way that it could be tampered or not received from Discord. (unless different parts of your backend don't trust each other, but I'm not sure what to suggest at that point)
Hello there! I am wondering whether discord will support receiving scheduled events created in a discord guild (maybe “GUILD_EVENT_CREATE”) in raw JSON form and then using it to do anything with the data. Like, For example: we can post a message in a channel in the community where it is happening about the upcoming event. Or, we can edit that message to check how many people are interested in that event.
There is an active PR to document the endpoints and related API. #3586
I started running into this issue ever since, the 10th of October, and I resolved this issue by changing the user agent of the post request to the api to just "myBot" as I was using a "bot apiKey" as my authorization.
Description
On mobile, selecting
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
Setting guild event cover photo needs to also be documented. Shown here in the tweet https://twitter.com/discord/status/1459581944828768256
Event covers are not available client side atm. I'm not sure if it's already API side active

visual representation of what i meant.
works in description, not in footer
yep, but i cant format the timestamp in the timestamp field
can only use discord.utils.utcnow which acts gives default format: today/yesterday/etc at x time
Any update as to when bots will have access? Feature seems to be rolled out but the endpoint still denies bots. :/
I think this is the only major markdown lacking support in Discord. While it's tough to implement it would be great to have it. Because right now there are no good ways to display a table (e.g. ASCII - problems on mobile devices, fields - tough formatting).
Because its supposed to be a ISO8601 timestamp.
| sku_ids | [guild scheduled event](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object) | array of snowflakes | the SKUs of a guild scheduled event was changed |
| channel_id | ?snowflake | the channel ID of the scheduled event |
| channel_id | snowflake | the channel ID of the scheduled event, if for a stage instance of voice channel |
| guild_scheduled_event? | [Guild Scheduled Event](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object) | guild scheduled event data, only included if `guild_scheduled_event_id` contains a valid guild scheduled event ID |
| sku_ids | array of snowflakes | SKU IDs |
After a few days of frustrations I realized I forgot to pass a redirect_uri to /authorize. Interestingly enough the auth flow otherwise appeared to be working so I guess the undocumented behavior is it will default to your first supplied redirect_uri in the app settings but return an invalid auth code.
Event covers are not available client side atm. I'm not sure if it's already API side active
@Lulalaby I would wager it is definitely available API-site if the mobile app clients have the front-end for it. Cover photos would probably be rolled out to desktop clients this week.
@hemu Could you chime in?
As Jup said, they are not.
They are internally locked to staff?
We have to wait, but I already opened a pr into this pr.
https://github.com/apacheli/discord-api-docs/pull/1
@Jupith Try to set the user-agent to a mobile client and see if that does the trick. It puzzled me how you are even able to access the endpoint if it is blocked for bots.
Probably on monday
It is already monday here, in Hong Kong.
@Jupith Try to set the user-agent to a mobile client and see if that does the trick. It puzzled me how you are even able to access the endpoint if it is blocked for bots.
Don't do that, its unnecessary and won't work. The scheduled events APIs are blocked to bots until the docs for it are officially pushed out (I believe Monday the 15th is when that's happening). Till then, the datamining here is somewhat pointless. ddevs have already said they are working on docs and documenting everyth...
There is no datamining involved here. Discord have shown cover photos in an official announcement. It is officially announced not a datamine.
@NovaFox161 The API is not blocked for bots anymore as @Jupith was able to use it.
@Lulalaby Kindly explain how @Jupith was able to make a request in the screenshot commented above.
Jup didn't used a bot
Bots still can't access it.
Don't assume things you don't know for sure.

@Jupith I had gave Jupith the benefit of the doubt as I had a feeling he/she/them selfbotted which is against the TOS.
@Jupith I had gave Jupith the benefit of the doubt as I had a feeling he/she/them selfbotted which is against the TOS.
He hasn't done any self-botting iirc.
Furthermore it is non of your business.
You joined github this month and are causing drama here.
@Jupith I had gave Jupith the benefit of the doubt as I had a feeling he/she/them selfbotted which is against the TOS.
He hasn't done any self-botting iirc.
Furthermore it is non of your business.
You joined github this month and are causing drama here.
_Originally posted by @Lulalaby in https://github.com/discord/discord-api-docs/issues/3586#issuecomment-968360995_
That is called selfbot using user token.
Please do not spread off topic conversations on PRs to other issues.
Hi everyone,
Now that it's been a few minutes for everyone to cool down I'm going to re-open this. The discussion of the past few posts isn't relevant to the topic or to this repo. Please keep discussion on topic.
Thanks
@zeylahellyer Can you confirm if the cover photo is will be added to desktop clients?
@dtrm-thil I guess she can not. She is not responsible for this.
This is a topic for hemu.
Please stop this :/
We try to work here in this pr.
Furthermore is this here for the api, means for the bots.
Not a place to ask for client things.
You can ask at https://dis.gd/support if you want
###### Guild Scheduled Event User Add Event Fields
Description
When archiving a thread channel, discord will send one THREAD_UPDATE event. However when unarhiving the same thread it will send two THREAD_UPDATE events.
Steps to Reproduce
- Create a thread
- Archive the thread
- Unarchive the thread
Expected Behavior
Ideally the inverse operation (unarchive) would have a symmetric response whether that be two responses for each unarchive/archive, or one event for each.
Current Behavior
...
| GUILD_ONLY | 2 | the guild scheduled event is only accessible to guild members |
all of the existing id descriptions use lowercase "id"
these descriptions should be more descriptive
this description doesn't make much sense
all of the existing id descriptions use lowercase "id"
@hemu could you give a little explanation what SKUs has to do with events.
Iirc the word comes from the store pages with the SKUs. Why does event has SKUs.
What could they be.
Is it i.e. something like a feature related to stage event tickets?
| Field | Type |
| ------------- | ---------------------------------------------------------------------------------------------------------------- |
| users | array of [user](#DOCS_RESOURCES_USER/user-object) objects with an optional `guild_member` property for each user |
Description
Steps to Reproduce
- Fill out details of a slash command that has a string parameter with autocomplete
- Try to copy or cut the command, then paste it into the command bar
- Any parameters after the autocomplete will get absorbed into the autocomplete one, as if you entered it all into the autocomplete parameter.
Expected Behavior
You should be able to copy and paste slash commands and have them stay in their exact form, similar to how it w...
all of the existing id descriptions use lowercase "id"
well...

that table might be an exception, but its typically lowercase (see guild, channel, emoji, invite, etc)
Embeds already have a width problem from my experience, this would reduce the available width to them even further.
I agree that the positioning isn't very good though.
In general, it's visually not very appealing to have an already existing message grow updards. Instead, maybe it would make more sense to move the "edited" hint underneath the embed, before the reactions appear.
A message growing downwards is already something that happens regularly within Discord when users add reactio...
is there any problem if i open a pr to change id to uppercase?
Does this not support the with_user_count query param like the List endpoint?
| Field | Type | Description |
| ---------------- | ------- | ---------------------------------------------------------------- |
| with_user_count? | boolean | whether to include the `user_count` field in the returned events |
'Report' is an excellent tool for people who have been scammed or caught in pornography to defend themselves. However, there has been an increase in the number of cases where these tools have been misused.
For example, we have witnessed people using self-bots to report specific users/servers in large numbers, and then temporarily ban the users/servers, or sell them as "Discord server ban acting".
In fact, my friend user was banned by the tool. Also, "If your server has
(for example: us...
We started rolling out opening up the scheduled events endpoints for bots. We'll make a formal announcement in Discord Devs later today. We'll get this PR finalized and merged in today. Also will answer the other questions posted here in a bit :)
duplicate of #3973
3972 seems to be about the name/value problem with autocomplete. Seemed a bit different but if that's all part of the same issue, my bad
There is an active PR to document the endpoints and related API. #3586
with_user_count query param is not supported by this endpoint currently but we can look into getting this added so we stay consistent with the other endpoint. Good call out.
@hemu could you give a little explanation what SKUs has to do with scheduled events. Iirc the word comes from the store pages with the SKUs. Why does a scheduled event has SKUs. What could they be. Is it i.e. something like a feature related to stage event tickets?
good question! you are right, the sku related fields were part of the older iteration when we used to have ticketed events. We don't use these for the current iteration of the scheduled events feature so I was going to leave...
Okay thanks for the explanation.
@hemu another question.
Regarding audit log change keys.
Does the scheduled start/end show up in the API too for the audit log?
If so what is the type of the value?
@hemu another question. Regarding audit log change keys. Does the scheduled start/end show up in the API too for the audit log? If so what is the type of the value?
the start time and end time are not currently included in the audit log but this is on our TODO list. We can update the docs later on after we make the change on our end
I did a pr a while ago to this pr.
Isn't merged, should I close it?
https://github.com/apacheli/discord-api-docs/pull/1
d56be86 Add 'rate_limit_per_user' to thread creation en... - ajpalkovic
Seems fine for consistency reasons
| channel_id | snowflake | the channel ID of the scheduled event, required if [entity_type](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object-guild-scheduled-event-entity-types) is `STAGE_INSTANCE` or `VOICE`
Line 134 has a missing space for the end of user which appears like it can generate documentation issues, looking at the other examples. I suggest adding a space.
| guild_scheduled_event? | [guild scheduled event](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object) object | guild scheduled event data, only included if `guild_scheduled_event_id` contains a valid guild scheduled event ID |
I did a pr a while ago to this pr. Isn't merged, should I close it? apacheli#1
Wanted to double check what the final decision on images was today before responding on this thread re. images. We currently won't be supporting images for this initial launch. I'm going to remove all mentions of images from the docs so that they can be re-added later if support for images is added.
Thanks for submitting this change, I think we can hold...
I'm gonna close it for now then.
I'm not sure about this..
Let discord decide it
@hemu docs contributor badge when xD joking
Yeah, that was good work.
Thanks hemu to work with us together on that.
That was amazing <3
@hemu docs contributor badge when xD joking
Yeah, that was good work. Thanks hemu to work with us together on that. That was amazing <3
thank you for being so involved and helping document this :)
1298152 Document Guild Scheduled Event structure and HT... - apacheli
Unwanted Changes
- Whitespace or formatting changes.
Hi, thanks for the PR. As was mentioned this is a formatting change. We don't currently have plans to enforce standards like this on specific abbreviations.
@hemu bots are still not able to use the events api right?
Update: They're now used for time outs (native mute feature)

@hemu I think this should be merged now (and are there other error codes for events?)
There’s also Cannot update a finished event, 180000
also has the api been fixed so i can create 100 rather than 99 events?
@Lulalaby I also still cannot use a bot to interact with these endpoints. Previously I was getting an error message saying something like 'Not supported', because at that time bots were blocked. However @hemu announced that was lifted a little bit ago, only now the error has slightly changed to 'Missing access'.
Any advice?
No it's still blocked.
They have to fix a few things and going to release it today or latest tomorrow.
@Lulalaby Thank you for the update 👍
You can use the api with bots just now if you send the x-super-properties header
You can use the api with bots just now if you send the x-super-properties header
I don't think this is true...
You can use the api with bots just now if you send the x-super-properties header
I don't think this is true...
It is true! @hemu - there looks to be some experiment gating based on client version in the x-super-properties header that is causing these woes.
You can use the api with bots just now if you send the x-super-properties header
I don't think this is true...
It is true! @hemu - there looks to be some experiment gating based on client version in the x-super-properties header that is causing these woes.
Yep we've been debugging this to pinpoint the best way to fix this without breaking the experiment. It's def the experiment gating.
You can use the api with bots just now if you send the x-super-prope...
Guess we shouldn't be relying on this information anymore :(
Hoping that this gets some more attention, would love to see what others think
this should be fixed now. sorry about the additional headaches. still awesome that ya'll figured out the X-Super-Properties header workaround
I think tables would be nice too, but what do you do on smaller screens with too little horizontal space?
They definitely won't add a horizontal scroll bar to the chat section
As the title is named, this documents the character limits in specific text fields for guild events. The ones in particular are name, description and location.
Probably the same thing that is done with an embed field: downscale according to the aspect ratio of the screen resolution, and wrap the text contents to the new margins of the field.
Just to expand on this thought: what if it's generalised to min and max so you could have also have #3286 considered for this. What if we want a minimum amount of users selected? Or only limit to a maximum amount of channels referenced?
Description
The status field on scheduled event is always set to 1 (scheduled) in GUILD_SCHEDULED_EVENT_DELETE
Steps to Reproduce
- Create a scheduled event
- Cancel it. (More > Cancel Event)
- Observe the
GUILD_SCHEDULED_EVENT_DELETEevent.
Expected Behavior
The status field should be 4 (cancelled)
Current Behavior
It is 1 (scheduled)
Screenshots/Videos
No response.
Client and System Information
Canary 104918 (302022...
Shared structure of both text and news guild channels.
Shared structure for category and store channels; both do not allow sending any messages or connecting over VoIP.
Shared structure for public, private, and announcement threads.
###### Group DM Channel
Also, worth considering whether this still needs to be documented.
I agree - but I did not want to do any other changes than required to split up the channel object.
GW group channels are still accessible to bots, so I don't see why it would be removed from the docs :shrug:
We have no current plans to offer custom colors for buttons. This ensures a consistent design experience for users across our apps.
What about adding more colors though, Something like a warning color (yellow) could be useful.
I made a Discord Version of UNO, where each card is a button, because of this limitation yellow cards are currently gray
This has been a contentious issue for a while, since at least the introduction of news/announcement channels. It would be nice to have more rigorous definitions, but I think documenting them would require Discord to first internally move away from a monolithic channel type.
I currently have channels split into different types, but my rewrite (stuck in development hell) uses a single channel type because there are no separate types according to Discord.
This has been a contentious issue for a while, since at least the introduction of news/announcement channels. It would be nice to have more rigorous definitions, but I think documenting them would require Discord to first internally move away from a monolithic channel type.
Not necessarily though. I guess you can compare it to how according to Linux everything is a file, that's the way Discord views channels.
I think documentation can go a long way - technically these separated objects ha...
This change would diverge from other documentation however. For example, interactions have a single structure documented. Yet some of those fields can only be present on certain interaction types being received (eg: target_id).
If this PR were to be approved, would changing other object documentation be needed to distinguish the "types" like done for channels?
Voice channels receiving text support means that these models should not be taken as concrete. Documenting them this way is helpful for some people but also very misleading. Optional fields like last_message_id are still to be treated as optional on all relevant subtypes (i.e it should be optional for text channels!).
Multiple discord developers have mentioned that discord only uses the base channel model and that the documentation right now is all they guarantee: this means that we...
If this PR were to be approved, would changing other object documentation be needed to distinguish the "types" like done for channels?
As the author I can't say whether this is approved or not, but to clarify: That's a great place to look next, but not as "needed" as I find this PR (the channel object is on the extreme end; in its current state the interaction object is still somewhat readable). That said, as Discord will most likely add more fields and expand on interactions I think that'...
My account was disabled. Soo sad😭
I did a pr a while ago to this pr. Isn't merged, should I close it? apacheli#1
Wanted to double check what the final decision on images was today before responding on this thread re. images. We currently won't be supporting images for this initial launch. I'm going to remove all mentions of images from the docs so that they can be re-added later if support for images is added.
Thanks for submitting this change, I think w...
your twitter team in dms is telling me I can add a cover photo to scheduled events. you shall inform he/she/them that is it incorrect.
your twitter team in dms is telling me I can add a cover photo to scheduled events. you shall inform he/she/them that is it incorrect.
I say it one last time: please leave me alone.
I'm no staff and I don't even know which "twitter team" you are talking about
Voice channels receiving text support means that these models should not be taken as concrete. Documenting them this way is helpful for some people but also very misleading. Optional fields like
last_message_idare still to be treated as optional on all relevant subtypes (i.e it should be optional for text channels!).Multiple discord developers have mentioned that discord only uses the base channel model and that the documentation right now is all they guarantee: this means tha...
@discord Mind closing off the comments? Thanks.
Apparently there's going to be a rewrite of these docs at some unspecified point, and then these models might be split similarly to what you've done. To be clear: pragmatically speaking that field I mention will never not be sent on v9 as far as we're aware, but these docs are also a get out jail free for discord so-to-speak. If they clarify what fields are relevant then I would stand corrected, this is based on the fact they only internally deal with one channel type.
@Lulalaby Your agresive commentary is not welcomed here. I was checkingin with @hemu due to the social medias team claiming you can add cover photos Which is false. Your deleted comment was still emailed to me.
the discord api admins are not able to unban accounts. you shall create support ticket in the panel about account ban.
c436af9 Remove speaker_ids from scheduled event metadat... - Lulalaby
This is already a separate suggestion: https://github.com/discord/discord-api-docs/discussions/3336
we need something like they did with threads...
- limited amount of members
- access to beta features
- access to boosted features (private threads)
I am also a victim of this Report tool. I hope this suggestion will reach the Discord soon.
Reports are done through the support site, not the API, and reports do not auto-ban users.
For platform feedback go to https://dis.gd/feedback
I believe I'm using a non-public endpoint to report (for proof, search for Discord Mass Report Bot on GitHub and you'll find one).
I suggest to add emoji option for the slash commands. Especially with emoji picker.
#3330 / #3617 (and #3946)
Changing the voice state to muted should work in a way that i dont get the channels voice anymore via udp. for some reason their is a chance i still receive everything said in the voice channel clearly. I think this should be changed
oh can we remove speaker_ids, I think this is removed on master. might just need to pull latest and rebase
docs/resources/Guild.md Warning: Anchor channel-object-channel-structure does not exist on DOCS_RESOURCES_CHANNEL
I actually don't understand why the linting is failing, there's still a channel-structure header below channel-object.
docs/Change_Log.md Warning: Anchor channel-object-example-channel-category does not exist on DOCS_RESOURCES_CHANNEL
The header changed from channel-object -> example-channel-category to channel-object -> `ex...
Currently there's no way to make working pinging mentions in embeds. They get formatted properly, but member data isn't gathered so people won't get pinged.
Bots use embeds more and more, and embeds make for a great design-choice of sending out bot responses and event notifications.
Even a new way of embedding pingable mentions could easily work, so the current usage of embedded mentions don't break.
For example
ping disabled ping enabled

> The `with_user_count` query param was introduced on Thursday Nov 18, 2021 after the initial publication of this documentation to remain consitent with other guild scheduled events endpoints
Referring to fields/properties should respect markdown syntax
The following table shows field requirements based on current entity type.
`value` : This field is required to be a non-null value
"Non-null" can appear a little too enticing to a reader at first. Simplifying the wording to simply "value" is way easier to comprehend, as a majority or if not any developer will ideally know what is a null and what is not.
| Type | channel_id | entity_metadata | scheduled_end_time |
| -------------- | ---------- | --------------- | ------------------ |
| STAGE_INSTANCE | value | null | - |
| VOICE | value | null | - |
| EXTERNAL | null | value * | value |
Appropriating the difference here with "value" now instead of "non-null." For ease of reference, we've also already establish...
\* `entity_metadata` with a written `location` must be provided
this might be the one place where it's still good to keep the strict non-null terminology especially since it's outside of the table
I think the same. We should keep that here

Like this, It would be good if there's light theme option in developers portal.
For some users, Light theme is better than Dark theme.
Hemu, could we get an ETA when this breaking changes will be merged into the API?
Bump. I need to count how active a user was in the server, and counting all messages for this is too expensive.
Hemu, could we get an ETA when this breaking changes will be merged into the API?
if everything goes well we're aiming to get this out later today
| channel_id * | ?snowflake | the channel id of the scheduled event, set to `null` if changing entity type to `EXTERNAL` |
Clarify the value is nullable, not just optional.
\* There are some required properties if updating `entity_type` to `EXTERNAL`. `channel_id` [must be set to null](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object-field-requirements-by-entity-type). A `location` must be provided in the entity_metadata. A `scheduled_end_time` is required to be set.
Would be nice to mention here that when changing to External location and end time is required alongside channel_id must be null. This is because right...
This is a breaking change. It should be noted that this is going from a "not required" to a "required null" option for External events. This isn't a huge issue but imo if possible it is cleaner to support undefined on the CREATE endpoint.
going to merge this in soon and push the api changes live
84f3290 Add breaking change to guild scheduled events a... - hemu
just seeing this, will double check this a bit later and merge this in ty
@hemu I think this should be merged now (and are there other error codes for events?)
this was missed, good callout. we'll take a pass and get them documented
are there any other error codes?
I just had to revert the very neat and clean looking embeds above, to this;

I'm sorry you all have to see this, it could've been avoided if pinging mentions were allowed though.
I can reproduce it.
I've already reported it to @hemu.
[discord/discord-api-docs] Issue opened: #4116 Using the Api to deaf a bot does not work as expected
Description
When using the Api to change the voice state of a bot account to deafed the bot gets the little deafed sign in the client but reading of the udp socket makes it possible to still listen to all the voice in the channel.
Steps to Reproduce
Connect to a voice channel with "self_deaf": false the way you do for listening to voice. Send a Gateway Voice State Update with "self_deaf": true. Read of the udp socket and decode it using opus. Everything said while the...
Facing the same issue, and it's not working on any channel. (even though some of them only have 4-5 invites)
Thanks
168d8a7 Add scheduled events opcodes and rename READ_ME... - hemu
As a large invite tracking bot owner, I'm receiving recently a very large amount of complaints about the max invites issue.
I've digged a bit and it seems that a server can now have up to 1000 invite codes only. Before, the only limit was 1000 per channels.
Is this new limit part of the fix in that issue linked below ? https://github.com/discord/discord-api-docs/issues/3192
Does this limit change was planned or is it just an unwanted consequence of the patch?
If this change is definitive...
410cbba Add scheduled events opcodes and rename READ_ME... - hemu
The avatar_url and the username properties are ignored when creating a folloup response to interactions.
nitpick:
Create a followup message for an Interaction. Functions the same as [Execute Webhook](#DOCS_RESOURCES_WEBHOOK/execute-webhook), but `wait` is always true, and `flags` can be set to `64` in the body to send an ephemeral message. The `thread_id` query parameter and `avatar_url` and `username` Form Params are not required (and furthermore ignored) when using this endpoint for interaction followups.
With the introduction of In-app Authorization, it's now possible to add a bot through a popup within Discord. From what I've gathered in the network tab, the "Add to server" button uses the OAuth2 URL. It'd be awesome if we could add this OAuth2 URL to buttons or directly in chat to have the popup appear when we click on it.
A good example would be how we can redirect users to other channels by using `` or https://discord.com/channels/{guild_id}/{channel_id}.
oauth2 urls already open in-app, except for on android which is a bug.
oauth2 urls already open in-app, except for on android which is a bug.
It still redirects me to the website on the desktop app.
I have a discord.com/api/oauth2 url and it works fine
I've found the problem. It's when you add versioning to the URL. It'll only work without specifying an API version.
api accepts end timestamps up to 28 days in the future
| Field | Type | Description | Permission |
| ---------------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------- | ---------------- |
| nick ...
Really? It would be nice if they don't set any limits. If you don't mind, can I ask the source of that please?
@Raiden-Ei You will get more informations on this soon enough.
This is not released.
Related: #4041
It would by good if there are some external message on 500 or 503 like:
Interaction failed.
The application is unavailable.
From application:("message" key of json, if there is)
Please try again at (Calculated time from Retry-After header, if there is)
| Code | Message |
|---|---|
| 500 | There was an error in the application. |
| 503 | The application is unavailable. |
If there are some for 4xx code, it would be cool:
| Code | Message |
| ---- |...
Add stage to channel types. Would especially help when working with events API.
This is a client and API feature request, Before you send me off to /feedback though, this is a request for a more interoperable API for bots specifically, that the client would end up supporting. Basically it would exist in a tier similar to interactions, completely designed from the ground up (in this case, a majority of the API design being done already) for bots that the client then implements.
Now that that's out of the way....
Huge shoutouts to @andyearnshaw for inspiring this
...
I wouldn't mind this necessarily, however the old functionality definitely needs to be kept intact. (We do have allowed_mentions which could very well be used for this btw)
I would like to mention that mentions - ha - in embeds were never truly supported, whether the mention resolves is luck of the draw, and mobile users rarely, if ever, see all mentions in an embed as resolved due to their more limited cache sizes.
So, I propose this:
- Short term: add mentions to embeds
- Long term:...
Yea, just found it, apparently DiscordGo doesn't have support for it yet
New events indicator
(This is more like a client feature request)
Now after guild events have been released there are more and more events. This morning I asked for a stream/event and was told there's already an event and i got annoyed that there's no more obvious way of seeing if there's a new event in a guild.
So I've come up with an idea:

Why not display a ping like in...
Yep, completely agree with keeping the current usage and functionality working as is. The proposed way of adding % to the mention code would allow to specifically ping certain roles, while only parsing but not pinging others.
To prevent stress of bulk presence updates caused by bot users, I propose the presence data for applications (including bots and webhooks) to be synthesised as follows:
- Online: Gateway connected + more than 100 successful requests in the last minute
- Do not disturb: Gateway connected + more than 20 failed requests in the last minute
- Idle: (Gateway connected + less than 100 successful requests in the last minute) or (more than 20 successful webhook interactions in the last minute)
*...
That sounds it would incentivize bot operators to keep doing pointless requests simply to avoid their bot being downgraded to "idle".
If you really wanted to prevent users from stalling their bots by doing pointless presence updates, you could at least make it binary.
- Online/No presence like webhook bots: Webhook ping satisfied/Gateway connected
- Offline: Above condition not met
I think there's a reasonable argument to be made for at least allowing gateway bots the no-presence presence like how webhook bots are shown, but setting arbitrary requirements will just incentivise API abuse.
This really just seems like an unnecessary proposal encouraging developers to spam the API for a green icon instead of a yellow one.
Forcing people to send requests is an inaccurate way of representing the bots actual status (some bots only exist to forward events onto other platforms or respond to a few events (think reaction roles or ticket tools), not even getting close to reaching the 100 request requirement per minute.
If you think of the bot's status as a traffic lights style indicator for its health, the proposed four-way distinction (full service/broken/degraded service/no service or unknown) will make sense, albeit precise values of these thresholds might be different in an actual implementation.
If you think of the bot's presence status as a traffic lights style indicator for its health
I think the crux of everyone's issue here is that this is not what the indicator is for.
Requiring something like N requests/minute puts way more strain in everyone. Some bots are small and even some large bots may not have anywhere close to that many requests (as mentioned several times above). I'd argue that forcing an arbitrary request count would cause more stain than that of a bot updating it's status.
And this isn't even mentioning the fact that the vast vast majority of the status update throughput is from users. Bots make up a negligible amount of that compared to the ...
I'd argue that forcing an arbitrary request count would cause more stain than that of a bot updating it's status.
Nothing forces you to do that. Yellow light indicator does not mean the bot is not working.
This idea would probably lead to even more presence updates.
Most bots don't change their status much. If the status is an indicator like this, it would change much more often.
Presences already have semantic meaning to users. Giving them an alternative meaning like this is confusing to users, as a bot being "Idle" or "Do not Disturb" is meaningless.
Currently looks like this:

Description
Embeds with the same url do not get sent after the first. I haven't tested this with webhooks.
Steps to Reproduce
Set the same url value on multiple embeds.
Expected Behavior
All embeds are sent.
Current Behavior
Only 1 embed is sent.
Screenshots/Videos
https://user-images.githubusercontent.com/60681223/142748263-a6edb5c2-f971-4a91-be61-5705d2ddb846.mov
Client and System Information
Canary 105617 (aa6d87b)
Ptb 105608 (de4ad93)
...
This is because of the way embeds with multiple images are processed -- all embeds with the same url following the first one have their images rendered in the first embed. You can add a random url fragment at the end of each url to prevent this.
As it stands right now, when you screw up a request, one of two responses is bound to hit you:
- 404
- The dreaded 400
And while, under normal circumstances, this is fine, this rationale cannot be so easily translated to interactions, though, this discussion does to some extent target the API as a whole.
When it comes to interactions specically, there's one of two reasons that your request can error out.
First, I'm sure we're all aware of the 3 second window when it comes to res...
can I ask the source of that please
getting the error and then trying timestamps until i found the limit
Personally I'd be happy with additional Discord status codes to go with the normal 404, as that wouldn't be breaking, and could have some descriptive text so we can see what actually went wrong. Of course this is possible in tangent with this discussion
It's not yet fixed, why is this issue closed?
This is a 2 year old issue, if you're having similar issues that must be an unrelated bug.
I've been trying to make a two column layout for the past 3 days and it always looks weird.
Yes, you can use
{
name: '\u200B',
value: '\u200B',
inline: true
}
BUT, it will still render an empty space either after or below.
Here we're trying to make a two column layout and A, B, C, D set to inline: true
Here's what it'll look like
Space field inline: true
AAA BBB ___
CCCC DDDD
Space field inline: false
AAAA BBBB
CCCC DDDD
**What...
There is no current way to do that without putting a spacing field in (name and content being zero width spaces)
Embed styling is more of a loose suggestion, the client will always build it differently depending on screensize. But, mobile tends to just treat every field like inline=false even if there is room and inline is true.
I've peronally resorted to using the spacing field trick or figuring out what content would look good alone
So, for example
AAAA BBBB- true true
CCCCCCCC...
Yeah, this is exactly what I outlined above and imo doesn't look that good as it has a humongous space between the first and second row.
Yeah, I'm not sure if discord is going to change it anytime soon. I mean, mobile doesn't even respect the inline field at all even if there's plenty of room on the screen.
I was reading discussions from 2019 & 2020, so yeah it's not a new problem. It's already a grid-based system, and they set the width by grid-column-start & grid-column-end so it should be fairly straight forward to implement like a wantedColWidth: number or a forceNewInlineRow: boolean.

Application Command tags in messages
Short description
This could be a tag like @ or # mentions or dates where you can click it to see a full command including already filled out arguments.
This could be used by developers to provide support with their commands by sending sample commands and in bots to show how a command can be used or frequently used configurations (with filled out arguments).

Current Behavior
Headers
Alt-Svc: h3=":443"; ma=86400, h3-29=&qu...
Are you appending /github to the end of the webhook URL?
https://gist.github.com/jagrosh/5b1761213e33fc5b54ec7f6379034a22
I had not been! I missed that, I guess :)
That said, I did so, and then redelivered the event, and while now I get HTTP 204, I'm still not seeing the messages in my channel. So, clearly I'm still missing something.
Sounds like a duplicate of #3233
Usernames and non-default avatars always constitute personal information, and discriminators also constitute personal information when combined with username and/or user avatar. Hence, bots should be restricted from querying those data of users that they do not share mutual guilds. This intent should be made privileged. This can be merged to guild members intent, or can be made separate.
Users can be idle or dnd and nobody thinks they just simply don't work as a person
sounds almost as stupid as your original message
merhaba hocam ben de sizin gibi bir bot geliştiricisi ve turk'üm. İnsanlara her zaman bot yapmayı teklif ediyorum ama onlar hep benim kötü olduğumu düşünüyorlar. sizin gibiler biz namuslu türklere kötü bir isim veriyorsunuz. dizlerimin üstüne çökeceğim ve durman için yalvaracağım.
would be very api heavy
Well apparently it's not that API heavy because Discord itself sends a separate Guild_create event for every guild as it becomes "available" while you're booting up your bot, so it's okay to request per guild, you should do it in the guild_create event on your bot startup.
https://discord.com/developers/docs/topics/gateway#guild-create
In addition to creating missing commands I suggest you also implement an equals method for commands to compare if your local c...
#3586 seemed to miss the guild_scheduled_events field sent during GUILD_CREATE. This PR documents it.
This is still WIP. I think it is not accidentally.
Although I completely disagree with the suggestion, the only way this would make sense (for privacy's sake) is to attach this behavior to the MESSAGE_CONTENT privileged intent.
But, as I stated earlier, I don't like this proposal in the slightest as it will bring a lot more cons than improvements.
Discord added a permission for managing guild time outs

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 MODERATE_MEMBERS = 1n << 40n
Deferred messages don't ping on follow up
I've been toying around with interactions and am really starting to like them.
I got to this one issue though where when I have to defer a message (for a file upload or something in the backend to process before responding) I would like to ping a user specified by the author.
Currently the docs say:
The allowed_mentions field of the edit request controls how this happens. If there is no explicit allowed_mentions in the edit request, the ...
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)
already planned on adding this
Description
Components with an custom_id which won't be handled by a bot doesn't tell that it errors.
Instead it's silently suppressed.
Steps to Reproduce
Send a button and let the bot don't handle the interaction of this button.
Expected Behavior
The client should tell the user that the interaction failed.
Current Behavior
Client silent suppresses the failing interaction.
Screenshots/Videos
 it counts against this Bots global ratelimit even tho this route works perfectly fine without the authorization header token.
Steps to Reproduce
- Make an interaction and do a request to /interactions/:ID/callback with your Bot token in the headers (this time it counted against the bots global ratelimit but since...
Not having read through the whole thread, there's definitely some overlap, but I don't think simply forcing a new line will go far enough. I'd much rather have direct access to the width of the columns.
Say you want to make a 70 / 30 two column layout, or a 50 / 25 / 25 three column layout.
Forcing a new line won't work for that.
Ideally there'd also be options for making the embed layouts work on mobile, instead of everything just being forced single column which looks kinda silly on ...
Note: This is work-in-progress and written by the notes of https://devsnek.notion.site/devsnek/Modal-aka-Form-Interactions-e839b3dd8c214eb08f950764a8328e36
And why this is not json
"type": 4,
"style": 1,
"custom_id": "input_1",
"label": "What is Your Name?",
"placeholder": "Reveal your secrets",
"min_length": 1,
"max_length": 64
Copy-paste oversight with the description?
- `input_text` must be sent inside an Action Row
- An Action Row can exactly 1 `input_text` components
Latest Q&A (summary here) the developers mentioned they will be doing a pass to make the errors received on interactions more user friendly. No word on when that will be but I'm glad to see that they are aware of it and intent to address it.
oh i see how your request is different, my bad
thanks! will leave this PR open for now and come back after finalizing support for this field
A hackweek project was made that improved the whole dev portal, including a light theme
https://github.com/IanMitchell/hackweek-discord-api-docs
If you are looking for input ideas to add you can add date inputs, number inputs, image inputs, color inputs, and range inputs 🔥
why not? light theme is an accessibility feature. if you don't want to use it then don't toggle it
I own a subdomain .ddns.net and have a TLS/SSL certificate by letsencrypt.
The webpage at that address is a normal html site, which has opengraph meta tags. I have put all the same tags as I did on my github pages site (gxlg.github.io/index.html).
The difference: sending the github link to discord shows the expected embed, my ddns site link - not.
Additional information:
I host the page using node.js and https module.
When logging the requests, I can see, that discordbot2.0 visits ...
I also see this as a security flaw and data protection problem. This should really be adressed. If someone wants code to reproduce ask me on discord TM#5784
This has been a known issue since 2015, at this point I don't expect it to get addressed.
- An Action Row can have exactly 1 `input_text` component
Description
When you try to disable the system flag, it doesn't let you save which is a client bug. However, if you save it by refreshing the client, it doesn't log the change in the Audit Logs (on API side). The flag also turns itself back on randomly, which is also an API bug.
Steps to Reproduce
Turn on the system channel flag.
Expected Behavior
The client lets you save and it shows in the audit logs of the server. And the API does not change it ba...
Description
When you delete components on a message by making a PATCH request with {"components": []} the components get removed temporarily in the client by the resulting event. This however is currently not being reflected by the responses on GET history and GET message, which results in buttons reappearing after a refresh.
Steps to Reproduce
- Send a POST request with buttons in it.
- Send a PATCH request to update that message with
{"components": []}, t...
[discord/discord-api-docs] New comment on issue #2446: Misleading type information on embed provider
I'm implementing my own website to play video's. The embed provider name is taken from the og:site_name meta property. However, the embed provider url isn't present (so the issue is fixed indeed), but I want to know how to set it.
Is it taken from some metadata in the HTML document or will it only appear for some providers, like YouTube and Twitch?
If it is the last case, where can I register my provider to have an embed provider URL too?
This bug is reproducable with any bot that removes buttons on a message edit and with any Discord client (both mobile and desktop).
Just let the bot remove the buttons in the message edit and then restart the client and you should see the issue in all its glory.
[discord/discord-api-docs] New comment on issue #2446: Misleading type information on embed provider
I found out. It can be set using oEmbed (https://oembed.com/).
@Suspense4615 they were probably just memeing but yes
I have tried to remove my buttons/components, it still exists, it's a bug that needs to be fixed.
Having it default to false means older code doesn't experience a delta of input/output this this feature. By forcing devs to "opt in", you preserve backwards compatibility more. My general preference for these sorts of things is to prefer backwards compatible changes.
ok we will officially support this field being sent as part of GUILD_CREATE, going to merge this in
d4b823f Document guild_scheduled_events on guild object... - nerdguyahmad
9c7f4be update change log for guild_scheduled_events fi... - hemu
update change log and very minor rewording
e230f40 update change log for guild_scheduled_events fi... - hemu
Is this new limit part
Its not a new limit, its just sort of more enforced than before.
limit is way too small for large discord servers.
Why not just use a vanity? Yeah you need the boosts, but any server large enough to have over 1k invites is almost definetly gonna have a vanity
[discord/discord-api-docs] New comment on issue #2352: Can't respond to an interaction with gateways
@DelxHQ try deferring
https://github.com/discordjs/discord.js/issues/7005#issuecomment-977327325
my responses were <1s, so idk why this would change anything but it got rid of the warnings for me.
[discord/discord-api-docs] New comment on issue #2352: Can't respond to an interaction with gateways
@philipaarseth I tried deferring and nothing changed. The issue fixed it's self a while ago.
Sending full objects instead of guild_scheduled_event_id and user_id will be really helpful in the above two experimental events.
I don't think they'll ever implement this as developers seeking to use it are all using it for one purpose: bridging chats with competing chat apps.
Better forget about it ;)
Adds the missing guild_scheduled_events field to the audit log object.
Trying to bridge it so my friends stop using other worse platforms though 🙃
Related to this comment: https://github.com/discord/discord-api-docs/pull/4036#issuecomment-957537534
When converting HYPESQUAD from UPPER_SNAKE_CASE to camelCase or PascalCase, the S becomes lowercase (hypesquad and Hypesquad respectively), however, the name seems to be HypeSquad according to the HypeSquad page regardless of the weird mixture between both casings in the same page.
it doesn't really matter, since the api uses the numbers not the names.
it doesn't really matter, since the api uses the numbers not the names.
vanity is a server created link and cant be tracked duh @Jupith
@E4zily how do you think this works then?

Throwing my 2 cents in here, but doesn't make sense for the sections to be renamed to just "Components" rather than "Message Components". INPUT_TEXT can't be used in modals, and ACTION_ROW isn't exclusive to messages, it can be in modals as well.
Good idea. This can be very useful.
Description
The Create Guild Scheduled Event endpoint seems to return a 500 internal server error instead of 400 bad request if the entity_type field is missed.
Steps to Reproduce
Send a POST with {'name': 'test', 'description': 'test', 'scheduled_start_time': '2021-11-24T19:53:45.132528', 'privacy_level': 2, 'scheduled_end_time': '2021-11-24T20:48:45.132555', 'entity_metadata': {'location': 'test'}} to your favorite guild's /scheduled-events endpoint.
**Expect...
Can repro, also occurs in the official discord client when you can skip past the entity type screen
it seems it has been fixed.
| MODAL\*\* | 9 | respond to an interaction with a modal for a user to fill-out |
| title? | string | title of the modal | [Interaction Callback Type Modal](#DOCS_INTERACTIONS_RECEIVING_AND_RESPONDING/interaction-response-object-interaction-callback-type) ...
[discord/discord-api-docs] New comment on issue #2352: Can't respond to an interaction with gateways
@DelxHQ anything you did?
I just realised I'd have to convert my entire bot to deferring for the errors to go away. Now sometimes the bot won't reply at all.
Bumping this since initial alt-text support was just introduced, at least on desktop.
@IanMitchell, is it accurate to say that:
screenreading (and writing) alt-text isn't yet supported on mobile?
alt-text isn't yet exposed in the API?
embeds don't yet support alt-text? (re: this comment)
And if you can divulge: is there any timeline for implementing further alt-text support?
- Alt text support on mobile should be in the works / shipped on iOS - I'll look into that more after Thanksgiving break
- Alt text should be exposed in the API
- Embeds don's support alt text (which is why I've left this discussion open)
Alt text is accessible in the API through message.attachments[n].description. You can also set alt text on outgoing images by providing an attachments array in the create message endpoint.
Thank you folks for the helpful info!!
I wasn't able to find that API addition in the changelog, so it's good to see it exists.
Yeah it wasn't announced. At some point it just appeared.
Throwing my 2 cents in here, but doesn't it make sense for the sections to be renamed to just "Components" rather than "Message Components"?
INPUT_TEXTcan only be used in modals, andACTION_ROWisn't exclusive to messages, it can be in modals as well.
Futhermore INPUT_TEXT is an odd name tbh. I would've named it TEXT_INPUT.
But that's my personal opinion.
Futhermore
INPUT_TEXTis an odd name tbh. I would've named itTEXT_INPUT.
But that's my personal opinion.
That's probably done to avoid confusion with CHAT_INPUT
| 4 | Input Text | A text box for inserting written responses in modals |
Otherwise it looks to me like you can also use these for regular messages
Description
My bot's slash commands that have autocomplete in them give me an 'Invalid interaction application command' error. I am working with global commands and this issue happens on every server. I deleted and remade the commands and I still have the error. Happening for about 2 weeks now.
Steps to Reproduce
Not sure how it happened.
Expected Behavior
The command executes normally.
Current Behavior
Instantly getting an 'Invalid ...
Description
SDK cpp files fail to compile due to missing include in some environments.
Analysis below.
Steps to Reproduce
Attempt to compile the code.
Expected Behavior
SDK files compile
Current Behavior
In file included from /home/snip/snap/snip/src/plugins/discordpresence/discord/achievement_manager.h:3,
from /home/snip/snap/snip/src/plugins/discordpresence/discord/achievement_manager.cpp:5:
/home/snip/snap/snip/src/plugins/dis...
Just noticed this is the wrong repo... Moving this!
Aaaand they locked the thread...
I guess it's not happening
What even is this about? what thread was locked?
| min_length? | integer | the minimum length of the text input | [Input Text](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/input-text) |...
| min_length? | integer | minimal length of text input |
| max_length? | integer | maximal length of text input |
A better changelog is on our list of things to work on, but some of the other stuff is higher priority right now
Reports are done through the support site, not the API, and reports do not auto-ban users.
For platform feedback go to https://dis.gd/feedback
I'm not sure what the status of this feature is - general Discord client feedback belongs here though: https://dis.gd/feedback. If you want to see this feature ship, I'd highly recommend posting there!
I'm not sure what the status of this feature is - general Discord client feedback belongs here though: https://dis.gd/feedback. If you want to see this feature ship, I'd highly recommend posting there!
Hey Zelda, general Discord feedback belongs here: https://dis.gd/feedback GitHub Discussions exist for API specific things 😄. Would definitely encourage you to post this idea there!
Hey Zelda, general Discord feedback belongs here: https://dis.gd/feedback GitHub Discussions exist for API specific things 😄. Would definitely encourage you to post this idea there!
Tiny nitpick to fix the alignment
| guild_scheduled_events? \* | array of [guild scheduled event](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object) objects | the scheduled events in the guild |
I made an account today and left an introduction comment on David Bombals channel. Moment later was logged out and had my account disabled. Read that you had similar bugs in the past.
When uploading a file to discord it would be great if supplying a Content-Description header set the description field of the attachment object. The current system of providing a partial attachment object with the ids being repurposed as indices is clunky.
Furthermore, discord ignores the Content-Type header, choosing instead to rely on file extensions. I'm unsure why this is the case.
how would this work for uploading multiple files?
--19893b0f
Content-Disposition:form-data;name="file1";filename="file-1.txt"
Content-Description:exactly as you would expect,
Content-Type:text/plain; charset=UTF-8
Hello world!
--19893b0f
Content-Disposition:form-data;name="file2";filename="file-2.txt"
Content-Description:it to work,
Content-Type:text/plain; charset=UTF-8
Hello world!
--19893b0f
Content-Disposition:form-data;name="file3";filename="file-3.txt"
Content-Description:for multiple files.
Content-Type:text/plai...
I'm assuming we'd be using the files[0] syntax if this were to be supported, but i ripped this payload from my v9 code
Description
In the verification form, when the form is disabled (if your bot has suspicious growth, or such), it is still possible to type in dropdown menus and select stuff
Steps to Reproduce
- Have an unverified bot with suspicious growth, or a different reason for the verification form to be disabled
- Try to select menu items in the verification form
Expected Behavior
It is not possible to select items from dropdowns.
Current Behavior
It is possibl...
Understandable.
You all do great work!
can't it be in the placeholder? above? or it doesn't have the limit of 100 characters?
Ah you're right. Fixing this!
This page has been moved to [Application Commands](#DOCS_INTERACTIONS_APPLICATION_COMMANDS)
That's not how the docs work ;)
Furthermore the docs link works.
you should be reading the docs on https://discord.dev, not on GitHub
Furthermore the docs link works.
It doesn't work for me, as this lil gif shows:
https://i.gyazo.com/627110dfa7cef630ed082e2aed6554b0.mp4
Unless I'm doing something wrong?
you should be reading the docs on https://discord.dev, not on GitHub
I see, however there are docs on the github. I'm just fixing a link. I got linked here by another library. It's just a tiny quality of life change.
I see, however there are docs on the github. I'm just fixing a link. I got linked here by another library. It's just a tiny quality of life change.
No!
https://discord.dev is gettin build from this repository.
Therefore this special linking is needed.
You can't just change something to get it here working.
The links won't work the .md's here.
Please close this pull request and inform the other library that they should link to the official docs which is https://discord.com/develo...
Adding onto this, you are currently unable to mention roles via interactions without having the @everyone role have the Mention @everyone, @here and all roles permission enabled which for obvious reasons is not ideal to have enabled.
When implementing our library, I've noticed an odd type choice for Role tags. premium_subscriber acts like a bool but has a type of null. Nowhere else in the discord api have I seen this system used.
How its defined
{
"premium_subscriber": null, // is the subscriber role.
}
{
// field isn't here meaning it isn't the subscriber role.
}
Maybe this should be ...
I see no benefit in changing this. The role tags are a map of Type->Snowflake? and since there is no snowflake it's just null for this. You only need to worry about whether it is present or not. If it was a boolean, it would also only be true or omitted.
Internal communications have mentioned that this is a bug in the Discord platform, not something that needs to be handled by consuming libraries themselves.
I understand why the value is null, but as far as I am aware, this is the only place in the API where null indicates the existence of something rather than an absence. Because of this edge-case, I have to re-engineer my JSON parsing. If other people have solved this problem and moved on, please forgive my ignorance, but in my experience, there is no elegant solution here, and I don't think that this inconsistency is fairly justified by an implementation detail.
A little bit...
Overloading the json models with semantics like this means that cjson's parsing is now not sufficient for me either.
Description
There are several missing opcodes in the documentation.
Steps to Reproduce
Read the Voice Opcodes documentation and take note that there's no mention of opcode 12, 15 or 16. Now open developer tools in the Discord client, select the network tab, filter by WS, and press CTRL+R to refresh the client. Join a voice channel and activate screen sharing and video sharing. Select the request in the network tab that says ?v=6. Select the messages tab of the request and s...
They are left undocumented on purpose. Anything that isn't relevant to the bot API is almost always left undocumented on purpose.
In addition to using a different endpoint for the command, the options should be at the level of the command. so no needing to traverse through the nested options and no need to update the codebase when refactoring a group name.
"name": "config",
"description": "Customize.",
"options": [
{
"name": "server",
"type": 2,
"description": "Customize server.",
"options": [
{
"name": "matchmaking",
"type": 1,
"d...
I think this is something you can do today with any gateway service you like. Adding this here would bloat the payload and potentially impact future features.
I'm excited for 10 developers only to use this
If a server has require 2FA for moderation, the API will record that a person have moderation perms only when they have mod perms and have 2FA enabled
Like this: (example in dpy, author have administrator perms):
@commands.has_permissions(administrator=True) #always return True if the author turned on 2fa
@commands.has_permissions(administrator=True) #return False if the author did not turn on 2FA and the server required 2FA for moderation
there's a few people confused by the wording on here, so I'll rephrase it as "expose to bots that an user isn't able to use moderation permissions because they don't have 2fa enabled"
Agreed, ruins the whole point of 2fa requirement for moderation
Currently, NSFW rejects create no audit log entry, which makes hard for us to tell whether it is caused by Discord's own filters, or a moderation bot, applying the deletion.
When the NSFW filter triggers, no message is actually sent. The API fully blocks the request. Furthermore, logging an attempted action deviates from all other audit log entry types, and the NSFW filter has lots of issues with false positives.
the NSFW filter has lots of issues with false positives
That is the very reason we want such an event type. We would be able to tell whether our bot is working badly, or Discord's filter is working badly.
Totally agreeing with that.
In my opinion:
The auditlog as it is atm is messy enough.
Such false-positive throwing logs would make it worse.
the NSFW filter has lots of issues with false positives
That is the very reason we want such an event type. We would be able to tell whether our bot is working badly, or Discord's filter is working badly.
Bot debug logs exist.
Channels where you can log exist.
the options in the payload currently looks like this
"options": [
{
"name": "server",
"options": [
{
"name": "matchmaking",
"options": [
{
"name": "visibility",
"type": 3,
"value": "public"
}
],
"type": 1
}
],
"type": 2
}
],
With my change the payload options would loo...
Someone else reproduced it for me and recorded himself doing so.
Link to a video: https://cdn.discordapp.com/attachments/901585774951170078/914120223194492958/Screen_Recording_2021-11-27_at_14.37.38.mov
It is null because it is privacy-gated to users other than self.
@erkinalp no this has nothing to do with privacy since it's a role tag, not a user property. I think you are mixing something up here.
Taken from discord by night
it is intentionally an undefined check for future proofing. making this a boolean limits our ability to add a value to it later. role tags are not generally booleans
Taken from discord by night
it is intentionally an undefined check for future proofing. making this a boolean limits our ability to add a value to it later. role tags are not generally booleans
I guess I will intentionally not implement this then.
I guess I will intentionally not implement this then.
They are left undocumented on purpose. Anything that isn't relevant to the bot API is almost always left undocumented on purpose.
So that means that they aren't usable by bots?
Discord could maybe return a static snowflake (like an internal application ID we have seen for other cases) instead of null. This will ease things with these languages that don't have separate null/undefined values
Once again discord forgets they have a versioned api.
the NSFW filter has lots of issues with false positives
That is the very reason we want such an event type. We would be able to tell whether our bot is working badly, or Discord's filter is working badly.
If you're looking to make sure your bot isn't posting NSFW, an audit log entry is the wrong way to approach this. First of all you'd have to poll audit logs in every server the bot is in, and second you should just be able to look at the response body to see if the filter was t...
Yup, that would be correct
The easiest way would probably be to expose the user object's mfa_enabled field to bots
So this feature is already in discord where u can search for a certain query in a text channel etc. My suggestion is there should be a search feature for slash commands like for example if u do from: clap has: slash command it would show all the times ive used a slash command etc. just something along those lines
Yep... They could always just put a premium_subscriber_role snowflake on the guild object and make it optional
I'm pretty sure Discord will dislike exposing everyone's 2FA status.
You can already get the 2FA status of someone with OAuth2, see OAuth2 docs at identify
This way, bots can check if the moderator has 2FA enabled and thus forbid the command if they don't have it
Why can't we open another Modal after a Modal has been submitted? That would make a lot of sense in various scenarios where subsequent input fields depend on the entered data in the first modal, or where we need larger forms than a single modal can hold
Yep it isn't possible right now.
imagine using light themen 💀
No, interaction responses can ping any role/@everyone/@here, which is controlled by the allowed_mentions field. Discord had disabled @everyone and @here mentions by default because of this being exploited in raids. You can enable those in the allowed_mentions object if you wish to.
The application_id of a message object currently states:
if the message is a response to an Interaction, this is the id of the interaction's application
It would be more accurate to state that this property is present when an application-owned webhook executes. This description seems to only respect interactions and ma...
I made a little function to handle the nested options dynamically. Using this will make it so your code isn't coupled to the group and subgroup names.
const x = {
"options": [
{
"name": "server",
"options": [
{
"name": "matchmaking",
"options": [
{
"name": "visibility",
"type": 3,
...
I have a partial solution to fix the coupling between group/subgroups and slash commands. The one drawback is that each slash command name needs to be unique. So you can't have a command structure like this since both use kick.
/bot kick:@somebot
/member kick:@somemember
const x = {
"options": [
{
"name": "server",
"options": [
{
"name": "matchmaking",
"options": [
...
the rest of the list is alphabetized within the language
#3330 / #3617 (and #3946)
https://github.com/discord/discord-api-docs/blob/master/CONTRIBUTING.md#unwanted-changes
Unwanted Changes
- Whitespace or formatting changes.
well, you can search for slash command lol, now!

like this, you can search for the hack command by typing ha.
Allow overwrite of global commands by guild commands. The primary use case of this is localization, since we haven't got any tools for that yet, would be great at least to overwrite the descriptions, names and parameters.
They are actively working on localization in slash commands, they stated this at the most recent Discord Developers event.
You can read the summary here. (Search for localization in that.)
I am aware, I was on the event. Just thought maybe there's any workaround
when will this be mergeable?
when will this be mergeable?
Well bots can't do anything with it.
The only exception is what @advaith1 said:
bots can fetch hub invites, and discord.js throws because it doesn't recognize the directory channel type
It would be nice to able to create a guild template that also allowed including bots and their configs in the json.
{
"code": "hgM48av5Q69A",
"name": "Friends & Family",
"description": "",
"usage_count": 49605,
"creator_id": "132837293881950208",
"creator": {
"id": "132837293881950208",
"username": "hoges",
"avatar": "79b0d9f8c340f2d43e1f78b09f175b62",
"discriminator": "0001",
"public_flags": 129
},
"created_at": "2020-04-02T21:10:3...
You can workaround that with only using guild commands, no other way of doing that
HTTP-only bots no longer appear as offline
HTTP-only bots no longer appear as offline
No,
Most people don't even read popups, I don't think displaying what is being copied can be a good way to prevent malicious activities. Imo this feature is not needed.
Any updates on this?
It would be great to at least know if this feature got declined internally or if it will be added at some point.
discord-py-interactions is a very simple API wrapper intended to exclusively make use of the new interactions released by Discord into their Public API.
Originally a "monkey-patch" and 3rd party addon to the well renowned public library discord.py, this library now aims to be fully independent of its parent library -- able to handle the basic necessities that a lib must require in order to function, e.g. the Gateway, sane HTTP requests, and dispatched event data as callbacks. These a...
Just handling 429 responses is not enough to handle rate limits. Please read the rate limit section in the docs: https://discord.com/developers/docs/topics/rate-limits
Just handling 429 responses is not enough to handle rate limits.
I only programmed these specific codes which I considered as "breaking" for a bot to continue running without being handled after an HTTP request: 300, 401, 403, 404 and 429. When I originally began implementing this to handle "sane" requests, I figured that this meant that once a 429 or likewise code was received back from the API, that the library was supposed to avoid making any further requests. Is it supp...
I agree with Minn - this implementation of rate limit handling is not sufficient. You have to actually handle the rate limit buckets and handle locking and timing your requests to avoid hitting 429s in the first place - you can't just ignore all rate limit buckets and then try to walk it off once you hit one.
All the other libraries in the community resources (to my knowledge) handle rate limits properly, so if you want to stand among them, you need to at least meet this base requirement.
Description
Webhook-transported application command interactions load infinitely in the client with specific kinds of invalid data.
I've only tested this with CHAT_INPUT application command interactions, it could apply to other kinds of interactions and other kids of invalid data
Steps to Reproduce
- Make sure you're using the webhook transport
- Respond to a
CHAT_INPUTapplication command interaction with{ "type": 4 }
Expected Behavior
The interaction ...
After asking for some clarification in the DAPI server, I fully agree. And I believe that with this being an interactions exclusive library, we can achieve 100% sane limiting by checking the remaining header instead of doing a cooldown only after the rate limit is detected. I wholeheartedly agree that this should be a base requirement too, so i will be working on this either tonight or tomorrow to make sure it's implemented in.
Small thanks to those from the DAPI server who also gave me some...
I think this is confusing because of frontend implementation details on our end. We use the term Cancel Event on the client, but what the client sends is a DELETE request, because our product decision here is to delete the event immediately rather than update status to CANCELED for this user flow. This is why a GUILD_SCHEDULED_EVENT_DELETE gateway event is sent rather than GUILD_SCHEDULED_EVENT_UPDATE. And when we delete an event we don't update the status, we just delete.
We don't h...
Lib devs just have to check if it is an incoming DELETE event and set the field to status CANCELED if it still is SCHEDULED.
I see no real reason to rework this.
This is more a minor thing.
Currently when using a http url to receive interactions, there's no way to get an error back from the initial response, like you would with /callback after a gateway received interaction. This adds complexity to developing and tracking & fixing errors in http interaction systems, where your response fails and you don't know it did or why.
I think this is confusing because of frontend implementation details on our end.
@hemu No, This is confusing because of the statement on GUILD_SCHEDULED_EVENT_DELETE event.
Quoting:
See Guild Scheduled Event Status to determine how the event was deleted.
Totally forgot about this.
So either change the statement or the implementation
Why custom_id isn't here, but it's in the json sample?
I think it would be easier on both library developers and bot developers to continue using 1 as the status when a GUILD_SCHEDULED_EVENT_DELETE event is dispatched. Library developers should already be checking for which type of event is being dispatched, so the modeled data makes sense because it's returning the original information about the event.
@hemu for clarification, I assume that the DELETE request when successfully ran will also update the original event when you try to ru...
Thank you, you're right.
Fixed that + the description of custom_id on the select component fields.
I agree with @goverfl0w if fetching the event after delete returns the updated event. Although, I think that statement should be a bit clarified though.
I suck with words in general, I'm always a little bit too verbose with how I'm saying things 😛
Why can't we open another Modal after a Modal has been submitted? That would make a lot of sense in various scenarios where subsequent input fields depend on the entered data in the first modal, or where we need larger forms than a single modal can hold
This tbh. The limits on current modals are really small- 5 action rows, 1 text box per row, for only 5 boxes per modal! I was really looking forward to using these for my form bot, but with that I'm already trying to work around the 2...
Given from some feedback and critique, I've made some changes respectively to how HTTP requests work when interacting with the Web API:
- The HTTP requesting class now carries one single session which does not reiterate every single time a new request is made, which was previously an issue.
- The request method calls on a predefined [
limit](https://github.com/goverfl0w/discord-interactions/bl...
0b3fe86 Clarify avatar_url and username behaviour for i... - itohatweb
There may still be changes to custom_install_url, gonna hold off on merging
These are not actually separate objects, so we don't want to document them as such 🥲 🙏
This should definitely be made very clear in the documentation, we will follow up separately on this because adding a bunch of stars is not ideal
Not showing a loading state is probably a client bug, so when you do this it should show a loading state :(
f38a8c9 Clarify initial Heartbeat delay (#4014) - khionu
54e92a5 Document server boost progress bar (#4001) - nerdguyahmad
Need some repro steps in order to work on this bug
it is documented as not showing a loading state, and it is often used as just an ack, so changing it to show a loading state would be a breaking change and remove functionality; a new response type to show a loading state (or a body param) could be added instead
This is intended behavior. An error is shown but you may have to scroll up a bit to see it.
[discord/discord-api-docs] New review comment on pull request #4014: Clarify initial Heartbeat delay
I feel it's important to mention that jitter is a random value between 0 and 1, not just a fixed value that is used every time.
[discord/discord-api-docs] New review comment on pull request #4014: Clarify initial Heartbeat delay
Maybe? Maybe not. Depends if you trust the reader to understand that "jitter" implies random
[discord/discord-api-docs] New review comment on pull request #4014: Clarify initial Heartbeat delay
Can we just make that into a sentence that explains you're allowed to start anytime within heartbeat_interval miliseconds from HELLO and then every heartbeat_interval miliseconds thereafter.
[discord/discord-api-docs] New review comment on pull request #4014: Clarify initial Heartbeat delay
@Mehgugs It should be a random value, because in case of an major outage, you don't want every bot sending heartbeats at the same time when they reconnect.
[discord/discord-api-docs] New review comment on pull request #4014: Clarify initial Heartbeat delay
If that is indeed the case, it would probably be a good idea to actually mention that
@hemu No, This is confusing because of the statement on
GUILD_SCHEDULED_EVENT_DELETEevent. Quoting:See Guild Scheduled Event Status to determine how the event was deleted.
This can be misleading especially in this context, it's a fair point - we can remove this from the docs or clarify it. I think what I'm trying to say here is if the client UI text was "Delete Event" instead of "Cancel Event"...
if the client UI text was "Delete Event" instead of "Cancel Event", would the current behavior be less confusing?
Yes
These are not actually separate objects, so we don't want to document them as such 🥲 🙏
I didn't really mean to document them as separate objects, more-so as overloads of the same object. You may notice that everywhere else in the documentation the links stayed as "channel object". Did I not make this clear enough?
Is the issue here that the Discord API cannot guarantee these fields as @Mehgugs explained?
thanks for contributing! sorry it took awhile to get to this, do you mind resolving the conflicts or we can also make this change directly if you don't want to :)
[discord/discord-api-docs] New review comment on pull request #4014: Clarify initial Heartbeat delay
@Mehgugs
Can we just make that into a sentence that explains you're allowed to start anytime within heartbeat_interval miliseconds from HELLO and then every heartbeat_interval miliseconds thereafter.
This is more or less what I originally suggested when I reworded this section: https://github.com/discord/discord-api-docs/pull/1527#pullrequestreview-396737905
I'd expected this to be left as an implementation detail to the user; I only wanted to document what the gateway would allow...
Previously with message commands, many bots deleted command responses when the initial command message was deleted. Interaction responses can only be deleted by server moderators, despite the message stating who ran a command. This causes issues if you for example ran a command in the wrong channel or accidentally put something in command arguments that you didn't mean to share.
The solution would be a new flag you can apply to an interaction response, similar to ephemeral, which allows the ...
It looks like you have the beginnings of an implementation here, however it's not quite there yet
As per the docs, ratelimits should not be hard coded, but rather the headers returned used to preemptively avoid hitting ratelimits:
Because we may change rate limits at any time and rate limits can be different per application, rate limits should not be hard coded into your bot/application.
Setting a hard 50/s is not a quick fi...
In general OpenGraph scraping can fail when:
- the server is blocking us
- we've been captcha'd because the server thinks we're a bot (which we are)
- we've been IP blocked
- the server is not using a supported version/cipher for TLS**
- the page is not returning valid OpenGraph metadata (if it's an HTML page, not a direct image/video link): https://ogp.me/
- the direct image/video link has content which is too large to embed
** Supported Cipher Suites
// TLS1.3 suites
TLS13...
this will be fixed in the next developer portal deploy
I'm going to leave some more implementation specific comments on your repo
Sounds good! I'll check it out whenever you have it posted
This looks like it's currently being implemented:

As of ebc47af, this should be handled more proper as the Developers documentation suggests.
631a94b fix(Guild): mark guild_scheduled_events field a... - iShibi
thanks for catching this and contributing!
a80c210 Document guild_scheduled_events field on audit ... - AnotherZane
This looks like it's currently being implemented:

They're not documented as separate objects. It's called a "sum type" or "disjoint union": a type with a fixed number of distinct variants.
Here's an example of a well-documented sum type in the wild: https://core.telegram.org/bots/api#chatmember
Instead of making a big table of optional fields, Telegram made a small table for each variant.
Maybe an additional, informational (HTTP only), interaction type or even a separate endpoint
Description
When you have multiple commands with the same prefix, e.g. /tag and /taglist, typing /tag foo on desktop without pressing Tab after /tag will send it as a regular message rather than interpreting it as a command.
On iOS, simply typing it gets correctly interpreted as a command, there's no need to tap the suggestion that comes up.
Steps to Reproduce
- Create two slash commands in a bot:
/tagand/taglist. - Go to a channel with the bot on ...
Discord has implemented a better error message for inputting a number outside of the acceptable range. I'll keep this discussion as unanswered to help keep the community up to date on the gradual changes to error messages.
| banner? | ?string | banner hash |
It isn't aligned.
c9b2797 Deprecate game store SKU sales - msciotti
05c790c Deprecate game store SKU sales (#4190) - msciotti
that support article is private, will it be unlocked or should it link to https://support-dev.discord.com/hc/en-us/articles/4414590563479 ?
Public stages no longer make guilds lurkable
do public stages even still exist? the client toggle is gone (which is very unfortunate, it was nice to have the stage show in profiles and invites)
do public stages even still exist? the client toggle is gone (which is very unfortunate, it was nice to have the stage show in profiles and invites)
Yeah they do, itll still show on your profile for some reason, oversight i guess, but trying to click it to join the stage will just return "unkown guild".
Kinda sad :/ but welp
Returns the [guild preview](#DOCS_RESOURCES_GUILD/guild-preview-object) object for the given id. If the user is not in the guild, then the guild must be lurkable.
Description
In Android phone we can't select everyone as a role.
Steps to Reproduce
Make a new slash command with a role option and type everyone it'll show @everyone is not a valid role
Expected Behavior
It should show everyone as a role in Android also as in desktop
Current Behavior
It's not showing everyone in role
Screenshots/Videos
Client and System Information
This pull request documents /sticker-packs/{pack_id}.
Doing a GET request on /sticker-packs/{pack_id} returns the requested pack. This endpoint isn't documented but It would be consistent (and easy) to have it.
I think what I'm trying to say here is if the client UI text was "Delete Event" instead of "Cancel Event", would the current behavior be less confusing?
As you mentioned, Client's UI text is not source of truth which is understandable.
There's no problem if the data in event is the one from point of deletion, The statement on docs just led to the confusion.
Is this intended to replace user-specific friend requests, or as an alternative to them?
###### Example Friend Invite Object
```json
Description
When "Use external emojis" permission is disabled, and a webhook tries to use an external emoji that has the same name as a default unicode emoji, it will show up as the unicode emoji instead.
Steps to Reproduce
- Upload an emoji to a server and name it the same as a default emoji (for example,
:smile:) - Disable "Use external emoji" for the @everyone role
- Send the emoji in a message
Expected Behavior
The emoji name will show up as text.
This is w...
Description
The Discord Developer portal returns a 500 error code whenever I try to enter an interactions endpoint url.
Steps to Reproduce
Using this repository run a rocket webserver with the PUBLIC_KEY environment variable set.
Expected Behavior
When entering the link to the url it returns that the endpoint is invalid or accepts it.
Current Behavior
It just states that there was an error...
You're not even spelling it right in the screenshot. It's "everyone", not "eveyone".
No. That's not a solution to it at all
A solution would be a server side diff check, not breaking the entire caching system.
Description
The ETF gateway is leaking Shared.EmbeddedActivity whenever somebody is using an embedded activity on a Discord server.
Steps to Reproduce
Write a bot in Elixir using the Nostrum library.
Expected Behavior
The bot doesn't crash.
Current Behavior
The bot crashes due to an unexpected struct in the data that Nostrum doesn't know about.
Screenshots/Videos
Related issue in the library repo: https://github.com/Kraigie/nostrum/issues/351
Example er...
@NovaFox161 That would make bulk application command updates atomic.
What? Dude you are so off on what that means or the way the systems work. The current system isn't even exactly 3600 seconds. If you update a command 10 minutes before the cache flush. Then it's only a 10 minute wait. The commands do not have a global TTL.
Furthermore, that's not at all what atomic means and the open discussion you linked has no relevance to this discussion.
fwiw, libraries should support receiving unknown fields without crashing, as new fields are added all the time and it is not considered breaking
responding to stalruth's original comment, the bug was fixed a bit ago
I'd agree with you, but there's a slight difference here, __struct__: is a reserved field in Elixir.
I'm simplifying, but basically it means that it's not a map but a different type entirely, therefore a lot of functions you can call on maps will raise an error instead.
I suggest not using discord.py as an example for making api calls
It's pretty much pseudocode anyway.
No, interaction responses can ping any role/
@everyone/@here, which is controlled by theallowed_mentionsfield. Discord had disabled role,@everyoneand@herementions by default (meaning that by deafult these will depend upon if the@everyonerole has the permissions to ping any role or not) because of this being exploited in raids. You can enable those in theallowed_mentionsobject if you wish to.
Even with the allowed_mentions object, interaction responses don't ping ro...
You're not even spelling it right in the screenshot. It's "everyone", not "eveyone".
Yeah sorry. I misspelled at the time of taking screenshot but it's not working for everyone
I can repro (spelling it correctly) on 105.5 alpha (105205), the id works though
lol they wanted to give an example
I am wondering why there are no answers to this issue.
I would really like to remove users data from my game when they remove their Discord account.
Please Discord... do something with this already.
Having a boolean property named deleted on GET /users/{Discord Snowflake} or just a simple 404 / 410 response is all we need.
Description
When I try to add/update alt text in call to PATCH /channels/{channel.id}/messages/{message.id}, nothing changes.
Steps to Reproduce
- Request 1:
POST /channels/{channel.id}/messages
--boundary
Content-Disposition: form-data; name="files[0]"; filename="file.png"
Content-Type: image/png
[image bytes]
--boundary
- Request 2 on message created in previous request (
123...in the payload is the actual ID of the attachment from the previous requ...
Description
The Field Requirements By Entity Type table incorrectly states that entity_metadata is null for entity of type STAGE_INSTANCE.
Steps to Reproduce
- Create an event taking place in a stage channel.
- Call
GET /guilds/{guild.id}/scheduled-eventsendpoint - Look at the response body and notice that
entity_metadatais not `...
| Field | Type | Description |
It isn't aligned correctly.
It's "[...] object" everywhere else, so it should be like that here too.
Returns a [sticker pack](#DOCS_RESOURCES_STICKER/sticker-pack-object) object for the given ID.
Description
Discord API returns more than 1 focused: true value if your slash command has multiple options with auto completion.

Steps to Reproduce
Create an application (over webhook) and register slash command (to a specific guild) with at least 2 options where you set autocomplete: true
Expected Behavior
According to docs:

Looks like since Discord just partnered with Samsung years ago, they don't want to give the freedom to non-samsung users to have game activity presence. Honestly if there's limitations over how android works, couldn't discord make an api for games/apps to send stats about the current user and use oauth2 for integrating apps presence with discord app. Honestly, it would make so many devs' life easier if presence could be managed over discord oauth2. What is the reason even to have rpc and acti...
This is good idea for sure ios users don’t have Spotify presence on there phone as android users have I would like to see this put in
I'm pretty sure Discord will dislike exposing everyone's 2FA status.
You can already get the 2FA status of someone with OAuth2, see OAuth2 docs at
identifyThis way, bots can check if the moderator has 2FA enabled and thus forbid the command if they don't have it
Then, all the mods who have to use that bot, needs to login in order to leak their 2fa status
This is good idea for sure ios users don’t have Spotify presence on there phone as android users have I would like to see this put in
In the first case, spotify actually partnershipped with discord too, so they don't talk over ipc or websockets for rpc/game-sdk
They talk over secret api with discord. Thats what integrations on discord are for sadly.
I can also say that, the vscode presence is used the most, and I rarely see any person playing, and out of 0.001% of them play on samsung galaxy. The vscode presence plugin itself runs on rpc rather than your gamesdk discord.
This is also another point why you rebranded to community rather than as gaming space. Also since you want to have whitelisted games only, and since they're closed from a year ago (I think more before than that, but I can definitely say atleast an year ago), there's no ...
This is good idea for sure ios users don’t have Spotify presence on there phone as android users have I would like to see this put in
In the first case, spotify actually partnershipped with discord too, so they don't talk over ipc or websockets for rpc/game-sdk They talk over secret api with discord. Thats what connections on discord are for sadly.

If you don't want to change how the permission works, would you consider adding additional tools/settings to allow server-admins and/or users to fine-tune which embeds are shown?
Right now i have disabled link previews in my account settings because i prefer compact text chats and link embeds by random users disrupt my reading.
But this also prevents me from reading any messages by the official github bot that exclusively uses embeds.
I'd like to be able to override the global option...
If you don't want to change how the permission works, would you consider adding additional tools/settings to allow server-admins and/or users to fine-tune which embeds are shown?
That already exists as the "Embed Links" permission
If you don't want to change how the permission works, would you consider adding additional tools/settings to allow server-admins and/or users to fine-tune which embeds are shown?
That already exists as the "Embed Links" permission
Thanks for the pointer, this gives server admins more control than i thought. Great!
But if you disable link preview as a user in user settings > text & images it still doesn't show the embed by github bot even if the server/channel has "Embed Link...
What's the difference between the guilds scope and this?
Not responding to a slash command says the interaction failed.
guilds gives access to /users/@me/guilds which returns an array of partial guild objects.
guilds.members.read gives access to /users/@me/guilds/:id/member which takes a guild id and returns the user's guild member object.
2f12a72 Fix wrong game store help center link - msciotti
267734a Fix wrong game store help center link (#4209) - msciotti
Not responding to a slash command says the interaction failed.
Oh that's what you meant (not sending a message !== ephemeral message).
Yea, would be nice if one could send an Interaction Response that was either a silent acknowledgement or something like a short toast.
They used to support this, then they explicitly removed it because it was bad UX.
Fix is merged and should be rolling out soon(tm)
How is it bad UX? If I don't need to respond to a command, I shouldn't have to. Especially if they're trying to get users to move to slash commands from message commands, where a message command didn't always have a repsonse.
@ThatSkyz A green tooltip would say "Interaction completed successfully with no message".
Description
The documentation states that the endpoint supports the X-Audit-Log-Reason header, however it does not show the reason in the audit log.
Steps to Reproduce
Send a request to delete/close a channel with the X-Audit-Log-Reason header.
Expected Behavior
Adds a reason to the audit log entry.
Current Behavior
Does not add a reason to the audit log entry.
**Screenshots/Videos...
this is added to our bug list, will update here after we take a look
Process sandboxing in mobile is much stricter, preventing the running process detection method from being used.
But if you disable link preview as a user in user settings > text & images it still doesn't show the embed by github bot even if the server/channel has "Embed Links" permission enabled
Personally I think the user settings induced issue should be solved in the front-end of discord.
I think the simplest and most useful solution would be to display a system message to the user like this:
 the value.
As my field is an integer, this then shows the **invalid integer** warning too
**Steps to Reproduce**
- post a type 8 with a choices field on the interaction autocomplete...
I'm try to create button with Steam URI for lobby link and I can't because
...node_modules\discord.js\src\rest\RequestHandler.js:349
throw new DiscordAPIError(data, res.status, request);
^
DiscordAPIError: Invalid Form Body
data.components[0].components[0].url: Scheme "steam" is not supported. Scheme must be one of ('http', 'https', 'discord').
What about to add some of these URI (of at lea...
Can you share a bot invite so we can test? thx
This feature isn't shipping. channel is still nullable, so will document that separately
a fix was merged and deployed last night around 9PM PST
What is your interaction endpoint returning?
Can you validate what the raw payload you're getting from Discord is? ie before any parsing or coercion
Yep -- this API returns the full guild member object which would include things like server-specific avatar and username, which previously were not easily obtainable over the OAuth2 API. The user has to specifically grant permissions to share this additional info with the app via the new scope. Thanks for the docs update :)
51227cb Document OAuth2 guilds.members.read (#4204) - advaith1
Sure thing:
The bot isn't hosted as of now, however DM me when you need me to run it :D
there are currently no plans on publicly supporting this field for events with type STAGE_INSTANCE. this is more of a free form metadata property with no guarantees for this field to be non-null in the future for STAGE_INSTANCE events. Does that help explain the discrepancy or do you still have concerns?
It does explain the discrepancy but I do feel it would make sense for the documentation to indicate that this field might be an object for events of type STAGE_INSTANCE (especially that it says "This field is required to be null"). It certainly makes sense not to document the speaker_ids field inside it though since as you said, it's not publically supported.
We don't support this yet, but I think this is something that would be really nice to have - it isn't going to be trivial to add though 😢 . Do you mind if I convert this into a GitHub Discussion to track as a request for adding the feature?
does anyone know how to then turn these ids into string based values? or do i just need to gather all the role ids on my server and compared them via id directly?
I filed this issue because I thought that the documentation states that this is possible and I observed different behavior while testing it. But looking at the documentation today, it seems like I must have read it wrong because both the documentation of Edit Message endpoint and the Uploading Files section in Reference document say that being able to add description only applies to new attachments so I probably just missed that detail while reading it before.
Since there's no actual iss...
Description
When I try to add/update alt text in call to PATCH /channels/{channel.id}/messages/{message.id}, nothing changes.
Steps to Reproduce
- Request 1:
POST /channels/{channel.id}/messages
--boundary
Content-Disposition: form-data; name="files[0]"; filename="file.png"
Content-Type: image/png
[image bytes]
--boundary
- Request 2 on message created in previous request (
123...in the payload is the actual ID of the attachment from the previous requ...
We don't support this yet, but I think this is something that would be really nice to have - it isn't going to be trivial to add though 😢 . Do you mind if I convert this into a GitHub Discussion to track as a request for adding the feature?
I filed this issue because I thought that the documentation states that this is possible and I observed different behavior while testing it. But looking at the documentation today, it seems like I must have read it wrong because both the documentation of Edit Message endpoint and the Uploading Files section in Reference document say that being able to add description only applies to new attachments so I probably just missed that detail while reading it before.
Since there's no actual iss...
Converted, I also edited the title accordingly
It does explain the discrepancy but I do feel it would make sense for the documentation to indicate that this field might be an object for events of type STAGE_INSTANCE (especially that it says "This field is required to be null"). It certainly makes sense not to document the
speaker_idsfield inside it though since as you said, it's not publically supported.
This was to avoid confusion because e.g. sending a non-null metadata field value for a voice channel event when updating the...
I either return a http 401 if verification fails and my web frameworks default 401 page or twilight's InteractionResponse::Pong which serializes down to a json of "{"type":1}"
let me know if that makes sense and you're cool with this issue being closed :)
@advaith1 thanks for adding this to the docs! Is there a way to, once you have the role IDs, get more info about the roles, like their name and color etc?
I don't think role data is exposed via oauth2, so you'd need a bot in the server for that
Ok, thanks for the quick reply @advaith1 !
I don't know where should I send answer, so I write it in suggestion and below your answer.
I'm try to create button with Steam URI for lobby link and I can't because
...node_modules\discord.js\src\rest\RequestHandler.js:349
throw new DiscordAPIError(data, res.status, request);
^
DiscordAPIError: Invalid Form Body
data.components[0].components[0].url: Scheme "steam" is not supported. Scheme must be one of ('http', 'https', 'discord').
What ab...
Discord is a fucking bitch forcing us to use slash-commands but wont add any form of normal interactions.
You know how many developers have quit because of discord's "slash-commands" Danny, (Discord.py) And so many good developers and im about to be next.
de366cd Update scheduled events documentation - hemu
- Remove confusing gateway events statement
- Document upcoming changes for event visibility for lurkers
- Cleanup warnings and caveats
c081c1f Update scheduled events documentation (#4216) - hemu
gonna close this out now that docs are updated, thanks for bringing this up :)
Even better alternative: Allow using any URI handler scheme in buttons.
Since per-server bios and banners got released today(or at least got a larger a/b testing group), it would be good to have it in the member object.
Imo per-server bios should be accessible to bots since it's for that server only and not global.
Description
Basically the title. If you set the username in execute webhook payload to spaces, the webhook gets sent with the original name.
Steps to Reproduce
Execute a webhook with username field set to a bunch of spaces, or a bunch of zero-width spaces.
Expected Behavior
I would expect one of two things:
- An error is thrown
- The webhook is shown with an empty name (similarly to the example at the bottom of my screenshot)
Current Behavior
The `us...
There are many endpoints that allow for referencing the current user via a special pseudo-snowflake (@me).
This is great, because it doesn't require knowing what the ID of the current user is, and shows express intent when written in code somewhere.
This is used in many places, such as [/oauth2]/users/@me, /thread-members/@me, and even /guilds/members/@me
There are obviously many many more, but the latter of those three is especially important.
That endpoint allows for P...
Is there any update on this? I'm writing a bot to help with moderation, and it creates temporary channels and logs everything in them, including the eventual deletion of the channel. Everything works great, except obviously logging message deletions. This is intended to be used for discussing breaches of policy with offenders, and so there's some expectation that people will type messages in anger, then delete them.
Given this is for dealing with offenders, it feels important that we are a...
Description
When fetching the member of a guild the banner property isn't present even though the user has set one
Steps to Reproduce
fetch a member from the api and see the result
Expected Behavior
banner property present
Current Behavior
banner property abscent
Screenshots/Videos

**Client and System Informa...
https://discord.com/developers/docs/resources/guild#guild-member-object
The banner is not included in the guild member object response, I do not think this is a bug.
There is now a required prop which defaults to true for input text also the min_length has been updated to default to 0.
No. All data from a user profile should be accessible by bots for review and moderation concerns.
The server I moderate, which is a support server for a software service managed by the company I work for, CONSTANTLY has an influx of scam account pretending to be tech support.
As it stands, right now there is NO WAY for me to detect this user account unless I monitor literally EVERY SINGLE JOIN EVEN which is simply not acceptable.
 to the new url (https://github.com/discord-net/Discord.Net).
The old url redirects to the new one so we might as well change it to the new one.
What about a user profile intent and/or oauth2 scope?
The https://discord.com/developers/docs/reference#uploading-files section says the maximum request size is 8MiB as in Mebibytes, 8 * 1024 * 1024.
butao salva nao aparece na hora de salvar as alteraçoes no gerador de url

So I ran this through google translate; if I'm understanding it correctly, you are on the Oauth2 > URL Generator which does not save anything, it just helps you build a URL you can copy/paste.
If you are looking for the "Add to Server" button, that would be in Oauth2 > General
I'm actually trying to create a redirect url, then when I save the redirect url, and when I go to generate the url in the url generator it won't let me save after I say what data I want to get


