#github-notifications
1 messages · Page 21 of 1
Everytime i refresh the Discord Portal page of a bot the token changes (happens at all bots) and if i try to use a token in my code i cant
Tokens have a time based component when being generated. Them constantly changing is normal, and you can use everyone of those. Not until you press regenerate does it invalidate previous tokens.
As for "i cant", that's very vague and not descriptive at all. I suggest asking for help by the people who develop the library you are using.
I found this bug on Discord Mobile while we were mute and unmute voice chat is still lagging for the logo can see the picture below I do not know who lags me or everyone for the logo

.
So I awoke to this issue being called on me. The only info it gives me is that the token is 'wrong' or something else in the code for my token is an issue. I've tried to reset my token, but I've noticed that every time I refresh the page and copy the token through the provided button to copy the token with, it gives me a new one. I don't know if this is a thing about discord's website whenever you refresh the bot page, but it's giving me some hassle, and I can't figure out how to fix this iss...
This is a library specific issue, as opposed to a Discord API issue, but to resolve this, you need to update your discord.py library by doing python3 -m pip install -U discord.py, see: https://github.com/Rapptz/discord.py/issues/5109
Uh huh. In my statement I mention updating my discord. I've already looked around on the internet for this issue before, found this to be a solution and it still hasn't worked. I've even changed my password in response to this.
I've noticed that every time I refresh the page and copy the token through the provided button to copy the token with, it gives me a new one.
To be clear, this is intentional and always happens (for all bots), all the tokens will keep working until you click regenerate.
Any issues with your bot are not related to that.
Dyno bot owner client id not working problem unknown application
For help with Dyno, go to its support server, this is the wrong place.
2e9e0ff Fixed "UserFlags" instead of "UserFlag" in the ... - NathaanTFM
credit to PixelNinja#0132
fc23170 fix users path for windows (#1836) - ilikepotatoes121
Document source_guild and source_channel for channel follower webhooks.
The API resource GET /oauth2/applications/@me is currently listed under TOPICS > OAuth2 section of the docs. At first instance it seems that this endpoint requires OAuth2 authorization which is not true. Rather it requires the bot token as authorization. Therefore its better to move it to normal RESOURCES section of the docs.
As a developer, I would like to receive a call to my own API endpoint when a user posts a message to a given channel, @s my bot or DMs my bot, so that I don't have to have a constantly listening process and can go properly serverless.
Any chance this can this be done?
Thanks!
Updated the domains from discordapp.com to discord.com in Legal.md and Policy.md
I have been using Discord for quite some time, as it's the best program to speak with your devs, but I've been trying to either assign work or just make sure everyone has something to do by seeing who's Idle, kind of code for: looking for assignments, so if I could ping @idle or @online instead of just @here, it'd make it a lot easier, other uses for this would be stuff like:
-Seeing who's available for looking for games to play
-Just having a chat with someone who's bored
-Sharing c...
I personally see no purpose to this.
These issues are for API bugs and feature requests. Product feedback and feature requests can be posted to https://feedback.discord.com
They don't change on refresh anymore
I'm not able to reproduce any issues with unfurling links posted within content strings in webhooks. Please provide steps to reproduce this issue.
I opened the other issue and this issue seems different, as this issue is about allowing bots to request guild members when they are approved for the intent, if they do not specify the intent in the connection. The other issue was a way to get a specific member's presence without being whitelisted.
I can reproduce it in 2 ways:
- Send a webhook payload and add
?wait=true. The embed will show up then disappear after a fraction of a second. - Send a webhook payload with an avatar URL that, while being a valid URL, does not lead to an image. The link will not embed.
Again, both of these only happen occasionally. I can provide a channel where this happens more consistently, if that is helpful.
for legal reasons this is a joke
Looks like existing descriptions were removed from non-Discoverable servers
I don’t think discord would make this as the gateway was designed for receiving. The sheer amount of messages that servers get would make this an very in-efficient way to fan out messages.
"Outgoing webhooks" have been on the table for a while, but it's unclear if and when they will ever be added.
To clarify, this shouldn't be a privacy issue as #1624 is. The only bots that this should affect should still be whitelisted for the GUILD_PRESENCES intent. The entire purpose of this FR is to allow disabling PRESENCE_UPDATE to save CPU usage on both ends of the connection while allowing REQUEST_GUILD_MEMBERS to work with presences.
I don’t think discord would make this as the gateway was designed for receiving. The sheer amount of messages that servers get would make this an very in-efficient way to fan out messages.
A solution would be sending message summaries every x minutes or only messages to the channel, the webhook was created for.
Hmmm...
hmm?
nah it was just bc you closed then reopened the issue
nah it was just bc you closed then reopened the issue
I had two issues in two repos open on my screen at once and accidentally closed the wrong one lol
I would too like to see this feature, but not in an implementation listed here.
I would like to see bots able to set additional statuses (maybe an exclamation point for outage, a clock for maintenance) that could also be manually set from the dev portal. Bot owners could also set extended description text that could show in the profile modal, similar to statuses, that could warn of possible downtime or give status updates on outages.
A clock is already used as the colorblind idle status, but I like the idea. Usually when a bot goes offline users find the bot's website or support server on a bot listing site and see what's going on, but this seems like a nice small addition which helps both bot owners and bot users.
no, the idle status was changed to a moon a while ago (the "colorblind mode" is the only mode now)
I really like this idea - it would also save a lot of user's time joining support servers, asking what the issue is, etc.
o bot nao quer ligar como resolvo este problema?
Por favor, junte-se ao servidor Discord API e peça ajuda em inglês. Infelizmente não podemos ajudar em português.
Please join the Discord API server and ask for help in English. Unfortunately, we cannot help in Portuguese.
72d0379 Update documentation about new permission field... - tpcstld
Summary
I'm not 100% sold on the tone of voice I used for this. In some ways, English is harder to write than code for me... Basically the documented changes are:
permissions_new, deny_new, and allow_new are now fields. We incentivize people to read off those if they want new permissions. However there aren't any new permissions right now, so they don't have to switch (but I didn't mention this). Old fields only get 31 bits.
nit: variable-length
nit: .We missing space between period and W
Are permissions really infinite length ints now?
Is there a reason why this is encoded as a BINARY in ETF when the erlpack parser can handle it as bigint just fine? I get that this was done in JSON because of rounding issues in the existing parsers for JS but that shouldn't be a problem in erlpack, right?
@muddyfish As night's nit pointed out, the better term is variable length.
Technically the number of bits is bound by the number of permissions we have declared, but we are setting the API up (and you should treat it as variable-length) so that we don't have to do this kind of migration again.
@MinnDevelopment that's a decent question.. the technical reason is due to where versioning is performed and how it is performed. gateway is what you're talking to when receiving erlpack, and at that point in time it's already a string so you receive it as binary. this is a divergence from snowflakes over erlpack, since we let the json libraries handle that string conversion for us at the edge. we didn't want to support int|str datatype for permissions, so here we are. it's worth noting we ...
@night would it be possible to allow the legacy permissions/allow fields to just use the bigint instead then?
@MinnDevelopment it isn't possible currently (for the same reason, since versioning and the computed values are upstream from gateway). you should consider the data types between json and erlpack as 1 in the same here. the only reason snowflakes diverge is due to us deferring 64bit ints to the json serializer and relying on the fact that all snowflakes are 64bit ints.
During the remaining lifetime of API v6, all new permission bits will only be introduced in
permissions_new,allow_new, anddeny_new.
So if Discord adds new permission next week for threads(just as an example), that would not be available in allow anymore? It would requiring updating the libs to use allow_new?
@Skillz4Killz new permissions will only be in the allow_new, that is correct.
When editing the permission_overwrites of a channel would we have to provide all of allow/allow_new/deny/deny_new or can we just provide the _new pair?
We probably should have better clarified: _new fields are just for serialization. Requests with these fields should continue as previously. You can pass int|str to us (as you could prior) and it will just work as expected.
We probably should have better clarified:
_newfields are just for serialization. Requests with these fields should continue as previously. You can pass int|str to us (as you could prior) and it will just work as expected.
Just to confirm this means we will pass in allow/deny with integer values?
@Rapptz you can pass either in v6 for backwards compat. for large values you will want to use str.. or just always str to be safe
5fa7c1c Clarify that the _new fields are just for res... - tpcstld
With all the changes being made (such as intents, and ostensibly to reduce the number and size of payloads being sent) is there a reason why the default going forward is not to use the more compact integer representation and just document that a compatible (de)serialization is necessary?
@mikeshardmind can you clarify what you mean by more compact integer representation? If you're referring to why we don't just expose the string, it's for compatibility with existing clients.
I mean that the payloads are unnecessarily larger, and there's more overhead in deserialization by using a string instead of an arbitrary sized integer. The JSON specification does not place a concrete upper limit on the size of integers and only suggests to either keep it within 53 bits of precision (for maximum compatibility) or to ensure that consumers are aware and capable of the precision. As this won't be changing until the next version, it seems that simply documenting the precision su...
While they are larger payloads, they are more efficient than losing native JSON deserialization on our clients. Native JSON deserialization is a lot faster than libraries you might import. In fact, the JSON parser is faster in some instances then creating their actual objects using JS literals: https://v8.dev/blog/cost-of-javascript-2019#json
Regardless of the reasons why we chose this approach for v6 instead of making a breaking change, it will be a string in the next API version anyways ...
While that appears to be true for javascript, it's not the case for many other languages. I understand that the client uses javascript, so I'm fine conceding that. However, for those wanting to maintain performance, the combination of that and (below quote) is concerning.
so here we are. it's worth noting we may eventually get rid of ETF on gateway (we are slowly getting rid of its usage internally already).
Are there plans to use an alternative compact general representation such ...
Are there plans to use an alternative compact general representation such as msgpack, or non-general in the case of a protocol buffer if or when this happens? It seems like since one of the recent goals as been improving performance, adding uncertainty around continuing to use ETF does a disservice to that goal if there won't be a replacement.
I can't speak for ETF plans at this time, but we care very much about the performance characteristics of changes we make to our infrastructure.
I can't speak for ETF plans at this time, but we care very much about the performance characteristics of changes we make to our infrastructure.
It was not my intention to imply that you didn't, just that with a new gateway version "around the corner" and public statements indicating ETF support might be dropped, you're putting people in a position where they may decide it's better to just take the performance hit of JSON (which is notoriously bad as a format for serialized data) to avoid...
Noticed that it needs a Discord. namespace prefix but I'm in bed and can't edit from mobile, will fix tomorrow.
I might’ve positioned this wrong, and/or you might not want this change but in case you want this changed, I’ve made a PR
Oh, also I’m going off of the notice in the discord-rpc repo
The discord-rpc library has been deprecated, but that is different from the RPC server/protocol. Websocket RPC access has been replaced by IPC (which is another way to access the same system), but IPC is not yet documented (#1704). The GameSDK uses the RPC protocol, but it is just a wrapper (like discord-rpc) and does not replace the RPC server.
Add the Result type to fix compiler errors.
lobbyManager.CreateLobby(txn, (Result result, ref Lobby lobby) =>
29ec345 Update documentation about new permission field... - tpcstld
This has been a long time issue for me (not too long after release honestly) and its not specific to my system. On our server we often spend most of our time in a voice chat room. Whenever the system is under load (running programs, updates, uncompressing, etc) the sound of the voice room cuts in and out, varying from split seconds to several second pauses. Now here you could say "well maybe your computers cant handle all the load" but this is consistent on every computer i have used and ther...
This is only for API issues, if you are using Discord on your computer then go to the correct place:
- Discord Support
- Discord Testers (bug reports)
- Discord Feedback
Looks like the field on the Guild object was missed in #1843
cc @tpcstld
33d1d03 Update example partial guild with new permissio... - tpcstld
f39bcc0 Update example partial guild with new permissio... - tpcstld
Copy pasted from ?tag sslfix:
If you're getting the [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1108) error on a Windows host do the following:
Download and install this certificate here: https://crt.sh/?id=2835394
--> It can be installed by double clicking the file and installing it to Local Computer, download link location: https://beans-took-my-kids.reeee.ee/38qB2n.png
For those curious, it was caused by this:
https://support...
Dear Discord,
I've created a webpage on www.relog.rs that's protected by CloudFlare anti DDOS measures. The current settings that have been set by our WebHost provider on CloudFlare forces any request to go through a CAPTCHA solver in order to receive any information from our website.
I have had a problem to display og:metadata tags on Discord when linking a page hosted on our website, but we have managed to bypass the protection with whitelisting the DiscordBot useragent.
The problem ...
Cloudflare doesn’t force captchas by default (discord uses cloudflare themselves and you don’t get a captcha when going to their website). Either ask your host to disable that for the DiscordBot user agent, or just switch to managing your own server/VPS where you have control of cloudflare, if you choose to use it.
@applebee1558 They have disabled that for the DiscordBot user agent. Media Proxy uses a different user-agent.
@dev-kittens oh, then post the other agent here, it’ll help the person asking
i don't recall it, and don't have access to my webhost atm. will post later
ok @tpcstld hopefully this is the last one lol, I searched it so this should have all of the remaining ones
thanks to apple502j#6852 for asking about audit logs
Mason told me to suggest this here.
The view server insights permission should be displayed regardless of the community status on the server. The reasoning for doing this would be for bots like mine, where it is an analytics bot and could be tied to that permission instead of Manage Server.* This would allow admins and moderators to not need to give the manage server permission just for to see analytics now that this new permission has been released.
I was thinking that there could be a not...
I don't particularly think this is a good solution. For permissions "off platform" - it's worth noting you can just use a role list,
"Do you have role view my statbot's stats?" then you can view said stats.
Whitelisting the media proxy will be almost impossible. iirc, it uses the user-agent of the requesting client (like... a proxy would do) which can be literally anything. The media proxy is hosted on GCP and uses a dynamic IP.
Looks like your host is way too paranoid. I really don't see the point to force the "under DDoS" mode of Cloudflare permanently. They just makes it more complicated to users to access their websites (it may even be impossible to pass the challenge with some devices/co...
[discord/discord-api-docs] New comment on issue #1510: Bots using /crosspost and /followers endpoint
See the pull request linked above.
Looking for this, is it not available?
I went to the Discord Bot Permissions calculator in the developer portal and for some odd reason none of the boxes are checking when I click them. I restarted the page and changed to another bot to no avail. I am doing this off of brave browser which is chrome based. I have not had issues like this before and I am really clueless as to why this is happening.

In the Python example for refreshing the access token, the data sent is shown to contain the redirect URI. Upon experimentation, this is not necessary to make a request.
I Have :
- Checked Account (Im logged into the correct one)
- Checked if Im Owner of my Server
- Never owned a dev licence before
- Refreshed the page and relogged multiple times

Same issue here on:
• Opera - 69.0.3686.95 (Official Build)
• Edge - 84.0.522.50 (Official Build)
If I click on the Administrator permissions flag, the whole thing locks, and I can not click on anything and can not 'revert' the Administrator permission: See GIF.
Can also reproduce:
- Safari 13.0.4 (15608.4.9.1.3, Official Build)
- Brave 1.11.101 (Official Build)
- Chrome 84.0.4147.105 (Official Build)
- Edge 83.0.478.54 (Official build)
All fail to show check boxes on click, and seize when the Administrator flag is clicked as mentioned above.
Can confirm, is broken.
- Firefox 79.0 (Official Build)
Is there any ETA on when we can expect this to be fully deployed?
It seems like organisation-wide webhooks for GitHub are correctly deployed to Discord, but only the repository events are actually executed. The organisation related events (ie. membership) seem to be silently dropped, seemingly because it is not supported/formatted by Discord yet. Therefore, I request proper support for organisation-wide webhook messages.
5bacc1f gateway: guild member update now contains joine... - jhgg
so now Guild Member Update has something that Presence Update doesn't have?
presence updates having member data will go away in gw v7 - they only existed there due to a legacy bug to begin with
I am trying to add a user when authenticated via Discords Oauth2.
Techstack: Node.js, Javascript with Vue.js, Axios
The scopes are "identify email guilds.join"
My first two API calls work fine, giving me the bearer token, then the user with email and its userID.
But the third call is giving problems, being the 401 error.
Code:
axios.put( https://discord.com/api/guilds//members/${userID}}`,{
headers: {
'Content-Type': 'application/json',
...
The acces_token goes in the request body instead of the query params, so looks like in axios you should put it in data instead of params.
Thanks for your response!
<img width="479" alt="image" src="https://user-images.githubusercontent.com/66954240/89167291-7f338d00-d57b-11ea-98f2-f225d6ebfa2b.png">
Changing it to data now produces a 403 error. I am testing with Postman next to the code, and it throws an error as well.
axios.put( https://discord.com/api/guilds/699300318868930720/members/620987747569500164}`,{
headers: {
'Content-Type': 'application/json',
'Authorization...
I feel like this wording is more correct, as it avoids broken english of "OR'ed (or ORd as documented) and makes it clear its a bitflag. This link is the same link that has been used previously under the permissions documentation.
Potential considerations would also to be named as Bit Field instead.
Hi,
I have a bug when I try to use discord sdk for compilation of the game Empty Epsilon.
Last month, all was fine, but now, it seems to have a change in the file discord_game_sdk.h
discord/c/discord_game_sdk.h:5:10: fatal error: Windows.h: No such file or directory #include
the program mingw contains windows.h and not Window.h, so it is only a uppercase issue. Is it a choice from discord team, or just a bug ?
Thanks in advance
#1414 only briefly mentions that this endpoint exists but i do not quite understand the notion of the closing comment:
My mistake for making this issue on an undocumented endpoint,
Can this endpoint be documented?
We would love to add that to the libraries API, however work under the policy of just officially documented endpoints and feature sets are merged.
We were under the assumption that any images displayed on game presences where to be found in assets, however that is appar...
I'd put this in the Application page added in #1838, if that gets merged
thanks, I will republish the issue on the right place.
We have no current plans to document this endpoint as its usage is a stopgap solution until we implement a better solution for its purpose.
Closed for no reason. i haven't received my answer
I know this might be a necro, but I've made a bot that does it automatically if you're interested:
https://support.discord.com/hc/en-us/community/posts/360049271831-Automatic-news-channel-publish?page=1#community_comment_360012263871
Yeah, things like webhooks should auto publish, as, they could be status updates that are automated
You could have the webhook wait for the message, and then a post request to /channels/channel-id/messages/message-id/crosspost to publish the message.
I'm sure it's just from copy/pasting access token to refresh token. you're welcome to PR a fix removing it from that example
[discord/discord-api-docs] Pull request opened: #1863 Fix typo in Store\_Distribution\_Agreement\.md
I opened an issue with Discord support a few days ago and they said it would be forwarded, but I haven't seen any changes yet.
expecting Discord to fix a typo in
a few days
It seems that when you make used of allowed_mentions and suppress embeds on it, the allowed_mentions get wiped and those who were mentioned will receive a border implying they were mentioned.
You can reproduce this by:
- Create a message that has an embed (or a link that comes with a preview) and mention yourself.
- Making use of
allowed_mentions, ensure that no one is to be mentioned. - Send the message.
- Supress embeds on the message.
- Flick channels or reload the client.
...
The issue seems to be that if you patch a message without the allowed_mentions property, then it resets it, while it should leave it unmodified and only reset if null is sent.
When calling /guilds/{guild.id}/widget.png with style of banner1, banner2, banner3 or banner4, it seems that fonts of CJK characters are missing.
Example:
Very much so a problem! Hope it's fixed soon
Thanks a lot--not to worry, sometimes we just need a sec to catch up with all the inbound.
2d748a4 Fix typo in Store_Distribution_Agreement.md (#1... - qwright10
Duplicate of #1160 (yes, I know it's closed)
Duplicate of #1160 (yes, I know it's closed)
Yeah but there is nothing there telling when its going till be added
As it says on the tin. I'm the owner of a 35k member server, and we use Go Live/video permissions as an incentive for users to support the server via Nitro boosts. It would be nice to only allow users to share their screen as opposed to also allowing them to share their webcam. Especially since you can share both your screen and your webcam, having only a single video source to try to moderate at a time would be appreciated.
These API docs are for API-related questions and feedback. Please head to https://feedback.discord.com to post product feedback.
Tem um bug no servidor que eu e meus amigos temos que é o seguinte. As vezes quando agente fica multado é volta vc co segue falar multado.
Olá, este repositório é para assistência com a API Discord. Para problemas do cliente, entre em contato com o Suporte da Discord ou entre no servidor Discord Testers.
Hi, this repository is for assistance with the Discord API. For client issues, please contact Discord Support or join the Discord Testers server.
It seems like tags have made it into the gateway but are currently rather inconsistent. They seem to only appear for some roles after they were updated through a PATCH. Will other roles also get the tags without having to update them? Or is this the final state of the feature?


It Works For Everyone else, I tried Testing on a alt, it said expired, Or it would sometimes say "Banned from this guild."
I tried creating a new invite, It says expired. Please Reply.
Thank You.
First of all not api related. Second if you are banned it will say invalid invite.
First of all not api related. Second if you are banned it will say invalid invite.
or if you’re in 100 servers, all invites show as invalid
I was wondering if there is a list of all currently supported locales that a Guild Object could have in their prefered_locale field.
It is quite useful for bots like mine that provide a per-guild language option, to automatically have the language set based on the prefered_locale of the Guild.
But without knowing what region/language codes are available is it not quite useful to set up something for this in the first place.
So is there a place/page to find all available codes? The clie...
The message formatting topic sounds like using the user/role mention will always generate a ping; this is not necessarily true anymore.
It is a very common mistake for newbie bot developers to confuse the client secret with the bot token. I think this would be a lot less common if the client secret would instead be in the OAuth2 tab. That also seems to be the right place for it, since it's only used for OAuth flow anyway which is related to the other settings in that tab.
In the old dashboard the client secret also had a small note which explained that it's not a bot token. This could also be added back but then you have t...
Maybe a note explaining that changing the application name won't change the bot username as well?
Happened suddenly over night. Can't get around it.
https://gyazo.com/a8bdac930fb3c06117c9eba9203f0d55
Came from chrome 84 update
I checked, My Alt isnt banned, I kicked using circle bot.
And also my alt is only in 1 server and my main is in 7 servers
But thanks for trying to help
Maybe try combining all these tiny and not really worth while commits to one big one instead.
or just don't make them anyway? theres no point
bac684e gateway: guild member update now contains joine... - jhgg
This doesn't appear to be an API issue, for general support please reach out to https://dis.gd/support
I would really like this feature as well. The problem with @bartico6's remark is that Discord doesn't show how many times a user has unboosted, so a bot can't just determine the boost count from those messages.
I had one working bot so I tried to make my second bot and now both of the bots dont work,
(node:16660) UnhandledPromiseRejectionWarning: Error [TOKEN_INVALID]: An invalid token was provided.
at WebSocketManager.connect (C:\Users\M jr\Desktop\projects\discbot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:135:26)
at Client.login (C:\Users\M jr\Desktop\projects\discbot\node_modules\discord.js\src\client\Client.js:221:21)
(node:16660) UnhandledPromiseRejectionWarni...
I think this PR should also add the new error code:
{
"code": 40033,
"messages": "This message has already been crossposted."
}
When you copy your webhook url from discord it gives you discordapp.com link instead of discord.com.
discordapp.com works locally but when i deploy my code to a server it no longer works unless i change it to discord.com not quite sure what is going on here
The desktop client gives a discordapp.com link because it has not been moved to discord.com yet, but you should be using discord.com in production.
[discord/discord-api-docs] Issue opened: #1879 \[Android\] Force Closed when Move to Another Channel
When i am in The Sound Channel 1, There's have an Bots was playing song. Then, I am trying for move to Channel 2, Which it's have Bots was playing sound. Suddently, It's Force closed.
Version: [Latest Beta]
Android Version: 8.1
This issue tracker is dedicated to the Discord API and SDK's. For bug reports of the discord clients please go to https://discord.gg/discord-testers
Hello there 👋
I'd like to submit a Discord library for Nim.
Ratelimiting:

Source code:
- When remaining is 0
- Delaying route
- [When receiving a 429](https://github.com/krisppurg/dimscord/blob/master/dimscord/re...
Opcode 3 in the table

The actual documentation

I had to ask the community where it was!
Incidentally, it would be valuable if the table items linked to the sections that describe them
For some reason each time i change a channel on there, it gives my an error that its crashed this is every single time i change severs or channel or to even talk to a different person, i need help to understand why this is happening

This isn't the correct place for client bugs, try https://discord.gg/discord-testers
I was able to reproduce it. Using the 2nd method that dev-kittens provided

Documents the API changes for the new application integrations added in the integrations page update.
related: #1837
Init Curl With Header:
public function init_curl_with_header($url, $field, $request = "POST")
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://discord.com/api/v6/" . $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $field);
$headers = array();
$headers[] = 'Retry-After:...
Clarify that guilds that were unavailable due to an outage before the client was ready will send a GUILD_DELETE event.
// query:
{
guild_id: '441319831392747531',
limit: 1,
presences: false,
user_ids: ['9223372036854775807'], // (2^63) - 1
}
// response:
{
"not_found": [ "9223372036854775807" ], // string
"members": [],
"guild_id": "441319831392747531",
"chunk_index": 0,
"chunk_count": 1
}
// query:
{
guild_id: '441319831392747531',
limit: 1,
presences: false,
user_ids: ['9223372036854775808'], // 2^63
}
// response:
{
"not_found": [ 9...
For help using DiscordJS you will need to reach out to their project's support venue.
Our API does support CORS. Sometimes if there is a server error it can result in a CORS error
Your bot must also be a member of the guild with create invite permission.
VoiceManager.OnSettingsUpdate (on_settings_update event) is not documented anywhere and probably should be.
(Side note: I'd like to comment it but my english isn't good enough for that, so I'll let someone more qualified comment it)
struct IDiscordVoiceEvents {
void (*on_settings_update)(void* event_data);
};
public event SettingsUpdateHandler OnSettingsUpdate;
[MonoPInvokeCallback]
private static void OnSettingsUpdateImpl(IntPtr ptr)
{
...
It's worth noting that you need both SEND_MESSAGES in addition to MANAGE_MESSAGES to crosspost other user's messages, not just MANAGE_MESSAGES
Thank you for your contribution and I apologize this took so long to merge. I need to set aside more time to go through this repo and make sure that things are not lost. Thank you for the ping on this!
6562052 Add Discordeno to library list (#1649) - Skillz4Killz
If you have manage messages but not send messages, the publish button shows but it errors 
@jonzlin95 is this a bug? in the support article and in permission settings it says that you only need manage messages
I know this is closed, however I kinda fail to see how this is a duplicate of the mentioned issue. Per issue #1054 (and its PR), anything that doesn't classify as a bigint will be returned as a number (for instance, "123" will be returned as 123).
Most IDs on Discord right now are either 17 or 18 characters long (when converted into a string). The ID provided in the issue description (9223372036854775808) is 19 characters long. An ID that long WILL happen in 2084-09-06T15:47:35.552Z (...
LobbyManager functions GetLobbyCreateTransaction, GetLobbyUpdateTransaction, GetMemberUpdateTransactionand GetSearchQuery all return an object that MUST be used, otherwise next time you're calling the same function, you will result in a LockFailed error.
This behaviour is not documented anywhere and probably should
UPDATE: If I call GetSearchQuery, don't use the created LobbySearchQuery it, then call GetLobbyCreateTransaction, it will result in a LockFailed.
Calling one of these functions will result in locking all of them, until you use the returned object.
Ok, our rate limit issue for us is we can last maybe 4-5 seconds on a bad day and a good 3hrs on a good day before discord hits us with a rate limit. Spawns have always been the issue when it comes to our requests to the API of discord. you got to think we are on 651 servers and the bot is constantly scanning all of those channels to decide where to put a spawn.
When it finds a channel it wants to put a spawn, they spawn in groupings of 1-5 but each one of those spawns is a request to the A...
This issue doesn't contain any specific information that we can act on either to understand your issue, or fix it.
This issue doesn't contain any specific information that we can act on either to understand your issue, or fix it.
I'm acting on behalf of the developer, and limited on much information at this time. Can you tell me exactly what info exactly you would need to try and resolve this? All I can say is that we are experiencing high volumes of rate limits at least once a week, where the bot will virtually go offline for 3-7 days before allowing anyone to use commands.
Valid sizes are 16, 32, 64, 128, 256 (as far as I know). Any other size would cause a InvalidPayload result.
Hi! I'm really new to the world of coding, and only recently started self hosting nadeko bot (there's a doc on GitHub by ScarletKuro, which is what i used). Up until now, I rarely ran into any issues that couldn't be fixed, until a few days ago I get a notice from Discord letting me know my bot (the self hosted nadeko) has connected more than 1000 times. Since the token was reset, I also changed the information on Heroku to match with the new token. But then, the bot did it again and I got th...
There's most likely an error somewhere in your bot, which causes it to constantly try to reconnect. Which library are you using?
There's most likely an error somewhere in your bot, which causes it to constantly try to reconnect. Which library are you using?
I'm not sure what a library is, my apologies. Could you explain so I can try to understand?
What language have you coded your bot in?
NadekoBot is coded in C#,
Nadeko uses the library Discord.Net, so go to the discord.net channel in the Discord API server. However, note that they might not be able to help you much if you are not familiar with the code.
Also it might be an issue related to Heroku (it's generally better to buy a VPS to host your bot).
Oh, so he hasn't coded it himself... I should learn to read again :|
@snowzie In that case, the best option is to open an issue in ScarletKuro's NadekoBot repo, since it is a bot-specific issue, not an API issue.
Oh, so he hasn't coded it himself... I should learn to read again :|
@snowzie In that case, the best option is to open an issue in ScarletKuro's NadekoBot repo, since it is a bot-specific issue, not an API issue.
Edit: Darn it, @advaith1 has beated me again 😠
I tried talking with ScarletKuro themselves on Discord, but they have only told me that: "my only guess is that your bot got rate limited, and thats why no response
so you g...
Basically, something is wrong and makes it keep constantly restarting. It's either an issue with the code or an issue with the hosting. Unfortunately we can't really help diagnose it more than that.
Generally, instead of self-hosting a public open-source bot, it's better to add the official instance of the bot, and/or make your own bot from scratch.
Basically, something is wrong and makes it keep constantly restarting. It's either an issue with the code or an issue with the hosting. Unfortunately we can't really help diagnose it more than that.
Generally, instead of self-hosting a public open-source bot, it's better to add the official instance of the bot, and/or make your own bot from scratch.
Alright, thank you. Is there anything you suggest that I could do to try and figure out the issue?
No such limitation exists on our end which would cause a bot to go down for 3-7 days if they hit a message/send rate limit. I'm not sure what the issue is here, but based upon that, I don't think it's an issue with Discord, but perhaps the code of the bot.
Good luck figuring it out. If you do have more concrete logs though that demonstrate that discord is telling you to retry after 3+ days, please open a new issue, complete with debug logs and timestamps.
Hi, I'm not sure if this is the right place but I'll give it a shot. I downloaded the SDK from https://dl-game-sdk.discordapp.net/latest/discord_game_sdk.zip and copied the relevant files into unity (lib and csharp folders). I get the following warnings + errors:

Upon further inspection, the errors are coming from this line:
 thanks anyway
well try to put that idea on to do list 😊
Alright. I'm just wondering why it happened suddenly. It was working fine for months
Hello,
I do have the same problem when I'm using discord.js' master webpack (https://github.com/discordjs/discord.js/tree/webpack).
The only thing I've noticed is that a GET https://discord.com/api/v7/gateway/bot gives me a 403 response, but everything's fine when I do GET https://discordapp.com/api/v7/gateway/bot.
Are there any other "gotchas" to this? I've been able to get it to work on one Discord server but not another. On the one it fails on it says 400 Bad Request. The bot is the one creating the message and crossposting it. I checked and it has permissions for everything. Is there some sort of server setting that would prevent this from happening? I have to manually publish them.
These are the gotcha's that I know about:
- Trying to crosspost a message that is already crossposted will result in the error response "40033: This message has already been crossposted"
- You can crosspost your own messages if you can send them
- You can crosspost other people's messages with MESSAGE_MANAGE permission
- You cannot crosspost messages if the guild does not have the NEWS feature enabled
No. I just tried with SDK 2.5.6 and SDK 2.5.8, with the C language, and 512, 1024 and 2048 are causing a result code 5, which is a DiscordResult_InvalidPayload.
This could be an issue with the Game SDK, but for now, 1024 is not supported. Feel free to test!
#include <iostream>
#include <assert.h>
#include "discord_game_sdk.h"
#ifdef _WIN32
#include <Windows.h>
#else
#include <unistd.h>
#include <string.h>
#endif
#define DISCORD_REQUIRE(x) assert(x ...
Is it sending a token in the authorization header? Also, could you try api v6 as that’s the current documented one and one that’s stable? V7 is known to have some random changes before.
By token in the authorization header, do you mean the token of my bot? In that case, yes, it says Bot <token of the bot>.
Tried also to change API call to v6 (GET https://discord.com/api/v6/gateway/bot), there's still a 403 error.
I fixed them by routing every request through my back end.
Make sure to have some security so people don’t abuse your backend as a discord api proxy. Glad you found a solution.
There appears to be an entirely undocumented (and unreported in the API) rate limit of 2 channel renames/10 minutes. The first two name changes go through fine, with the expected/documented rate limit headers indicating that I can use the endpoint 5 times per 15 seconds:
x-ratelimit-bucket: 9852e1a53c06ffc5a89d65fef85ca4ce
x-ratelimit-limit: 5
x-ratelimit-remaining: 4
x-ratelimit-reset: 1597330030
x-ratelimit-reset-after: 15
However, the third request results in a 429 re...
Note that per [this post](#api-announcements message) on the Discord Developers Discord, the name change limit of 2/10 minutes should be reflected in the normal rate limit headers.
it was later clarified by another dev these limits do not show in the limits and it's not possible to do so either

https://canary.discordapp.com/channels/613425648685547541/697489244649816084/716001476035739699
Could this be documented?
Just to put this in writing here for documentation so it's not just sitting in a discord thread:
I have a bot that has been temporarily blocked three weeks running at our busiest time, and the only explanation we've come up with is that we are getting too many of these 429s. I really don't think that we are having 16/second for ten minutes, but since I've only added response code logging now, I have no way to be sure of that until we get blocked again. We are using discord.js, which does i...
I'll write my specific situation here as well I guess. I have a channel where I post a youtube link, and it is deleted and reposted by a bot sending a webhook. I send a message here every couple days or so.
Every time I do this, my account's message will have an embed attached to it (until it is deleted, of course). The webhook message will generate an embed but then it will disappear, similarly to @DiscordCatto's example above.
If I send the same message again through my account - just th...
Hi, I want change bot presence. Im not found API endpoint. If you know API endpoint, please comment
There is no such endpoint; it is a gateway command where you send a Status Update: https://discord.com/developers/docs/topics/gateway#update-status
We needs a read-DMs-only can't-even-read-channels no-bot-tag-indistinguishable-from-an-ordinary-user extra-verification-required API for creating honey pot bots to catch spammers quickly and efficiently.
Need an amount of these kinds of bots proportional to the number of users in a discord server; they need to not count toward the true pop-count of the server, they need to be distinguishable (and maybe by default hidden) from real users by users with some non-default-role flag.
Can we m...
Would make more sense for it to raise a 403 since you're trying to do an action without permission rather than having issues with an invite not existing
It's probably made this way so you can't bruteforce 'secret' invites from a certain guild.
I think it would make sense to raise 403 even if the invite is invalid.
It had occured to me - I thought it would be worth me checking here first since it's undocumented behaviour and unclear as to whether it's a bug or intentional
I get many errors like this The requested scope is invalid, unknown, or malformed. during a OAUTH2 flow before understanding that the root cause was the whitelist only scopes as documented here
I think a warning or some message in the OAuth2 URL Generator would be useful to users (like me 😅) that overseen the whitelist.

If it was made this way to prevent brute force, wouldn't it make more sense to always return a 403 as opposed to always returning a 404?
Ok, judging by the dismissal this has received, I guess we prefer to fight spam on Discord with tweezers instead of empowering community efforts. 👎
Ok, judging by the dismissal this has received, I guess we prefer to fight spam on Discord with tweezers instead of empowering community efforts. 👎
Will add all of these later tonight/tomorrow
You fight spam by disabling DMs and reporting bot accounts to discord.
There are far better alternatives that can be done to the API itself than to allow "bots that are user bots but not actually".
Honey potting would be a pretty good idea except there are perfectly good reasons to DM/interact with an inactive user
Wouldn't a better and easier solution just be a new permission server-wide that prevents a user from sending(non-friends) a DM.
By default keep it disabled and then bots that need to dm like welcome/mail bots can be given express permission to DM members on that server. This would also prevent user bots I imagine.
@Skillz4Killz That'd be annoying for legitimate users, unfortunately -- and it'd take away from the user's autonomy about how they want to control DMs sent to them.
It's honestly just easier to remind people that reporting, blocking, and privacy settings all exist -- and to remind people that those "free nitro" and "join my minecraft server for free robux" messages are scams.
Originally, when you use the create dm endpoint (POST /users/@me/channels) with a user you cannot DM, it returns a 403 Forbidden. Now, it returns a 400 bad request. Is this behavior expected indefinably, or is this just a bug? This happens on api v6, which also breaks how my bot works as I expect a 403 with code 50007. For this endpoint, the 400 status code gets handled as an internal error in my bot. If this is permanent, can I just expect it to always return a 400 for users you can't DM?
My initial thoughts on this is that this is Discord working around bots' 10k 401, 403, or 429 status codes per 10m (So you can't get banned from Discord from just dming someone who has DMs turned off). So yeah, I would imagine the status code should stay 400.
Oh, well I just want to make sure it’s stable and doesn’t change, and that they could announce it as it’s an breaking change. (It happens in v6 and v7, which lots of bots are using)
Looks like just create DM raises a 400, create messages is still 403. 🤔
Both raised 403s in the past... If it used to return 400s, I would have coded things differently, and expected 400s. But it’s just an issue recently happening. Anyways, gonna wait for discord to see this.
When generating the embeds for links in webhook messages discord seems to be including the leading ")" that completes the markdown in-line link in some cases in the generated embed's title leading to an invalid link. This can be seen in the following request
> POST /api/webhooks/744296114370641941/...=true HTTP/2
> Host: discordapp.com
> user-agent: insomnia/2020.3.3
> cookie: __cfruid=c2a75e2c298e988f234f56c2f3f58878ef6fdbd0-1597507189; __cfduid=dc9d3b3e492aebdb125da6c9c1ab739...
When declaring just the intents GUILDS and GUILD_VOICE_STATES (129 raw) on the v6 gateway with the bot 658822586720976907 the gateway seems to be returning duplicated member objects in GUILD_CREATE payloads for members who have active voice states in said guild as shown by the following payload (where I shortened some fields for the sake of brevity) which was received on startup
{
"t": "GUILD_CREATE",
"s": 5,
"op": 0,
"d": {
"large": false,
...
Possible duplicate of #997
ah ok, thx
Individual rate limits are generally not documented on our API docs, and that is for good reason: they can change at any time. We make no guarantees that rate limits will remain the same, and they may end up being variable per application at some point in the future. We understand some 429 errors are to be encountered, which is why we offer flexibility by allowing applications to still encounter them before being temporarily blocked from the API. I would recommend you start logging and/or tra...
The only thing we changed recently to this endpoint is you receive a 400 if you now try to open a DM with another bot (which you can't DM anyways). Targeting invalid users has always been a 400 response on this endpoint (like opening a DM to yourself). A block would not cause a 403 on this endpoint.
This is working as intended. We intentionally return 404s to deny existence of a record if you do not have permission in some contexts.
Fair enough - might I ask what the logic is behind not just returning a 403 no matter whether whether the endpoint is, should manage channels not be a permission the bot has?
@night I think what we're asking for here, is documentation on sub limits in general, not of a specific sub limit - essentially what was said in the screenshot a couple replies above of your message in discord-developers
You fight spam by disabling DMs and reporting bot accounts to discord.
There are far better alternatives that can be done to the API itself than to allow "bots that are user bots but not actually".
They're not just scams, they're automated scams. Honey potting is how we effectively fight spam with emails and messaging.
The individuals compromised by the scams become unsuspecting scammers themselves. Discord hurts itself by allowing this sort of thing to propagate without a legiti...
You fight spam by disabling DMs and reporting bot accounts to discord.
There are far better alternatives that can be done to the API itself than to allow "bots that are user bots but not actually".
They're not just scams, they're automated scams. Honey potting is how we effectively fight spam with emails and messaging.
The individuals compromised by the scams become unsuspecting scammers themselves. Discord hurts itself by allowing this sort of thing to propagate without a legiti...
Right now, the API documentation makes no mention of the existence of rate sublimits. Indeed, it seems to suggest that they do not exist (emphasis added):
Rate limits are applied on a per-route basis (meaning they can be different for each route called) and per-account performing the request (if you're using a bearer token the user associated to that token, or if you're using a bot token the associated bot), with the exception of an additional global rate limit spanning acros...
it's fairly simple as a spam bot author to just not DM inactive users, so your solution of creating inactive users that can only receive DMs is quite useless.
I agree with Kittens - I want documentation of some kind on sub limits in general, although obviously I would love documentation on this one in particular. To that end, I've opened #1909 to request that the official docs include the existence of sublimits (specified or unspecified). I spent over a week chasing my tail before uncovering that this particular sublimit existed from a post in the Discord Developers guild - if the official docs had simply said "other rate sublimits may exist based ...
This is missing the row separator at the end
| 40033 | This message has already been crossposted |
I've sent a message with a bot in an announcement channel, and have then manually published it from my Discord client using my user account. A few minutes later I've made the bot edit the message and here we are: 2 hours later and the edit has only taken place in the original message while all the crossposted ones still have the original version without the edit. Is this a bug, a feature, an error on my side or does Wumpus just not like me?
You'll probably want to share sample channel and message IDs.
Original Channel ID: 704606488659886190
Original Message ID: 744687840624902275
Channel to which it was crossposted ID: 632939112768339970
Crossposted message ID: 744687889232953344
And I take it you don't see a simple solution for that?
On Sun, Aug 16, 2020 at 12:01 PM kittens notifications@github.com wrote:
it's fairly simple as a spam bot author to just not DM inactive users, so
your solution of creating inactive users that can only receive DMs is quite
useless.—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/issues/1902#issuecomment-674544379,
or unsubs...
And I take it you don't see a simple solution for that?
personally im with @Skillz4Killz for this. others seem to find it too restrictive, but i can understand why some larger guilds may be ok with the tradeoff of somewhat impacting ux
maybe a guild-wide default that can be overridden by the user themselves to be able to receive dms would be better?
that would be a good idea (and many people have been asking for it for a long time) but it should be enabled by default (like it is currently) and be able to be overridden by the user
Looks like after more than 4 hours it finally got edited. Weird if you ask me 🤷🏻♂️
Hello there,
I'm looking for a event which gets triggered if somebody boosted the server.
Thanks
Can't you detect when the server booster role is assigned?
Whenever a new boost is added, a system message is created. You can use the MESSAGE_CREATED event, and look for system message with specific type(s). The message author will be set to user who boosted.
The docs show the following with relation to mention formats:

However, testing reveals this to be incorrect. Nicknames do not factor in to the mention format at all. On the desktop app, mentions are formatted with the exclamation mark. On mobile, they are not. Adding or removing a nickname from the user does not...
Checking GUILD_MEMBER_UPDATE and checking if the premium_since field has changed also works for first time boosters though there is currently no way to detect multi-boost users.
As an addendum to my message, another system message is created when a boost tier is reached.
The only way to get the "Nitro Booster" role is to boost the server, no admin, or owner can give it to you, so the best way to do it is to create an event when the role "Nitro Booster" is given.
The /guilds/:id/integrations?include_applications=true endpoint only returns a maximum of 50 integrations, even when the guild has more. As a result, not all of the guild's integrations can be managed in the integrations tab.
This is working as intended, and we may introduce an upper bound cap on integrations/bots per guild in the future.
The documentation here is accurate. To report client bugs, you can visit https://discord.gg/discord-testers
Hi everyone!
We have news about the Bot Verification program and the Verified Bot Developer badge.
For those of you who have already verified, thanks for being so ahead of the game. For those that still need to, October 7 is fast approaching! Remember you can still get verified after October 7, but that's when our restrictions will be enforced on non-verified bots in 100 or more servers.
When we announced the Bot Verification process, we promised that it wouldn't be a long and di...
How is this intended? How is it not broken behavior that it's impossible to list integrations that exist?
[discord/discord-api-docs] New comment on issue #1510: Bots using /crosspost and /followers endpoint
You also need to update the description for Guild News Channels in resources/Channel.md
Bots can post messages into this type of channel if they have the proper permissions, but cannot "publish" messages and push them out to the servers following the channel. These are called "Announcement Channels" in the client.
Maybe add some kind of pagination if there are too many integrations?
Someone mistook this for Apple.
I've recently needed to start checking the audit log for nickname changes, and I second this request for better filtering in the hope of seeing some implementation.
Being able to search by target_id would be really helpful (maybe make it so that it only works if you supply an action_type parameter, if that would make it easier?)
And also, in addition to being able to filter before a certain Id, it would be helpful to be able to search after an Id. This could seriously reduce the am...
Hello!
I tried to send message with embed object, using the /channels/{channel.id}/messages resourse with my bot
Here is request
curl --location --request POST 'https://discord.com/api/channels/{my channel id}/messages' \
--header 'Authorization: Bot {my-bot-client-if}' \
--header 'Content-Type: application/json' \
--data-raw '{
"content": "Hello, World!",
"tts": false,
"embed": {
"title": "...
OMG!
Huge thanks! I did not assume that the "link preview" option also plays with embeds!
this is only for internal use at this time (to power dev portal) - we don't have plans to roll this out for bots, and it is not supported via oauth2.guilds scope either.
If this were to be documented, maybe https://github.com/discord/discord-api-docs/issues/1295 should be reconsidered (as that could be considered another instance of this)
Is there a good reason why system is not true for the PSU author?

"author":{
"discriminator":"0000",
"id":"681603896510251140",
"username":"Public Server Updates",
"avatar":"5bdefaea027eb8251e26189a0e6cc9dc",
"bot":true
},
If this is intentional, the docs should be clear as to what an "Official Discord System user" is or is not.
I'd like to add this reply to an issue I opened some time ago about the difference between the two syntaxes.
The
!denotes a member with a nickname and thus hints the notification server to fetch the nickname for rendering the notification. It's an optimization hint for the server and has mostly no different message rendering effect for clients. If possible, you should always use the second form for member...
It would be really cool to have that feature,
because it will allow you to do a lot of things, such as image broadcasting, video etc... (ex: youtube clips during music)
This repository is for the documentation, not feature requests.
Having said that, it was explicitly stated by devs that this is not happening.
I've seen regular server video work but not Go Live.. discord voice servers do not stop you if you end up sending the correct packets.. but aside from one actual screenshot that I didn't make, I did see lots of stuff debug information to know that discord does not indeed block these packets from reaching your client.. I was just too dumb and got a bunch of decoding errors instead. However, none of this is documented or supported at all, just thought I'd send this here
@ziad8727 I had bot video working. There was a bug which allowed the backend and clients to receive it without dropping the packets, but it isn't there anymore. (And hasn't been for way over a month.)
Oh, it was fixed? Then what I said can be disregarded. But it still would've been cool otherwise. Thanks for pointing that out
Yes, it was fixed way back around May 28th. That's when it stopped working for my bot. (And I assume all bots.)
The initial setup message is sent from an actual system user (with the verified checkmark). All other announcements are sent through a webhook via Channel Following, it shows the system badge because the source guild id is in the client.
@Emzi0767 this repo is also for API feature requests and issues
Due to the complexity of video (and oh boy is getting real time video right complicated.) We are deliberately not supporting video or go live for bots as we are actively refining the protocol. It is very much a moving target - unlike voice which is orders of magnitude more simple and stable. Video is an entirely different beast.
In simple terms, audio can be treated as fire and forget of opus frames enveloped in an RTC payload with the right encryption.
Video however is not that straightf...
That's all great, but doesn't explain why the author isn't verified, nor whether it should be classified as an "Official Discord System user". Apparently it's some intermediate type between that and a regular webhook author. If that guild ID is special, should it be documented?
<!--
/* Font Definitions /
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/ Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
code
{mso-style-priority:99;
font-family:"Courier New";}
.MsoChpDefault
{mso-style-type:export-only...
The clients should be including the ! when the member has the nickname, and not including it when the member doesn't have a nickname. As night said, if that isn't the behavior that actually happens, then that's a client bug and should be reported in Testers.
Is there a way to report it on the Testers discord without going through the whole bug hunting process?
Hi, I have a bot and I was working on a canvas but I encountered this bug, when I add a image inside the embed, when the image is like 16:9 it gets cut off, but that just when we visulaize it from mobile, from PC there is no problem but from mobile it gets cut off.i add also the photos( I just hided my name and tag) ad also sorry for my bad English
This is the full image

As you are trying to delete a relationship, which doesn't exist, a 404 would be more fitting.
DELETE is by HTTP definition idempotent, but you can get 404 when trying to delete a resource that does not exist. I think that for this endpoint, there must be a distinction between removing a member's role that doesn't exist in the guild and removing a member's role that the member does not have. You get 404 for the former and 204 for the latter.
"The 204 (No Content) status code indicates that the server has successfully fulfilled the request" as per RFC 7231 (Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content). Therefore someone would assume, the request invoked some kind of processing on the server-side.
I understand that a 404 may be used to indicate a missing guild member/role etc. but sending a 2xx status code for something that is definitely an error on the requesting side, there should be some kind of signal, tha...
9.1.2 Idempotent Methods
Methods can also have the property of "idempotence" in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the same as for a single request. The methods GET, HEAD, PUT and DELETE share this property. Also, the methods OPTIONS and TRACE SHOULD NOT have side effects, and so are inherently idempotent.
However, it is possible that a sequence of several requests is non- idempotent, even if all of the methods executed i...
This issue also effects modifying a message it will reset the allowed mentions property.
Lib devs are saying that this is a Discord issue because it should not edit properties that you don't specify.
I think that was supposed to be fixed with #1419/#1483? You can include the field in the patch data, but I don't know why it's cleared when omitted.
So I was playing around, and if you get a webhook to post a message with both an emoji and an embed, and then suppress embeds on the posted message, the message no longer renders the emoji correctly.
This can be seen after a client reload. Not entirely sure if an embed is needed or not or if the suppress call is all that's needed.
Ok so this was supposed to be fixed but apparently not good to know also i'm using discord.net and they don't include any allowed mentions when modifying a message so it should never be reset.
yeah it's a bug but in the meantime you can just include the current properties in the patch (which would probably be better for the library to handle)
On the Get User API endpoint, it does give a lot of information about a user but maybe it would be even better if the response included something to tell if the user ID you gave was a bot account or an actual user, as well as if it's a verified bot.
https://discord.com/developers/docs/resources/user#get-user
It could look a bit like this:
{
"id": "80351110224678912",
"username": "Nelly",
"discriminator": "1337",
"avatar": "8342729096ea3675442027381ff50dfe",
"bot": t...
this is already there: when it is a bot, it will have bot: true, and verified bots will have public_flags: 65536
Ah ok, thanks Advaith. Never saw that until now.
You could return a 304 in this case, since the entity was not modified (they never had the role and taking it away wouldn't do anything)
Oh whoops. I’ve seen other APIs do that so I guess those are breaking the spec. Thanks for pointing that out
static void UpdatePresence()
{
DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.state = "Playing RJ HOMETOWN";
discordPresence.details = "OFFICIAL SERVER";
discordPresence.startTimestamp = 1507665886;
discordPresence.endTimestamp = 1507665886;
discordPresence.largeImageText = "RJ";
discordPresence.smallImageText = "Rogue - Level 100";
discordPresence.partyId = "ae488379-351d-4a4f-ad32-2b9b0...
you ok man? did you mean to post this here
I just want to make a quick note for all those struggling on iOS (like myself)
Discord seems to have problems with custom schemes (read: anything not http/s). When working with redirect URIs using libraries like OAuthSwift, it's better to have a custom domain redirect that sends the client back to your app. Even though Discord's online OAuth settings accept a custom scheme like myapp://authorize, you will get this same 'invalid redirect_uri' error.
Instead, the solution I ended up wit...
Hi, unsure why we are unable to access our CollabLand bot. Please dm!
https://twitter.com/abridged_io or https://twitter.com/Collab_Land_
Have not received any notification regarding rate limit etc. Would love to resolve promptly!
That isn't enough info; why do you think it's banned?
Potentially due to rate limits? We've had quite a bit of traction, ofc want to adjust to abide by API constraints... is there a way to troubleshoot?
well you should have tried to debug before making a github issue; try going to the support server for the API library you use
@advaith1 till this morning bot was working fine. A few hours back bot stopped.
Tried to debug and other bot token works fine (Same code)
Just our collabland bot is not logging in. (Same code different token works, we also tried to reset token)
well you should have tried to debug before making a github issue; try going to the support server for the API library you use
thanks, could you please share support server link?
well I don't know what api library your bot is using, and check your logs for errors
also, staff cant check if your bot is banned unless you post the bot's ID
well I don't know what api library your bot is using, google it and you should be able to find a link to it
and check your logs for errors
also, staff cant check if your bot is banned unless you post the bot's ID
Thanks @advaith1 i'll try on other forums. In case if you can help here is bot app id 704521096837464076
@alokt The link for the API support server is https://discord.com/invite/discord-api.
That said, if you think your bot is banned, you should create a ticket at https://dis.gd/support asking for information on if the bot is banned and why. They should be able to look up info on what's happening, and help you figure out what's wrong. Though keep in mind that it may take some time (a few days) for them to respond.
I've also seen staff (who are usually marked with "Member" at the top-ri...
@LikeLakers2 Thank you for the help.
We've created a Discord support ticket as well (ID: 8713157) if any Discord staff can help with this.
Yeah since you created a ticket, Discord Staff would reply. Please wait for an official verdict, actually nothing you can do more atm.
This bot is not banned on our end. The issue lies elsewhere. Wish you luck in figuring it out.
P.S. in the future, if you do think your bot might be banned, a big red error message will appear in the application page on the dev portal saying the bot has been banned/quarantined.
It would be very ideal if there was an endpoint to get Guild Members of a certain role (or even just the guild members IDs) instead of getting all Guild members (which is very taxing if a guild is super large) just to filter out most of them and only get those who happen to have the role id
Why is this closed? At the moment, you offer bots partial boost monitoring functionality and a user full functionality. If you were concerned about users being unfairly targeted, that was a discussion for when you guys decided to give a system role, server notification, and a badge to users who boost, wasn't it?
The current implementation is as though someone did the work for users, and wandered off halfway through implementing it for bots.
@DigitalCommodore It looks open to me...
Oh, hell. That's what I get for getting grumbly before I'm done with coffee -_-
The documentation suggests that the response will be a null code:
code will be null if a vanity url for the guild is not set.
But from my testing you get a 404 with this error response:
{
"message": "Invite code is either invalid or taken.",
"code": 50020
}
The wording of that error makes it seem like this is a bug. If it isn't a bug it's definitely unintuitive and the docs should be adjusted.
Apparently, this seems to be null only when the guild can ...
Currently Embed supports inserting a single image, which imposes some restrictions. Let's say I create a bot that publishes posts from a popular social network to Discord, but I can only attach 1 image.
If we take into account the preview of the Twitter post links, there are more than 1 image attached, and it looks quite nice.

BTW, this is possible to do with webhooks (not really documented tho); there are multiple embed objects with the same url and the client shows it as 1 embed with multiple images, but it can't currently be done with bots because bots can send 1 rich embed per message as opposed to 10 for webhooks.
If this can really be done with Webhooks, then need to document this point.
It's possible with a webhook also this is a copy of #1643
Here you can see that the last part of the first line is unreadable, even when scrolling:
The title also has 0 padding.
I'm reading the docs in Safari - Mac 14.0
I spam clicked on the Mute and Deafen Button and it shows on your screen and your friends screen that you are muted or deafened but you can still hear the person.
This repo is for issues with discord's raw api, issues experienced through the official client don't belong here and while I would usually suggest taking client bugs to https://discord.gg/discord-testers that is likely intended behaviour rather than a bug as it's a side effect of ratelimits.
Hello, on the mobile app if you scroll up in a chat and someone sends a message, it automatically scrolls you down and loses your place in the chat where you previously were. I hope I explained this well and it can be looked into soon. Have a nice day!
Hi! This repository is for issues with the Discord API. For client issues, please join the Discord Testers server. Thank you!
I've joined the server but I still can't find a way to report bugs
Hi, I can't regenerate my bots token. It stills the same.
2020-08-27 09-13-19.zip
Hi, this video shows you regenerating the token successfully. I'm confused as to what the issue is.
When I regenerated it is stills the same. I copied it and it was the same
Oh my bad it worked but I didn't noticed
i've been notified that "Discord Partner" has been renamed to "Owner of a Partnered Server" but it's just on canary atm, will also change that once it's live on stable
I'm interested in retrieving a user's list of friends and their friends' Presence data over OAuth.
It looks like this capability is possible through the GameSDK (https://discord.com/developers/docs/game-sdk/relationships#relationships), but I think It would be great to provide the ability to access this information without needing to be associated with a game.
Ideally, this would be accessible from an endpoint: /users/@me/relationships.
See #719. It seems that this functionality exists, but requires being whitelisted and isn't documented.
Obtaining a user's friends list already exists, but it's behind a whitelist. See https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes (specifically relationships.read near the bottom of the list)
Ah, that might be exactly what I need then. Does that provide the ability to access friends' presences as well, to determine what they're playing?
Presence data is only available through the gateway - and you must share a server with the user you want to get the presence of.
@dev-kittens Gotcha, then it sounds like the API has everything I'll need. Thanks very much for the quick and helpful responses! I'll close out this issue then.
Few day ago i tried to start my bot but it came with token error, i tried regenerating token several times but its not working. Did he get banned?. he's name is TwilightBot #3819 .
I think you should go to https://dis.gd/report -> Report Type -> Appeal an action Trust and Safety took on my bot
You can check whether discord has disabled your bot by going to its Bot page in the Developer Portal.
I’ll be brutally honest, I am quite disappointed to discover that a service so popular and that goes out of its encourage developers to integrate, embedded, and build on top of their api, lacks any machine readable API specification for developers. Really really disappointed ☹️
Hello 👋
I was hoping to request a way to be able to determine the message author on Reaction Events. A lot of bots have features that work with reactions. In order to work some of these features only allow reactions to be on messages that the bot itself sent. This helps eliminate a ton of unnecessary reactions from hitting the DB and getting the settings related to the feature. However, this pushes the burden from calling the DB to calling the API eating up rate limit requests. I could el...
Just so you know: your code is specific to a language/library (I think djs) and thus are not HTTP requests.
Just so you know: your code is specific to a language/library (I think djs) and thus are not HTTP requests.
What they are asking for is to get more information than simply ids (see http://discord.dev/topics/gateway#message-reaction-add-message-reaction-add-event-fields)
Just so you know: your code is specific to a language/library (I think djs) and thus are not HTTP requests.
The code I wrote is based on Discordeno library, but that is irrelevant. The code's purpose is to show the use case and effectiveness of my request, being that it could save a ton of API requests.
What they are asking for is to get more information than simply ids (see http://discord.dev/topics/gateway#message-reaction-add-message-reaction-add-event-fields)
Actually, I'm ju...
Attaching a file (video) works. Cannot however link to it in the text since links to attachments are not supported. Tried setting the image: to the embedded video. Shows error (probably tries to display the video in an <img/>)
Bots and webhooks obviously can send videos, its just the block from using video in embed. Probably would be able to use attached file as video field, as is possible with thumbnail, author image, and image fields.
I'd like to see this implemented
When i succesfully authorize using oauth2 i want to exchange the returned code for an access token in my backend application. Every time i do this it will end up with the following error: {"error": "invalid_request", "error_description": "Invalid "code" in request."}
Since 'm not debugging my framework (and dependencies) I tried to obtain an access token using curl; following the developers tutorial [here](https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-urls...
Okay, just after sending in the issue light shine upon me.
I figgured out that my controller function (that is triggered per the redirect_uri) will do a fetchUser() on the (Discord client) user provider. This in turn allready seems to use (in background) the code to fetch user information from the Discord API, and therefore, the code is not longer valid to use for obtaining the access token.
It would be nice to make an addition in the documentation that the returned code is only valid...
- Removed the outdated Discord Developer Newsletter registration link
Accidentally requested changes, still a duplicate.
I think this is similar to the issue I opened a while ago about setting a vanity code and getting the exact same error response. IG discord just needs to fix some api responses that seemed to have been rushed in the development process.
There doesn't appear to be anything actionable on our end from this issue - closing.
My other project is working with the same infrastructure, but my main project is not working. I renewed the token, the problem still persists. I will be glad if you can help
try to connect to the gateway via a websocket, if that works, its a problem of your side
How?
Just go to the discord's website (otherwise because of the CSP it wont let you create the websocket) open dev console and type this
const token = "YOUR TOKEN"
const ws = new WebSocket("wss://gateway.discord.gg/")
ws.onopen = () => ws.send(JSON.stringify({ op: 2, d: { token, properties: { $os: "win32", $browser: "browser", $device: "desktop" } } }))
ws.onmessage = () ...
The web socket is already connected. As I said, the same infrastructure works on another bot but my actual bot doesn't work. There was no problem until this morning.
Then its a problem on your side
I have my own Discord bot (based on Discord.js). The problem is that this Discord receives messages with a delay of 2-6 seconds and accordingly has a very bad ping. I have already tested a lot and have come to the conclusion that this problem only occurs when I use the token from this bot. The same code with another token is working fine.
It seems as if the bot is being permanently throttled by Discord and messages are only received with a delay.
I am aware that there are rate limits. But t...
Are you receiving the messages slowly in all clients (ie an official Discord client and in d.js)?
Ok that's interesting I tried very simple Python code because you gave me the idea to try something completely different and now I'm getting the message and the response in discord immediately.
Sounds like somehow d.js's message create event is being delayed. Not sure how that would happen on only one bot. You'd probably want to work with d.js people to help you debug this.
The fact that it's not because of Discord helps me a lot.
thank you
@Sardonyx78 shoudn't you wait for gateway hello payload before sending identify? Also, doesn't the gateway use query params to specify the encoding and version?
When you retrieve someone's snowflake with \@user and that person has a nickname on that server, you will receive 2 different snowflakes based on the device.
Example:
In both situations the user has a nickname:
On pc, if you get someone's snowflake it gives you (correct) On mobile, if you get someone's snowflake it gives you (incorrect)
This applies to both the Discord application and the api.
@Sardonyx78 shoudn't you wait for gateway hello payload before sending identify? Also, doesn't the gateway use query params to specify the encoding and version?
const token = "YOUR TOKEN"
const ws = new WebSocket("wss://gateway.discord.gg/?v=6&encoding=json")
ws.onmessage = ({ data }) => {
data = JSON.parse(data)
if (data.op === 10) ws.send(JSON.stringify({ op: 2, d: { token, properties: { $os: "win32", $browser: "browser", $device: "desktop...
This issue doesn't contain any information that can help anyone debug this issue, such as:
- error logs
- bot/application id
- a detailed description of what exactly is wrong.
I'm going to close this issue, but feel free to re-open if you have more info.
When are the premium_subscription_count & max_video_channel_users properties on the guild object undefined? I cant seem to find such case.
There are several Discord objects that are associated with guilds. Some (e.g. channels, webhooks, and invites) innately have a guild_id or guild.id property, but others (e.g. roles, emojis, and messages) do not. This is not an issue when these objects are received via gateway events because the missing guild_id either accompanies the payload (as with roles and emojis) or is injected into the object (as with messages). Via HTTP, this is not an issue for roles or emojis because you need p...
(said this in discord but commenting here so others can see)
max_video_channel_users was documented in #1512, and looks like it was marked as undefined because that was before the feature rolled out to all guilds, so it was undefined for some. idk if it can still be undefined
premium_subscription_count was documented in #960, maybe it is undefined in some cases or it was a mistake
(we should wait for staff to confirm)
You change status on Boghost.com (not for free comings soon not free)
I'm quite sure messages do... Or, you can get it from the channel ID quite easily
I'm quite sure messages do...
Here is an example payload from the get channel message endpoint. No guild_id.
{
"flags":0,
"edited_timestamp":null,
"id":"750771635031638096",
"mention_roles":[],
"pinned":false,
"mentions":[],
"embeds":[],
"timestamp":"2020-09-02T17:38:26.454000+00:00",
"content":"test",
"channel_id":"381896832399310868",
"attachments":[],
"type":0,
"mention_everyone":false,
"tts":false,
"author":{
"discrim...
How does that have anything to do with the custom presences received on the gateway?
When using a redirect_uri with a custom protocol (for example gameroom://login), it successfully gets to the " wants to access your account" page with the "Authorize" button.
However, upon pressing "Authorize", it gives an Invalid "redirect_uri" in request error.
This does not happen when using a http or https link, only when using a custom protocol.
As a hackfix I think if your protocol link is the first redirect uri configured you might be able to exclude that from your authorization request and let the api use the default (first) redirect uri when authorizing.
Hello 👋
Bots currently have a limit of 8MB upload limit. But users can upload up to 100MB. I need to be able to re-upload a user-provided image and this works for the most part but when a nitro user uploads an image that is too large it throws an error. Trying to deal with the headaches of compressing images before sending it is not something fun to do.
Use Case:

The...
Upload your images to a pomf host? The embed uses URLs anyway so I don't see why you need to upload them to discord. Locking limits or features behind verification is not something I want to really see in the API. Making unverified hobby bots second class citizens sounds like a bad path to take.
I'd like to mention that just like users, bot's upload limit depends on the boosting status of the server so it's not strictly 8MB.
@MinnDevelopment I think sharing user content with third parties opens a whole other can of worms especially dealing with the legal ramifications that are best avoided when possible and much better to keep the content with Discord which the users themself intended.
I don't have an issue with it being available to all bots. I can however understand why it would be restricted to prevent every single bot from uploading 100MB requests. This is why I gave a possible solution to this is to allow...
If users understand that the image that they are uploading is going to be used elsewhere as shown to a number of people then what legal ramifications are you worried about? Uploading to a private folder with image hosts shouldn’t be a big issue. You could use Imgur with private folders only the devs have access to.
And like stated previously what is stopping you from using the url to the attachment from the user??
@Lilwiggy#6969 I've left a message answering your question about the legal aspect on DDevs server as i don't think we should clutter this issue request for it. This is about whether bots can be given a higher limit not the legalities of sharing to third parties.
In regards to your other question:
And like stated previously what is stopping you from using the url to the attachment from the user??
From original post:
The reason that the bot needs to re-upload is that server owners...
If you don't mind me suggesting -- just implement a 8MB limit on uploads that the bot will take. Beyond 8MB, the bot could recommend that they upload the image(s) to imgur, and provide the bot with the relevant imgur link.
@LikeLakers2 That's exactly what I am doing atm. I tell them to either use a smaller image or upload it to a DM with the bot and copy the link from that message. I don't recommend them going off platform though.
The main reason I ask for this request is user experience. It kind of sucks that the only users who have this problem are those who love and support Discord with Nitro. I actually give VIP features/access to users with nitro. My bot's entire VIP aspect is about encouraging users t...
This feature is now being shown for large guilds that use it.
[discord/discord-api-docs] New review comment on pull request #2038: Document RELAY\_ENABLED feature
pretty sure it's not experimental anymore?
I apologize if this is the wrong place for this. I'm new to discord and have been setting up permissions and I'm wondering why @everyone permissions override other permissions since @everyone is the lowest permission level. For example. Turning off everything in @everyone requires that you must turn on @higher settings for catagory/channel in order for @higher role to work. Here is an example.
Roles:
@everyone - everything off.
@higher - allows members to see channels.
Catagory:
Test...
Someone gave me the suggestion to report https://bugs.discord.com/T1035 here as it’s a backend bug
I do not see any issues here, and searching nsfw channels works on my machine. The client may not be requesting for search to include nsfw channels. This can happen if you have not accepted the NSFW agreement in your client or are searching outside of a nsfw context.
@night this doesn't happen with NSFW channels, this happens with channels where the name starts with nsfw-.
If I try to search in a channel with the above description, I get a 403 response from the API.
My comment is an accurate statement for both nsfw and deprecated nsfw-prefixed channels. If you include include_nsfw=true in the request it will succeed. This is a client bug not supporting the deprecated prefix syntax if anything.
so the client should still treat nsfw- prefixed channels as normal nsfw channels? i believe that was changed a long time ago
@night Is there any public timeframe of when this might get integrated / Testing phase?
oh, I was under the impression the nsfw prefix was removed altogether and not just deprecated. My bad.
Considering the nsfw- prefix isn't documented, this should be considered as a bug.
Hi there, this repo is for issues regarding the Discord API. For client issues, please join the Discord Testers or contact support.
Hello,
currently you can only search for messages which have an embed. Since you can tag guild members in an embed i would love to be able to search through embed content for strings or guild member mentions. I haven't found any way to search through embed content if it is already implement please point me to the documentation :)
Thank you.
Unless I am missing something there is still no search bar functionality in the API. #663
You are correct. Can you tell me where to ask for this?
#663 (which skillz linked) is the feature request for search in api
i am not really asking for api feature but discord client search bar feature. I see now that this is probably the wrong place to ask for this if you could kindly point me to the feature request box i will take it there. Otherwise just close this.
ah, for client feature requests go to https://dis.gd/feedback
Copied it over there if anyone else is interested and found this https://support.discord.com/hc/en-us/community/posts/360049689114-Search-Bar-improved-functionality-for-embed
yes exactly, it is a bug. i reported it to dtesters and it got marked as wontfix because they said it was backend. then i asked if there’s a place to report backend issues, and i was suggested to make an issue here.
@night mentioning you incase you don’t see it and this might’ve been an incorrect issue close
634109e Document json error code 20028 (#2043) - FasterSpeeding
there's also error 20022 This message cannot be edited due to announcement rate limits.
After looking into this problem, i found https://github.com/discord/discord-api-docs/issues/1101#issuecomment-529672679. From my understanding, it shouldn't be optional.
I'd like to start writing a simple discord chatbot app.
However, the documentation mixes "api" "chatbot" and "gamesSDK" terms.
There is also a warning that "gamesSDK" is not allowing new games.
So... I'm left wondering is there any point to making a test chatbot? Will I be able to run it?
those are distinct topics all covered in the docs
api refers to just interacting with the api with a bot token, this is what bots do so can be used pretty interchangeably with "chatbot" (tough note getting events like messages goes over the gateway websocket connection, this is not required to use the REST api, some routes also requiring having connected once)
gamesdk is for integrating your games with discord, you can do things like rich presence, making lobbies and more with them.
...
Hi
I learning Discord Game SDK, and I added it for my test project (c++). SDK work beautiful, but I noticed that it crashed (process finished with exit code 1) if Discord not launched. How I can catch it? It crashing in file "core.cpp" on line:
auto result = DiscordCreate(DISCORD_VERSION, ¶ms, &((*instance)->internal_));
How should I handle this event correctly without crash?
I believe you need to use Discord.CreateFlags.NoRequireDiscord, but this isn't the place for GameSDK help.
to get help: go to Discord Developers #game-sdk (first go to #click-here-to-talk)
to report GameSDK bugs: discord/gamesdk-and-dispatch issues
https://support.discord.com/hc/en-us/articles/214836687-Role-Management-101
Important note on adding roles: the @everyone role now serves as the basic template for all added roles. Want anyone in your server to add channels as they want? Assigning "Manage Channels" to @everyone will automatically grant that permission to all other roles created. Any role assigned to @everyone will be universal, regardless of assignment in higher roles.
Everyone has the @everyone role, so any permissio...
Discord only has a concept of denying permissions in channel/category overwrites (when you set to ❌); in server-wide role permissions, each permissions only has a switch for on or off, and if any of a user's roles has the permission set to on, then they have that permission.
In channel overwrites, anything set to ✔ overrides everything else; you should only use that if needed, and leave everything as / by default.
Also, any future changes done to permissions would need to be fully b...
Thanks for the responses. Just to clarify and simplify. My question is I have set OFF for Read Text Channels & See Voice Channels channels for role @everyone but ON for @higher and then set the channel permissions so @everyone and @higher are all /. The problem I'm seeing is a user with @higher cannot Read Text Channels & See Voice Channels until I set the channel permission for @higher to ✔ even those it is explicitly set in the @higher role in System Settings.
If I understand correctly t...
I cant seem to find any case of the guild_id on the webhook object to be undefined. Is this a mistake in the documentation?
Hello, the following guild also has a null locale. 297408095137562625
Actual Request
POST /api/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: Basic [REDACTED]
Accept: */*
User-Agent: Example (https://example.com/, 0.1)
Host: discord.com
Content-Length: 29
grant_type=client_credentials
Expected Response
HTTP 200 with access token object
Actual Response
HTTP/1.1 500 Internal Server Error
Date: Mon, 07 Sep 2020 05:25:29 GMT
Content-Type: application/json
Content-Length: 52
Connecti...
MWC is available here but it fails to compile at the moment. u_u
Working Case
When at least one scope is supplied...
Request
POST /api/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: Basic [REDACTED]
Accept: */*
User-Agent: Example (https://example.com/, 0.1)
Host: discord.com
Content-Length: 44
grant_type=client_credentials&scope=identify
Response
HTTP/1.1 200 OK
Date: Mon, 07 Sep 2020 06:13:38 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep...
أرسل Khalid إليك رسالة إلكترونية في وضع الحفاظ على السرّية في Gmail:
[image: شعار Gmail]Re: [discord/discord-api-docs] OAuth 2: Client Credential Grant process responds HTTP 500 if no scope is supplied (#2049) https://confidential-mail.google.com/msg/AA12eChbRO-4gLTGJRGX6UgJoswxcdtAgpzFdkbGwNtg4lP5fe64bne8mrdViCJiWZflUhJjRAeODIjCFzOY9qf9PGzUvstoruT2M_04ZrGx7UiiRpHcy2l-Hfnct4Egz56upLJZmxk_6pZi13T__ILVZonev9oaCAvUdumgKDOQPvxX23UYRtHOxcpS42exTZyo8vfPFknjBQ==
تم إرسال هذه الرسالة يوم 07/09...
Your Google verification code is 106587
Your Google verification code is 859613
Actual Request
POST /api/oauth2/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded Authorization: Basic [REDACTED] Accept: */* User-Agent: Example (https://example.com/, 0.1) Host: discord.com Content-Length: 29 grant_type=client_credentialsExpected Response
HTTP 200 with access token object
Actual Response
HTTP/1.1 500 Internal Server Error Date: Mon, 07 Sep 2020 05:25:29 GMT Content-Type: appl...
Your Google verification code is 138217
I overlooked a solution to this issue. You can maintain a mapping of known channel IDs to guild IDs. If an unknown channel ID is encountered, you can request the channel object once to get the guild ID and store the association. Future encounters could skip the request and use the cached association, and the entire channel does not have to be cached, if that's your goal. Maybe not ideal, but it's a decent compromise.
Not sure if I'm reporting this in the right place, but ran into trouble with discord.js running in the browser. Simple reproduction steps follow...
This works as expected:
TOKEN="..."
curl -D - \
-H "Authorization: Bot $TOKEN" \
-H "Origin: http://localhost:3000" \
https://discord.com/api/v7/gateway/bot
This does not work, it returns error code "1020", which doesn't appear to have any documentation.
TOKEN="..."
curl -D - \
-H "Authorization: Bot $TOKEN" \
...
This would be great for two reasons in my case.
- We have a news channel that posts notifications of changelogs for a game, they are already hand edited and repaired… for the news to be useful it needs to be fresh. Any delays devalue the news.
- Timed announcements, sometimes it's useful to be able to have a post go out at a certain time.
Kinda feels like it defeats the purpose tbh. I think the philosophy here is a bit backwards.
Please refer to the documentation on User-Agents: https://discord.com/developers/docs/reference#user-agent
That's outdated; bots can do it now (see issue #1510 and pr #1692)
The documentation is accurate, though it is not possible to obtain a non-guild webhook at present.
That's outdated; bots can do it now (see issue #1510 and pr #1692)
Oh awesome! I came here because I noticed there's no webhook integration on announcement channels.
thats a client bug, you can still manage them by temporarily changing it back to a text channel or going to Server Settings > integrations
This will return a proper bad request error in the next API deploy.
Upon further investigation this looks to be working as intended. You need to be using PKCE to use protocol links using our OAuth2.
Excellent, I'm going to test this tomorrow. Been waiting long for bots to be able to do this.
960a8ea Document /crosspost and /followers endpoint (#1... - bsian03
Currently, attempting to delete a managed role for a bot results in error 50028 Invalid Role. While it makes sense that twitch/yt integration and booster roles can't be deleted, bot managed roles are annoying and result in a lot of clutter.
With the addition of role.tags, bot roles can be distinguished by other managed roles, so it would be very useful to be able to delete them without allowing deleting of other managed roles.
I currently don't include permissions in my bots' add links,...
I'm not a fan of this idea for several reasons:
- It adds an inconsistency and another layer of checking when a bot manages a role, you have to check for
managedand now you have to check fortagstoo. - It's a breaking change because previous requests that would fail now don't fail.
- You can already not get a managed bot role by unticking everything in the bot page.
- This seems better off as a feature request to improve the UI in the add bot page to make the above more clear,...
I'm just getting started writing a Discord bot and I am gettin this error.
Here is the code.
import discord
token=""
client=discord.Client()
client.run(token)
Below is the stack trace.
Traceback (most recent call last):
File "FireGH.py", line 5, in
client.run(token)
File "C:\Users\Jonathan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\discord\client.py", line 678, in run
...
This issue tracker is for the API documentation and the actual API itself. If you want help with discord.py you should go to the repository there. However this issue is already commonly posted and has solutions here: https://github.com/Rapptz/discord.py/issues/4159
Been busy, sorry I didn't do this!
@Kapp1 then be more careful with your apps and not have them spam random comments in a issue
featurescan be patched?
yeah, even the desktop client includes this when modifying the guild, nothing happens though if you try to set features you don't have.
Is it necessary to document if it doesn't do anything? Or if it's documented, should that be explained?
Yeah.. I don't think features needs to be documented under modified guild, it's already under https://discord.com/developers/docs/resources/guild#guild-object-guild-structure
it's used for enabling community
Then which features are patchable should be documented, similar to how message flags are documented.
Currently the only way to get a channel's messages count is to use the "channel.history" loop and increment a count for each message read. But this method suuuuuper slow for even medium-sized chats. It would be incredibly useful for a channel to have a message count integer that could just be grabbed, instead of having to cycle through every single message in a channel.
@advaith1 Personally, I've written a function that needs to know how many messages are left to loop through. However, I've seen a few other people asking for other reasons.
@Rapptz Is there any way to bump the request? It seems like a lot of people have been asking about this feature.
Hello!
Currently, in Gateway v6, the GUILD_CREATE payload will not include a filled members array if you don't specify GUILD_MEMBERS and GUILD_PRESENCES (of course, with having the intents already allowed and enabled on your app)
My question to you is why? presences and members are separate properties in the GUILD_CREATE payload, and if I specify GUILD_MEMBERS, my intent is to receive the member list instead of having to do an extra request PER GUILD, PER shard (that is n OP...
Not sure if this is worth since members are going to be removed entirely.
https://github.com/discord/discord-api-docs/issues/1477#issuecomment-609547627
Ah, alright, that makes some more sense, and is understandable, I guess I missed that comment. Thanks 😄
[discord/discord-api-docs] Issue opened: #2057 Server insights not visible after hitting 500 users\.
My guild recently hit 500 users and we activated server insights (pretty excitedly) and have since been greeted with a whole lot of "no data" despite having insights definitely enabled. In fact, I have a second server that reached 500 a while back and enabled insights there too and have no trouble viewing them.
Am I missing something? Or is this a bug? I can provide the guild IDs if necessary but I didn't want to just post them willy nilly.
Appreciate it y'all!
.
Server ID: 731394773457436673
Channels ID:
738871435937841194
746105178612170892
745464441470189599
745699501871726633
745500151375986738
Please help me delete them as soon as possible
This is not related with Discord API docs. Reach out support here: https://dis.gd/support
My use case is - I'd like to auto-assign a role based on the invite link. I see that there is an open feature request already: #448
However, it's several years old, and it is locked for feedback.
There is a bot that uses a very unreliable approach: when a user joins, it gets the invites list and keeps track of which was incremented. But this won't work if there are multiple users joining, it is impossible now to figure out which invite link has been used.
I really think this is a useful sc...
This feature is already planned, Discord will get to it when they feel like implementing it.
Well, according to #448 it was planned in May 2018, so I think it's worth to let developers now, that someone needs this feature
Confirmed internally that this is indeed how we calculate that 500 threshold. Apologies for the confusion, I've relayed the feedback back to the team!
It does help you, that issue mentions you can contact Discord's support and they will fix it with the help of a button.
I already contact them they respond was
“Thanks so much for sending those IDs! I’ve shared that information with our engineering team to further our investigation along. Sadly, we don’t have an ETA for when this issue will be fixed, but rest assured that I’ll get back to you once a fix has been rolled out.
In the meantime, please don’t hesitate to let me know if you have any other questions or concerns.
Best”
And nothing happened till now
when i’m on a call in the app and leave the app to do something else the call is always disconnects
only if i come back to the app, redial and then try to leave the app - only sometimes after that it won’t disconnect if i’m lucky
Hiya! This repo is for API issues only. Client bugs should be reported at discord.gg/discord-testers. For isolated issues you can reach out to support at dis.gd/support.
Good luck with getting it sorted!
As for the .png at the end of the link I'm not sure if it should be .png or something else, because of the fact that message attachments could be literally any format.
The filename includes the extension.
The filename includes the extension.
@Rapptz
Thanks! Changed and added a little bit at the bottom making sure that's explained.
would it be worth showing some sample content in this?
"features": ["ANIMATED_ICON", "MORE_EMOJI", "NEWS"],
Hello,
while writing a bot I found that when I try to read a multiline string via *args I get diffferent parsings of the newline delimiter depending on whether the triggering message has a picture attached.
For :
!command "This
multiline
string"
without attachement:
["This\nmultiline\nstring"]
with attachement:
["This\r\nmultiline\r\nstring"]
I can't really see where this comes from or what it's supposed to do, so may this be a bug?
This doesn't seem relevant to the discord API documentation.
It sounds like you're in contact with support. This issue doesn't seem relevant to this issue tracker.
Closing because dupe of #663.
The documentation states:
When sending
payload_jsonin multipart requests, fields except forfileare ignored.
this is wrong, as any field except payload_json is considered a file.
I found this out while trying to figure out how to send multiple attachments, and this behaviour is kinda weird. I was expecting having to add multiple files to the same formdata field.
The documentation is accurate. You can specify form fields as multipart form data too, but nested data structures like embeds are unsupported without using payload_json. While you can technically use any key as a file due to how werkzeug handles multipart files, only 1 file (at key file) is supported officially. Any usage not documented unsupported and could break in the future.
This property seems useless as it can be calculated from the message ID. Other objects with snowflakes don't have a timestamp property.
My guess it's because of edited_timestamp. So you have both a timestamp and an edited_timestamp field. Instead of just id and edited_timestamp
Also could be a technical reason. Anyway, I see no harm in keeping it.
You can use attachments for images in embeds. Since you can set multiple images in an embed, it would make sense to also support sending multiple attachments officially. This is currently possible already, but not officially supported.
In the same breath, it could also be officially supported to set multiple images in one embed like used in twitter embeds. This also already possible but not officially supported.
I see. then how would one send multiple file in an official manner? Mobile supports multiple files, so you must have some proper way
I'm sorry if it is not right site for this problem, i have no exp with this.
There is a channel which @everyone can not see, only 3 roles are allowed to see or write in it. But there is a bug which shows user the channel even if he has a higher role(banned) that removes the permission to see it. So if a member has a role higher(banned) than 3 mentioned above and has one of the 3 roles, than he will still be able to see the channel even if he shouldn't.
.
I do not mind if a user chooses to modify the URL to skip the code respo...
It works (and has always worked) fine for me without that setting enabled.
If I go to https://discord.com/oauth2/authorize?client_id=398690824721924107&scope=bot&response_type=code and authorize, it redirects to https://advaithbot.xyz/thanks?code=CODE&guild_id=GUILDID&permissions=0, even though "Requires OAuth2 Code Grant" is turned off in the dev portal.
Yeah, that works, but I'm not able to exchange that code for the full guild object
Additional Note: I believe mobile clients can send multiple files in a single message. Would be nice if the desktop clients could do this as well. Bots do need official support for this.
Using the discord.py library, I was writing a bot to create channels, and wanted the channels to be created in a specific position, however when passing a position argument into the method call for creating a text channel, the channel would often be created in the wrong position. Occasionally, it works, but it usually doesn't. Editing the position of the channel with another POST through the library does affect the position of the channel.
I already submitted an issue to discord.py about t...
Hey, so there is this dot email bug which lets users create so many verified fake discord accounts with just one email. For example, let's say my email is example@gmail.com. So what the dot trick does is, it makes a fake Gmail id (like e.xa.m.p.le@gmail.com) so when we use the fake ID, the verification email is delivered to the original mail (example@gmail.com). With this, now more people are making fake accounts and are raiding discord servers. By fixing this, we can stop the major of the di...
These API docs are meant for API-related matters. As this has nothing to do with our public API I am closing this.
FWIW: This isn't considered a bug, but rather a feature of gmail. Gmail allows its users to specify periods anywhere in email addresses: https://support.google.com/mail/answer/7436150 To Discord, these are treated as separate email accounts.
Requiring OAuth2 code grant just requires the bot to use the full grant mode, but you are always optionally able to use the full grant even if it's not required. The only difference is that adding a bot with full grant required moves the bot joining until after token grant. Without it being required, we do not have guild information to provide you in the token response as it happened before token grant.
Maybe add that (moving joining to after token grant) as a query param?
We're not interesting in adding more complexity here. You can use the guild_id in the querystring instead if you don't want to require full grant.
Allows always supercede denies in channel overwrites. Ensure you did not grant the user allow permission with either a role or user permission overwrite.
internally timestamp is derived from the id when we serialize messages. rendering timestamp directly is an optimization to avoid needing to convert to bigint on clients to get date when message parsing.
we have no plans to allow managed roles to be deleted. there will also be deeper reliance on bot roles as bot permissions undergo changes down the road (which will be managed via the bot guild integrations views).
How are we able to use the guild id in the query string in a secure way, as our backend has no way of knowing if a request with that guild id is authorised to retrieve full information on that guild?
Currently, it seems that parameter is all but useless as there's no secure way to cross check on a backend that a browser/user was indeed the one to add a bot to a guild.
As far as I know, Discord Bots were able to upload larger file previously, but a funny guy decided to develop a so called "Upload Bot" to let people avoid their free Discord account upload limitations. Honestly, I think 8MB isn't bad at all, why don't you embed the image sent by the user using its cdn.discordapp.com link?
I'm not sure if we rolled this out wide yet but you can also preview permission you are configuring from the server roles settings:

do you have a proof of concept, like a curl example?
I'm not sure if we rolled this out wide yet but you can also preview permissions you are configuring from the server roles settings:
This feature doesn't seem to be in stable and I cannot get right-click to work at all on canary?
It's in A/B testing, and only shows when you click the dots; right-click only has Copy ID and only works when dev mode is enabled
So, you're saying that after October 9th, only bots that are in over 100 servers can verified.. or?
Bots need to be on 76 servers to get verified, and that will not change.
Starting October 7, unverified bots in 100+ servers will not be able to be added to any more servers until they are verified.
So this bug is there for over a year. Discord App is impossible to install on Windows 10 for some reason. There isn't a fix for it till today.
Setup Error Log :
14324> 2020-01-13 14:00:06> Program: Starting Squirrel Updater: --install .
14324> 2020-01-13 14:00:06> Program: Starting install, writing to C:\Users\ADMIN\AppData\Local\SquirrelTemp
14324> 2020-01-13 14:00:06> Program: About to install to: C:\Users\ADMIN\AppData\Local\Discord
14324> 2020-01-13 14:00:06> SingleGlobalInstance...
please let me know if at least there is a fix available.
This GitHub repo is only for Discord API issues. For anything else: https://dis.gd/contact
Thanks! I mean, I'm already a Verified Bot Developer, but I just had a doubt. Make sure to add me on Discord, Wumрus#0001 with a weird "p".
@advaith1 Another question though.. So, I have another bot with over 150 servers.. We have already applied for verification.. Suppose, it doesn't get accepted, can we still apply after October 7th, even though it has over 100 servers?
for a few days I was talking with but friends and all of a sudden all the microphone of the voc beug but when I say beug it's we hear nothing there we write in mp we say what's going on and the microphone comes back I don't know if it's a beug or something else and for info our microphones work very well all of a sudden it cut We haven't understood what happens if you have a solution for it and I don't know if it will start again. #1817
As stated in the issue you linked, this repo is for API bugs/feature requests only.
Also stated in the issue, this appears to be a client bug, so you will need to either contact support or join the discord testers server and see if your issue has been reported, or report your issue there.
Why this pointless padding?
Shouldn't it be 1 space after the longest text (In this case Early Verified Bot Developer)?
yes but it will be locked to 100 servers until it gets verified
Is it possible to have a comment here, please? Like is it planned, any timeline
Description
Prevent web hooks from using external emojis and prevent bots from reacting with them (maybe if the server doesn’t have any nitro boosts or smth). This will stop non-nitro users from abusing the API and gaining an unfair advantage using bots like Not Quite Nitro to get nitro perks.
This feature request is basically blocking bots and webhooks from using external or animated emojis and reacting with then unless the server in question has nitro boosts or the bot dev...
Bots and webhooks can use external emotes intentionally, this would break many bots if it was changed and I highly doubt Discord will ever change that.
Maybe as part of a potential v7 api then?
The next version will be v8 which is already completed, but breaking changes are only made when they're actually beneficial for performance/user experience reasons, this wouldn't do anything other than piss people off and remove useful features.
Or maybe just ban bots like Not Quite Nitro which give unfair perks to non nitro users akin to piracy.
This is an intentional design decision because of the way that bot users work and how they interact with emojis. We won't be making this change.
I don't see how this is an unfair advantage? 1. You can disable external emoji perms and 2. it allows for bots to use better looking emojis in their replies.
Description: he have #0000 discriminator without nitro
user identification: Juan#0000 457183840889470986
Steps to Reproduce not sure
Expected Behavior not give #0000 discriminator
Current Behavior
Screenshots/Videos
Jessica James from discord support told me to report this here.
Client and System Information
I've seen users get 0000 discrims after a t&s warning
I'm not sure why this was forwarded to the API docs. Could you provide me with your ticket id @My-Neighbor-Totoro so I can re-route it to the correct place.
my friend made a support inquiry. i will ask for ticket id. I created bug report for him because he don’t have GitHub account. but do you know why he have #0000 descriminator?
No I do not and this place is for bugs with our API, so it's not really the right place for this. Which is why I am trying to re-route this.
When my bot gives a role after a specific command, info about this appears in audit log, but when I check the users role in a text channel, i can't see the added role. If i try adding or removing another role(via discord app) i get unexpected behavior like:
1.Removing multiple roles
2.Adding the role
3.Doing nothing
Screenshots
Well in a hilarious turn of events this turned out to be a bug in some internal APIs that we use. So although this was not really the place to report this, it ended up being helpful. Thanks 😄
This is a great and needful feature. I hope it goes out to release soon!
Twilight is a flexible and scalable ecosystem of Rust libraries for the Discord API. It's designed to cater towards those who are experienced with Rust and already familiar with Discord bots and the API in general.
Crates on crates.io
Organisation
Primary API repo
The Book
[Development API docs]...
Would love to see another Rust library.
@EmanueleS2 Once a message is deleted the cdn link no longer works.
From my original post:
The reason that the bot needs to re-upload is that server owners wish to have the messages users send to create the message be deleted and sent in a clean way.
Were partner_actioned_timestamp and partner_application_timestamp intentionally left-out in this pr or were they added since it was opened?
They were added later, this PR was before the partner relaunch
Btw, you may want to include /emojis/:id/guild here as well
Try using this endpoint https://discord.com/developers/docs/resources/guild#get-guild-member
If the correct roles shows up there, this is most likely a client bug which should be reported under https://discord.gg/discord-testers
Yes, if i get the user via end point it returns 2 roles. So i will close this issue and report it to discord testers.
I'm trying to log into my discordBot from my React App. It responds with 403 error. I don't understand why. When I log into the bot from a different app it workd fine. What could be the issue?
Try to look for a JSON response or anything besides from the status code.
if I had to guess, you probably have a bad user-agent.
Thanks, but it says 'Failed to load response data" I regeneraed the token but it didn't help.
Could you explain what 'a bad user-agent' is?
You need to follow this https://discord.com/developers/docs/reference#user-agent otherwise Discord/CloudFlare might deny your request(s).
Dear Taarek,
thanks for the link.
so far my requset looks this way:
bot.login("NzU1MzIxMDc1Nzg0NjEzOTI4.X2BlkQ.NM16N7hOajUhqca9FPdSvbxgGs4")
You said I have to add user-agent, I read in the article that it has to look like that User-Agent: DiscordBot ($url, $versionNumber).
Could you please tell me how my final request should look like? an array or object?
I suppose the url I just need to take from the url bar, but where am I to find versionNumber?
Looking forward to ...
You just leaked your token, so you should regenerate it
You just leaked your token, so you should regenerate it
sure, I will
You need to follow this https://discord.com/developers/docs/reference#user-agent otherwise Discord/CloudFlare might deny your request(s).
Dear Taarek,
thanks for the link.
so far my requset looks this way:
bot.login("NzU1MzIxMDc1Nzg0NjEzOTI4.X2BlkQ.NM16N7hOajUhqca9FPdSvbxgGs4")
You said I have to add user-agent, I read in the article that it has to look like that User-Agent: DiscordBot ($url, $versionNumber).
(the token has been changed)
Could you please tell me how my final...
Description
I a request to api with limit but returning "Error 400 (Bad Request)!!1"
Url: channels/{CHANNEL_ID}/messages
Field: {"limit:88}
It's a query parameter not a JSON one.
Well, What am I query to api?
When I Create A Bot Its Not Online or Sending Messeges in DM
Hi, in order for your bot application to appear online, you must connect to the gateway by sending an identify payload.
In order to direct message a user, you can make a POST request at /users/@me/channels and /channels/{channel.id}/messages.
Also, if this is marked as duplicate I assume there should be an open issue that is opened for discussion. One I refer to is opened but is impossible to comment.
Description
Hey, so I made a bug report about this on your bug testers server, however they told me to email Technical Support about this issue, then Technical Support told me to make a bug report on here. So here we are.
To get to the point. Memuplay is an android emulator, it is mostly used for playing phone games on your computer.
However, when you have the Memuplay emulator open, and you live-stream it with Discord by selecting the application to stream (in a Server Voice C...
Hi! I'm not sure why you were redirected to here, as this is a place to report bugs with the Discord API and not the client. I would tell you to take it back to discord-testers, but as you were already there, I don't think that's going to be of much help. Hopefully someone else will be able to move this to the proper place.
I would go back in there and check with them. However the bot appears to be bugged and says I need a tiered role to use any command except for !quiz. And when I use !quiz all it tells me is that I have completed the quiz.
Here is the reply I got after submitting the bug on the Discord Bug Testers server. https://prnt.sc/uir6ok
Here is the email I received when I made a support ticket. https://prnt.sc/uir5vo
Hey Prince—apologies that you got poorly routed. This is definitely something that support should have caught and raised internally as well as possibly sending you to our bug reporting server at discord.gg/discord-testers.
I'm going to close this issue here because it's the wrong place but I will make sure your tickets gets properly addressed.
Our support team has unfortunately made a mistake in directing you here. This is not an API issue, but rather it sounds like an incompatibility between Discord's screenshare hook (which captures video and audio) and this application. Support is normally able escalate this behavior back to the correct team internally. I pinged someone on our support team about your ticket, but since it is after hours it will likely be a bit until they get back to you. Sorry for all the run around on this!
No problem, happy to help! Is there anything else I need to do? Do I need to contact someone/something or am I all good now?
Please Invite me I cant comment in the normal messanger. Thank you
_Originally posted by @I-Cat in https://github.com/discord/discord-api-docs/issues/2024#issuecomment-694596167_
I am building an app with Expo (react-native) and the deep linking URL looks like this:
myapp:///path/to/redirect with three slashes instead of two, as there is no host.
Unfortunately, this type of path is not accepted by the developer portal. Any chance to have support for it? :)
I’m not the most knowledgeable when it comes to mobile app development but is there a reason that is your path? <name>:// is a pretty standard formatting for protocols, be it http or custom Windows protocols or deep links. I don’t think we’d support that
Discord also used three slashes (discord:///) when it supported protocol urls
I am not 100% sure why it is this way either, but there is an explanation given by the expo team.
From what I understand, it is to be standards-compliant by always including the host in the URI. When there is no host, there is no character between :// and /
Ah sure ok that actually makes good sense. Um I'm not sure if this is as easy as a regex check but we can take a look.
Per RFC3986 a URI may have no authority or an authority that ends with empty path or forward slash. This will be addressed in the next API deploy.
5 minutes after discord bot opens, only responding heartbeat
1- Open Discord Bot
2- Wait a 5 Minute
3- Only responding heartbeat

Description
Requesting the vanity url for a guild that doesnt have vanity url set up returns 400 Bad Request instead of what is documented.
Steps to Reproduce
curl --request GET \
--url https://discordapp.com/api/v8/guilds/GUILD_ID/vanity-url \
--header 'accept: application/json' \
--header 'authorization: Bot TOKEN'
Expected Behavior
Not error and return what is documented ...
Tested
If the server can set a vanity url but hasn't set it yet, the api will return
{
"code": null,
"uses": 0
}
else (if the server cannot setup one because of 30 boosts requirements)
{
"message": "Invite code is either invalid or taken.",
"code": 50020
}
Oh, thx @MinnDevelopment. I looked before opening this issue and didn't find yours, will close :smile:
The docs were missing a reason for the 4014 close code. See Minn's list at https://github.com/discord/discord-api-docs/pull/1039
H-Hello? Shouldn't this be open?
This repo is for the API docs, and not for actual changes to the API. As the API behaviour has been documented, this issue is correctly closed.
No, this repo is also for API bugs and feature requests
While this repo does also handle feature requests, this issue shouldn't be open as it's not a feature request but a documentation request.
There's a few other (closed) issues that would meet the standards for being an open feature request, but it seems they have all been closed by the OPs.
night closed #1801 as a duplicate of this issue
+1, can repro with bots such as https://github.com/xSke/PluralKit and https://github.com/Keterr/Tupperbox. Please fix this, it's very annoying.
This is not the place to ask for support with specific bots. It looks like this bot has a support server where you can ask instead: https://discord.com/invite/SWEsj6q
Making requests to all 3 of these endpoints now results in a 403 with the following payloads for bots, with this going along with the fact that they are outside the scope of the oauth flow and gamesdk to leave no reason for them to still be documented.
{
"message": "Bots cannot use this endpoint",
"code": 20001
}
There was a discussion in DDevs a while ago, someone mentioned that removing sync access broke their bot, night said that they updated integration endpoints so bots can now only manage their own integration, but they would look into the sync issue more
There was a discussion in DDevs a while ago, someone mentioned that removing sync access broke their bot, night said that they updated integration endpoints so bots can now only manage their own integration, but they would look into the sync issue more
To be honest "manage their own integration" seems a bit misleading based on the fact that from testing this only seems to apply to the delete guild integration endpoint (which will return a 403 with the message "Missing Access" if ...
Description
In the audit log entry object in API v8, the type of a channel permission overwrite is a number inside a string ("1") instead of just a number (1)
In API v6, it is either "member" or "role"
Steps to Reproduce
- Update a channel permission overwrite
- GET /api/v8/guilds/:id/audit-logs
Expected Behavior
The type is just a number (like 1), as it is in /api/v8/channels/:id
Current Behavior
The type is a number in a string (like `"...
overwrites options are a dictionary of str to str, so this is working as intended. we have not yet documented v8, but this will be documented as a string when that occurs.
Description
The afk_channel_id and system_channel_id parameters should be integers instead of snowflakes in the Create Guild (POST /guilds) endpoint. Like parent_id, it can accept an integer ID of a channel specified in channels.
Using an integer works:
> curl https://discord.com/api/v7/guilds \
-X POST \
-H "Authorization: Bot $TOKEN" \
-H 'Content-Type: application/json' \
-d '{"name": "name", "channels": [{"name": "system-channel", "id": 0}, {"name":...
Description
The Audit log should display when a user published a message in a news channel.
The message could be something like {user} published a message in {channel} and show details such as the content of the message.
Why This is Needed
Publishing news is imo an important thing to log. That way can a mod know who posted what message towards other channels.
This could also help finding a rogue mod/bot who publishes news, that aren't meant to be published towards other ser...
I am not sure if you misunderstood or if I am.
But a snowflake is an integer ID (or string). See https://discord.com/developers/docs/reference#snowflakes
The wording snowflake is used in many places.
The integer error suggested by OP makes sense here.
When using the channels parameter, the id field within each channel object may be set to an integer placeholder, and will be replaced by the API upon consumption. (from the guild create endpoint docs)
Since this is a new guild creation, the only way for there to be a channel ID is through adding it to the channels array with an integer placeholder. This would mean it is not a snowflake.
so, to confirm:
- it works properly when a number is provided
- docs are incorrect and say snowflake
- error message is incorrect and says snowflake
right?
Assuming you're saying that it works even if you provide something like "0", it's not incorrect. A snowflake is any valid uint64 provided as either an integer or a string. "Foo" will never be a valid snowflake.
If however "0" also errors, then yes it would be correct to provide an error talking about integers instead.
@xaanit Using "0" does not error and still behaves as if an integer was supplied, but this is consistent with other parameters taking integers (e.g. afk_timeout, verification_level, type and id in channels).
So there is no issue is what I'm saying. Discord accepts strings for snowflakes due to javascript's (at least former) inability to store such high integers. Meaning that the error is not incorrect.
These fields aren't snowflakes though
When using the roles parameter, the required id field within each role object is an integer placeholder, and will be replaced by the API upon consumption. Its purpose is to allow you to overwrite a role's permissions in a channel when also passing in channels with the channels array.
According to docs, snowflakes are a specific id format;
snowflakes are used for real channel ids, but...
As Jake has said in the past, they have plans for "artificially low snowflakes". Confirming that snowflakes don't need to follow that exact format. Snowflakes have and always will be any valid uint64.
Other places like message history uses the word snowflake but if you pass something that does not follow that...
Ok, I guess that's fair. I just realised that supplying an invalid integer for id in channels also returns the error Value "something" is not snowflake, so I agree with @xaanit and I think the error message shouldn't be changed to say consistent.
However, I think that the documentation should be changed to integer, or at least clarify that an integer can be used for the following:
afk_channel_idsystem_channel_ididinchannelsidinrolesidin `permis...
Description
I was doing some memory optimizations on my library when I found what appeared to be a memory leak. Debugging it further, I realized it was caused by a guild that has almost 2K roles. I thought the limit was 250.
Note: I've also tested and confirmed this bug using other libraries as well so its not my library code bug (Discordeno, Eris, Discord.JS)
Steps to Reproduce
Check the roles on Guild: 726845521569775727
There are lots of guilds this occurs o...
These servers seem to be bot farms, which shows where the limit is probably not checked:


Sounds intentional to me. If it's a bot farm they'll all be the bot integration roles. It makes sense that these bypass the 250 limit, or permissions wouldn't be added to bots invited after you create 250 roles in your guild.
[discord/discord-api-docs] Issue opened: #2092 Returning members instead of a simple count \(prune\)
Description
Hello, I would like, instead of returning the number of members that will be kicked, that the api gives us the members that will get kicked.
Why This is Needed
There is many things that could be possible with this:
-
Sending a message to each member that will get pruned with a permanent invite link to the server, so when they'll return from their inactive period, they can re join the server
-
Renaming every inactive person with [AFK]
-
Re...
If they are kicked i think the return can be the Users (User != Member) not?
The endpoint is already quite slow.. (Even causing timeouts in bigger guilds).
Including bunch of objects on that endpoint sounds like a bad idea.
Sending a message to each member that will get pruned with a permanent invite link to the server, so when they'll return from their inactive period, they can re join the server
This would be nicely solved if Discord had support for kick/ban messages. This is an old and popular feature request, but we don't have it yet.
Renaming every inactive person with [AFK]
This isn't to...
@rxdn Yep. This specifically won't crash my bot. But i know a lot of devs who start coding their bots with about 1GB of ram on their vps as thats the cheapest model. Then it comes down to a matter of whether someone wants to abuse this. 2k role guild isn't bad but the problem is this is an uncontrolled ability to create roles. Eventually, your gonna have so many roles eating up memory. Thankfully this is not a huge issue as roles are relatively very small amount of memory. However, i still be...
@rxdn Yep. This specifically won't crash my bot. But i know a lot of devs who start coding their bots with about 1GB of ram on their vps as thats the cheapest model. Then it comes down to a matter of whether someone wants to abuse this. 2k role guild isn't bad but the problem is this is an uncontrolled ability to create roles. Eventually, your gonna have so many roles eating up memory. Thankfully this is not a huge issue as roles are relatively very small amount of memory. However, i still ...
The problem is not having more than 250 bots. The problem is roles. You can invite bots without custom roles for them.
This isn't about managing memory or LRU cache. A complex attempt/solution to fixing something that Discord has a set limit of 250 for is silly. The fact is there is a bug that is allowing the documented limit of 250 max roles to be broken. This needs fixing.
The problem is not having more than 250 bots. The problem is roles. You can invite bots without custom roles for them.
This isn't about managing memory or LRU cache. A complex attempt/solution to fixing something that Discord has a set limit of 250 for is silly. The fact is there is a bug that is allowing the documented limit of 250 max roles to be broken. This needs fixing.
Doesn't change the fact that the root of the issue is bot farms, not that integrations can cause >250 roles...
According to #1528 and #1990, there may soon be a limit to the number of integrations/bots.
If caching every role is problematic, then just don't do it, and make a request for the roles when you need them. I have a request open for fetching one role at #1997 which might be helpful. Or if it's your library you're concerned about, maybe set a default limit to 250 and provide an option for users to change that.
I think you guys are missing the issue. A limit of bots on a server wont solve this. Even if there was a limit of 50 bots. You could create 250 roles and add 50 bots roles which make it bugged again.
Either the documentation is wrong and needs to be adjusted saying that there can be unlimited amount of roles in a server. Or this needs to be fixed preventing this bug of having >250 roles in a server. Moving the problem of eating up cache to eating up rate limits from fetching roles when nee...
You are not able to connect a bot from a browser as the user agent cannot be configured in a restricted browser context. you would need to use a backend service to run the bot.
More of a minor docs thing. Hard limiting to 250 roles incl integrations would cause a much bigger issue than you having to hold a few extra kb.
Was this an intentional change with the new domain? Because afaik it still works with discordapp.com, and discord.js supports browser
Description
The owners of a bot, and the owner of the team (possibly team members as well) should be able to add bots they own to servers they're in without having to enter a captcha to complete the oauth process.
Why This is Needed
When testing events such as on join/kick/ban, or joining a new server, it is often required to repeatedly invite a bot to a server to test code functionality. Often this happens very often in a short period of time. As an anecdote, I've cr...
Assuming your bot uses a regular event emitter, you should be able to emit the guild create event, or any other event you wish very easily. As an example for discord.js:
client.emit('guildCreate', ValidGuildObjectHere);
Discord Rich Embeds should allow the definition of "select" (and its options), "button" and "group" widgets, in order to expose a graphical interface for the bot commands. (A user selection or button click would send a message to the bot).
This is already planned and coming next year, see https://blog.discord.com/the-future-of-bots-on-discord-4e6e050ab52e
Description
Increase the per-channel webhook limit of 10, or make separate limits for Incoming and Channel Following webhooks.
Why This is Needed
In the past, the 10 webhook limit was sufficient. However, with Channel Following which uses a unique webhook for every followed channel, 10 is often not enough. Channels often follow many announcement channels, and it can impact bots' ability to use webhooks in them.
I went and updated discord, it now is popping up with a message that says " A fatal Javascript error occurred" (attached pictured), I have deleted the files and uninstall the application two seperate times and it still will not load without popping up that warning.
Hi, this repo is for issues regarding the Discord API. Discord Client issues should be taken to discord-testers or general support.
As per your issue, try deleting your Discord data folder and then reinstalling the app.
Why won't this happen @z64 ?
Any updates on this...?
I'm getting this error also. Tried to call from Postman and it works perfectly but when I call it using Axios from my localhost, it gives cors error.
@rahulpatel033 Maybe this comment from #2078 is relevant?
@ethrx There’s been several comments about this from Discord staff in the Discord API server:
TODO:
- [ ] Document deprecated routes
these are now in this list twice
(Moving the previous comment to here.) Did you mean to remove this section?
v8 is not yet default. we'll need to have a deprecation period before it hits default
we should document v6 as deprecated
this is not a complete collection of error codes, are we posting these just as examples?
this is now a integer or float
we need to update these examples.
retry-after is now in seconds, not ms
was documented and updated in b9edace323c9df64c79f104d85984690ae4e2977
c42c37d Deprecated routes - msciotti
Oh I went into the constants file and though that was the lot of them? I'll look more
Is 64.57 valid since it can be a float
64.57 and 65 would be the header
3182933 Unrelated, spelling is hard - msciotti
b50e0c4 No legacy permissions - msciotti
2421b03 Accidental section delete - msciotti
ce920b5 Changelog update - msciotti
- bject should be object
- I would name this just "Get Guild Widget" and rename the other routes to "... Widget Settings" (
get_widget_settingsinternally)
2c111a9 Some changelog cleanup. - tpcstld
ca20100 Deprecated and default lul - msciotti
9c23e69 Fix widget routes - msciotti
maybe document v7 here as deprecated?
7ffd53e That is way too many error codes - msciotti
v7 was technically never released
JK there's a million not doing that
192ce4d Dupe return example - msciotti
8c3e563 Just for you, night - msciotti
If permissions can't be sent as ints now, then these tables shouldn't be duplicated anymore, as they are the same now (I only separated these when _new fields were added)
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos

Client and System Information
While this issue is very poorly worded I believe the intent is that despite the user not having the proper roles, he has access to this channel.
It's also impossible to actually help debug since the channel overwrites are not shown.
These aren't equivalent. Did you mean 6.457?
Integrations optional values
should probably merge #1886 first
(also some application integrations don't have user even on earlier API versions, which broke some bots before libs updated)
it's an example value. it doesn't need to be the exact same number
Why is this still a string, when the API returns numbers? Is that intended, or is that just an oversight? 👀
docs oversight, should be number
What does the underscore here imply? Should we not be using this? Is it subject to change?
If so, should it be documented at all? I assume it has the same implications that _trace does on the gateway hello?
I know this is outside the scope of this PR, but I may as well ask here while on the topic of documenting new functionality.
Are there any plans to look into the voice API any time soon as part of these changes?
Namely details like how no port is documented to be sent on the endpoint but you still send us port 80 in the URI (even though we have to actually use port 443); how to receive audio (you say that we can receive audio but not how to do that), etc? Or is it better to just not use...
What cases do you return this? Usually you return a 204 if nothing has changed, right?
Would it be possible to document when we actually get this and when we don't? That would provide us with much more of an ability to use this.
From what I can tell, this is only returned by the get user guilds endpoint?
would it not be sensible to give valid examples?
You documented (or...uh...mentioned) v7 for REST, should you mention v7 here too?
| v | integer | Gateway Version to use | see [Gateway versions](#DOCS_TOPICS_GATEWAY/gateways-gateway-versions) |
Instead of duplicating this documentation, probably easier just to link back to the table you have above :)
| [Channel Create](#DOCS_TOPICS_GATEWAY/channel-create) | new guild channel created |
So what is the implication of sending null for since with a status of "idle"?
Would it be simpler to say that this only fires for guild channels, unless there is another hidden channel type we don't know about?
Didn't you mention a while back that you only get the members through on this if you have presences intents enabled? Should this be documented here if this is intended behavior?
Per JSON specifications, you only have a numeric type, which may be treated as an integer-style value or a floating point-style value, so is there any real benefit in documenting that it can be an integer and a float, if standards compliant JSON parsers should handle both cases anyway?
could we possibly document the payloads you receive as part of a channel as examples per channel rather than a single thing?
Each type of channel has a different shape, and it would be nicer to be able to just know what you define as being expected on each type of channel rather than having to trial-and-error to work this out, especially if you are a library dev, as this affects the shape of the models you make.
Is there any plan to document max_concurrency on the GET /gateway/bot endpoint in this API version, or should we keep any API wrapper libraries using sequential 1-guild-per-5-seconds identifying if it is undocumented behavior?
While some JSON parsers themselves might be able to automatically detect the numeric type, it is still incredibly helpful for library/bot devs to know which fields are integers and which are floats without having to manually inspect every possible response body. This is especially important for more strictly typed languages. The JSON parser is only a small part of the entire library/bot.
I think you forgot to update this header to 64.57. Possibly also the one above that (to something like X-RateLimit-Reset: 1470173023.420)
If the rate limits have millisecond-precision I suggest also showcasing said precision in the example. Sure, this is a valid value, but just to be sure everyone gets that there can be up to three decimals I'd use 6.457 or 64.570.
The underscore distinguishes the error field from the actual field names.
Does this apply to WEBHOOK_UPDATE? There is no ? on guild_id. https://discord.com/developers/docs/topics/gateway#webhooks-update-webhook-update-event-fields
Should this be documented then? In most languages, use of a leading underscore is a way of implying that something is an implementation detail, or that it should be ignored.
I guess my point was worded poorly; my mistake.
I was more getting at the point that perhaps this should just be documented as being a numeric value with a fractional part, not an or. Especially in static typed languages where integral types are treated as primitives, it probably is a bit silly to suggest that you have to implement a case that handles an integer type in this field and a case that handles a floating point type in this field. Especially when 1.0 would have the same meani...
From the other comments, I believe this is rounded up.
RFC-7231 S7.1.3 specifies that the value for a Retry-After header should be an integral type, so changing this to a decimal value would make this API not comply to Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content.
perhaps it would be worth sorting these tables to make them easier to read?
It probably would be worth referencing it, simply because of how widely v7 is used (which was the whole reason v8 had to be made instead, to prevent breaking large numbers of existing applications backed by some of the most commonly used wrapper libraries, right?)
I was referring to X-RateLimit-Reset-After; Retry-After is indeed supposed to be in rounded settings.
I think you can safely imply millisecond precision is what the precision is in the response if it is a fractional value, unless you have access to a network that has latency of less than 1 millisecond to Discord.
Even in that case, rounding up to 1ms on a rate limit shouldn't harm you, unless you are excessively spamming the API to the point that this becomes an issue for you (which would possibly question what you are trying to do to it in the first place).
Probably should be, with this concept re-visited: https://github.com/discord/discord-api-docs/pull/967/files#diff-b307d936b736f302bc7cc153f0d8a0a3R7
What is intents? sorry im new to python.
How long will the depreciation period be for gateway V6?
This has nothing to do with Python – refer to the documentation for your library, or the gateway intent docs.
^^ v7 too.
Technically v7 isn't released as they have said. The whole point of it was for it to be a development preview, so I don't know if there is any expectation that they will provide a deprecation period for undocumented behavior.
They'll probably do what they do with v6, but there isn't technically any reason to be using v7 other than for testing (so not in a production environment). I think there is just the unfortunate issue that a number of libraries made the choice to use t...
Description
This guild feature is documented in the guild features list.
Steps to Reproduce
Expected Behavior
Current Behavior
Taken from the documentation itself:
{
"id": "197038439483310086",
"name": "Discord Testers",
"icon": "f64c482b807da4f539cff778d174971c",
"splash": null,
"discovery_splash": null,
"emojis": [],
"fea...
As i said in the title "Discord is using old DDragon of League of Legends"
For example : {old aatrox image]

Expected Behavior
it must be

Current Behavior
 object.
Yeah this is weird. If it can have an important fractional part, it should be float or number.
I believe that it's only displayed as a single object because it's internally represented as a single object, there are examples for each channel type though
Is there any plan to document
max_concurrencyon the GET /gateway/bot endpoint in this API version, or should we keep any API wrapper libraries using sequential 1-guild-per-5-seconds identifying if it is undocumented behavior?
@nekokatt #1621
This is indeed some strange reasoning, especially considering the initial metadata request does use a Discord user-agent.
Every other bot and application that I am aware uses a clearly identifiable user-agent when requesting metadata and images.
Description
This is not a request to add custom status for bots.
Bots are capable of setting a custom status in their presence -- both via IDENTIFY and STATUS_UPDATE -- but this is not reflected in the client, nor is a PRESENCE_UPDATE event emitted. However, requesting guild members + presences with OP 8 (request guild members) will show that the custom status has actually been set. As would be expected, this is not persisted across sessions.
Steps to Reproduce
Thi...
all activity types are intentionally allowed, it does show in the client: in the full profile, it has the CUSTOM STATUS header. it just doesn't show any useful information because neither state nor emoji is sent (because bots can't send them). sending this "empty" custom status was also possible via the client yesterday due to the API not supporting new emoji.
the only reason bots can't set custom status is that they can currently only send name, type, and url, which cannot make ...
it does show in the client: in the full profile, it has the CUSTOM STATUS header
I'm aware of this, as
they can currently only send
name,type, andurl
is documented, but imo this is still unexpected / arguably-incorrect behaviour. As an API-end-user, I'd expect the payload to be rejected and my connection to be closed due to sending a (technically) malformed payload.
Description
The existing documentation for the attachment:// protocol for embed images only vaguely hints towards how it is supposed to be used, with no guidance on how to actually normalize filenames for this protocol.
Why This is Needed
The existing documentation here shows only an example with no explanation (attachment://filename.png).
This results in many us...
This PR changes many instances of the word "whitelist" in the documentation with more inclusive words such as allowlist and delimited. There are some instances where "allowlist" seems out of place, but I couldn't quite put my finger on a better replacement - any reviews addressing this would be greatly appreciated.
There are some things I couldn't quite change here due to dependencies that I cannot or should not change:
- instances of "whitelist" in the Changelog file
- "whitespace...
i would say "limited to" or "locked to" for these
Thank you, I've been meaning to do this and check up on our internal task to do this as well. I think we have some language cleanup to do on our developers site as well.
"whitespace" within the Contributing guidelines (is there an alternate word for whitespace?
Does just "spacing" work? Whitespace characters --> spacing characters? Blank space? Might not be a find/replace in every instance.
I don't necessarily know that "whitespace" carries the same connotations as "whitelist" does.
"require approval" and "approval list" maybe?
Yeah I think this is a good point. I don't think we should just s/whitelist/allowlist. There are other ways of saying this. I agree with moving away from the term whitelist, I just don't like how "allowlist" sounds 🤣
Saying "scopes that require approval" for example is a much better way of writing it
"whitespace" within the Contributing guidelines (is there an alternate word for whitespace?
Does just "spacing" work? Whitespace characters --> spacing characters? Blank space? Might not be a find/replace in every instance.
I found these, not sure which one would fit the best though.

I don't necessarily know that "whitespace" carries the same connotations as "whitelist" does.
Separating whitespace into "white space" is inherently racially-charged and dates back to the civil rights movement in the USA
https://sociology.yale.edu/sites/default/files/pages_from_sre-11_rev5_printer_files.pdf
While I don't personally believe that "white space" correlates directly to how we use "whitespace" today, if we're going to change the word (as it seems is an increasingly popular move), some reasonable discussion is important to have before outright making the change to the first-proposed solution. The conversation in the API server on Discord is pretty intense right now but it seems that the change is something that for-sure will happen — so let's talk about the alternatives that are av...
correlating the the notion or idea of "blank" or "nothingness" — as in a blank sheet of paper. In the same vein of thought, the most reasonable replacement in my opinion would be "blank space."
Of course, please feel free to tack on your opinions, but that's my input. ¯_(ツ)_/¯
You are correct. Using inclusive language does not mean that the documentation is less clear, or the writing less helpful. It should not mean that because it does not inherently mean that. That's why making...

Should we be looking to change the branch name as well? I mean while we're at it.
https://github.com/github/renaming
If you haven’t renamed your default branch yet, consider waiting until later this year. We’re investing in tools to make renaming the default branch of an existing repository a seamless experience for both maintainers and contributors.
https://github.com/github/renaming
If you haven’t renamed your default branch yet, consider waiting until later this year. We’re investing in tools to make renaming the default branch of an existing repository a seamless experience for both maintainers and contributors.
https://github.com/github/renaming
If you haven’t renamed your default branch yet, consider waiting until later this year. We’re investing in tools to make renaming the default branch of an existing repository a seamless experience for both maintainers and contributors.
This is great. I did not know about this, but yes, we should also move from master to main. This repo doesn't have quite as many active PRs and whatnot to cause too much headache if we were to manually swap, ...
7eb48fe crossref to allowed_mentions in markdown docume... - Tropony
this is not relevant to the public API, and although is exposed, should not be depended on (and probably won't be exposed in the future.)
how about "have not enabled or are not allowed to use"?
since the dashboard also refers to them to testers it might make more sense to write this page in the trend of "while developing this features is restricted to testers of your app, you can add 50 testers to your project in the dashboard"? same for below
maybe "requires approval"?
Is there any option to avoid these for DM channels?
My whole logging is spammed with DM failures, though everything else is catched.
Not preemptively, no. If you have a large application that relies on DMs, you will probably want to track which channels give you a 403 and not make further requests to those. You can also consider self-imposing a global ratelimit on DMs.
Sure, but without viewing the markdown, that isn't immediately obvious
I know that it wasn't possible yet, but this feature is really needed, - so take it as a hint for a missing feature.
Not that I know of. You can't tell if you have the ability to talk to someone without trying it first.
My whole logging is spammed with DM failures
Are you bulk DMing people for this to happen or is it just a really big bot that responds to help commands in DMs or something, if you don't mind me asking?
[](https://discord.gg/discord-api)
Might just be worth adding alt text in case anyone is partially sighted, given the announcement that Discord is trying to be more inclusive of marginalised groups from a few months ago
a failure to create a DM is a 400, not a 403, so it doesn't contribute toward this limit
I know that it wasn't possible yet, but this feature is really needed, - so take it as a hint for a missing feature.
You should open a separate issue for that.
Are you bulk DMing people for this to happen or is it just a really big bot that responds to help commands in DMs or something, if you don't mind me asking?
My bot is in about 550k servers. Trust me, I'm familar with the discord api and the (API) ToS.
Some features which send DM messages:
- Reminders
- Reaction-Roles (DM confirmation after role (un)assignment)
- Lottery Results
- Help Messages
- Vote Reminders
- Vote Messages (after a successful vote you'll get a DM confirmation, ...
The discord app uses v8: https://media.discordapp.net/attachments/282216149586804736/759169342935531530/unknown.png
If you want to see it for yourself:
- Be sure to have the inspector open [
CTRL+SHIFT+I] - Restart Discord [
CTRL+R]. - Go to the Network tab
- Select Websockets [
WS]






