diff --git a/docs/change-log/2021-11-23-guild-scheduled-events.md b/docs/change-log/2021-11-23-guild-scheduled-events.md index 9e78bbf0da..f2dd642e49 100644 --- a/docs/change-log/2021-11-23-guild-scheduled-events.md +++ b/docs/change-log/2021-11-23-guild-scheduled-events.md @@ -7,11 +7,11 @@ date: "2021-11-23" #### Nov 18, 2021 -* Breaking change for return type for `GET /guilds/{guild.id}/scheduled-events/{guild-scheduled-event.id}/users` -* Add `with_user_count` query param for `GET /guilds/{guild.id}/scheduled-events/{guild-scheduled-event.id}` -* Return additional `creator` field by default in response for `GET /guilds/{guild.id}/scheduled-events/{guild-scheduled-event.id}` +* Breaking change for return type for `GET /guilds/{guild.id}/scheduled-events/{guild_scheduled_event.id}/users` +* Add `with_user_count` query param for `GET /guilds/{guild.id}/scheduled-events/{guild_scheduled_event.id}` +* Return additional `creator` field by default in response for `GET /guilds/{guild.id}/scheduled-events/{guild_scheduled_event.id}` * More details and clarification for the guild scheduled events feature. -* Document support for `before` and `after` query params for `GET /guilds/{guild.id}/scheduled-events/{guild-scheduled-event.id}/users` +* Document support for `before` and `after` query params for `GET /guilds/{guild.id}/scheduled-events/{guild_scheduled_event.id}/users` #### Nov 15, 2021 diff --git a/docs/events/gateway.mdx b/docs/events/gateway.mdx index 01422ef3b6..a432fff794 100644 --- a/docs/events/gateway.mdx +++ b/docs/events/gateway.mdx @@ -715,7 +715,6 @@ Returns an object with a valid WSS URL which the app can use when [Connecting](/ ``` ## Get Gateway Bot - /gateway/bot :::warn diff --git a/docs/interactions/application-commands.mdx b/docs/interactions/application-commands.mdx index e9fa24d7af..02b42f00a7 100644 --- a/docs/interactions/application-commands.mdx +++ b/docs/interactions/application-commands.mdx @@ -301,9 +301,9 @@ Application command permissions allow your app to enable or disable commands for Command permissions can only be updated using a [Bearer token](/docs/topics/oauth2#client-credentials-grant). Authenticating with a bot token will result in an error. ::: -A command's current permissions can be retrieved using the [`GET /applications/\{application.id}/guilds/\{guild.id}/commands/\{command.id}/permissions`](/docs/interactions/application-commands#get-application-command-permissions) endpoint. The response will include an array called `permissions` with associated IDs and permission types. +A command's current permissions can be retrieved using the [`GET /applications/{application.id}/guilds/{guild.id}/commands/{command.id}/permissions`](/docs/interactions/application-commands#get-application-command-permissions) endpoint. The response will include an array called `permissions` with associated IDs and permission types. -Command permissions can be updated with the [`PUT /applications/\{application.id}/guilds/\{guild.id}/commands/\{command.id}/permissions`](/docs/interactions/application-commands#edit-application-command-permissions) endpoint. To call the endpoint, apps must use a Bearer token that's authorized with the [`applications.commands.permissions.update`](/docs/topics/oauth2#shared-resources-oauth2-scopes) scope from a user with sufficient permissions. For their permissions to be considered sufficient, all of the following must be true for **the authenticating user** (not your app or bot user): +Command permissions can be updated with the [`PUT /applications/{application.id}/guilds/{guild.id}/commands/{command.id}/permissions`](/docs/interactions/application-commands#edit-application-command-permissions) endpoint. To call the endpoint, apps must use a Bearer token that's authorized with the [`applications.commands.permissions.update`](/docs/topics/oauth2#shared-resources-oauth2-scopes) scope from a user with sufficient permissions. For their permissions to be considered sufficient, all of the following must be true for **the authenticating user** (not your app or bot user): - Has [permission to Manage Guild and Manage Roles](/docs/topics/permissions) in the guild where the command is being edited - Has the ability to run the command being edited - Has permission to manage the resources that will be affected (roles, users, and/or channels depending on the [permission types](/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type)) @@ -1307,14 +1307,12 @@ Edit a guild command. Updates for guild commands will be available immediately. | nsfw? | boolean | Indicates whether the command is [age-restricted](/docs/interactions/application-commands#agerestricted-commands) | ## Delete Guild Application Command - /applications/[\{application.id\}](/docs/resources/application#application-object)/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/commands/[\{command.id\}](/docs/interactions/application-commands#application-command-object) Delete a guild command. Returns `204 No Content` on success. ## Bulk Overwrite Guild Application Commands - -/applications/\{application.id/docs/resources/application#application-object\}/guilds/\{guild.id/docs/resources/guild#guild-object\}/commands +/applications/[\{application.id\}](/docs/resources/application#application-object)/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/commands Takes a list of application commands, overwriting the existing command list for this application for the targeted guild. Returns `200` and a list of [application command](/docs/interactions/application-commands#application-command-object) objects. @@ -1341,7 +1339,6 @@ This will overwrite **all** types of application commands: slash commands, user | nsfw? | boolean | Indicates whether the command is [age-restricted](/docs/interactions/application-commands#agerestricted-commands) | ## Get Guild Application Command Permissions - /applications/[\{application.id\}](/docs/resources/application#application-object)/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/commands/permissions Fetches permissions for all commands for your application in a guild. Returns an array of [guild application command permissions](/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure) objects. diff --git a/docs/interactions/receiving-and-responding.mdx b/docs/interactions/receiving-and-responding.mdx index 008c14c39c..440803cd0c 100644 --- a/docs/interactions/receiving-and-responding.mdx +++ b/docs/interactions/receiving-and-responding.mdx @@ -389,7 +389,7 @@ The endpoints below are not bound to the application's [Global Rate Limit](/docs ::: ## Create Interaction Response -/interactions/[\{interaction.id}](/docs/interactions/receiving-and-responding#interaction-object)/[\{interaction.token\}](/docs/interactions/receiving-and-responding#interaction-object)/callback +/interactions/[\{interaction.id\}](/docs/interactions/receiving-and-responding#interaction-object)/[\{interaction.token\}](/docs/interactions/receiving-and-responding#interaction-object)/callback Create a response to an Interaction. Body is an [interaction response](/docs/interactions/receiving-and-responding#interaction-response-object). Returns `204` unless `with_response` is set to `true` which returns `200` with the body as [interaction callback response](/docs/interactions/receiving-and-responding#interaction-callback-interaction-callback-response-object). diff --git a/docs/resources/application-role-connection-metadata.mdx b/docs/resources/application-role-connection-metadata.mdx index e5ba12a5e0..9ca88f9806 100644 --- a/docs/resources/application-role-connection-metadata.mdx +++ b/docs/resources/application-role-connection-metadata.mdx @@ -39,13 +39,11 @@ Each metadata type offers a comparison operation that allows guilds to configure ::: ## Get Application Role Connection Metadata Records - /applications/[\{application.id\}](/docs/resources/application#application-object)/role-connections/metadata Returns a list of [application role connection metadata](/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object) objects for the given application. ## Update Application Role Connection Metadata Records - /applications/[\{application.id\}](/docs/resources/application#application-object)/role-connections/metadata Updates and returns a list of [application role connection metadata](/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object) objects for the given application. diff --git a/docs/resources/application.mdx b/docs/resources/application.mdx index f552a62077..b6f4425c07 100644 --- a/docs/resources/application.mdx +++ b/docs/resources/application.mdx @@ -263,7 +263,7 @@ All parameters to this endpoint are optional \*\* To update an Interactions endpoint URL via the API, the URL must be valid according to the [Receiving an Interaction](/docs/interactions/receiving-and-responding#receiving-an-interaction) documentation. ## Get Application Activity Instance -/applications/[\{application.id\}](/docs/resources/application#application-object)/activity-instances/[\{instance_id\}](/docs/resources/application#get-application-activity-instance-activity-instance-object) +/applications/[\{application.id\}](/docs/resources/application#application-object)/activity-instances/[\{instance_id\}](/docs/resources/application#get-application-activity-instance-activity-instance-object) Returns a serialized activity instance, if it exists. Useful for [preventing unwanted activity sessions](/docs/activities/development-guides/multiplayer-experience#preventing-unwanted-activity-sessions). diff --git a/docs/resources/entitlement.mdx b/docs/resources/entitlement.mdx index baaf46b9d3..fffd4e62d4 100644 --- a/docs/resources/entitlement.mdx +++ b/docs/resources/entitlement.mdx @@ -152,7 +152,7 @@ After creating a test entitlement, you'll need to reload your Discord client. Af ``` ## Delete Test Entitlement - /applications/[\{application.id\}](/docs/resources/application#application-object)/entitlements/[\{entitlement.id\}](/docs/resources/entitlement#entitlement-object) +/applications/[\{application.id\}](/docs/resources/application#application-object)/entitlements/[\{entitlement.id\}](/docs/resources/entitlement#entitlement-object) Deletes a currently-active test entitlement. Discord will act as though that user or guild _no longer has_ entitlement to your premium offering. diff --git a/docs/resources/guild-scheduled-event.mdx b/docs/resources/guild-scheduled-event.mdx index 5e7278f77a..20a1f8612c 100644 --- a/docs/resources/guild-scheduled-event.mdx +++ b/docs/resources/guild-scheduled-event.mdx @@ -305,7 +305,7 @@ This endpoint supports the `X-Audit-Log-Reason` header. \*\* Required for events with `'entity_type': EXTERNAL` ## Get Guild Scheduled Event -/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/scheduled-events/[\{guild-scheduled-event.id\}](/docs/resources/guild-scheduled-event#guild-scheduled-event-object) +/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/scheduled-events/[\{guild_scheduled_event.id\}](/docs/resources/guild-scheduled-event#guild-scheduled-event-object) Get a guild scheduled event. Returns a [guild scheduled event](/docs/resources/guild-scheduled-event#guild-scheduled-event-object) object on success. @@ -316,7 +316,7 @@ Get a guild scheduled event. Returns a [guild scheduled event](/docs/resources/g | with_user_count? | [boolean](/docs/reference#boolean-query-strings) | include number of users subscribed to this event | ## Modify Guild Scheduled Event -/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/scheduled-events/[\{guild-scheduled-event.id\}](/docs/resources/guild-scheduled-event#guild-scheduled-event-object) +/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/scheduled-events/[\{guild_scheduled_event.id\}](/docs/resources/guild-scheduled-event#guild-scheduled-event-object) Modify a guild scheduled event. Returns the modified [guild scheduled event](/docs/resources/guild-scheduled-event#guild-scheduled-event-object) object on success. Fires a [Guild Scheduled Event Update](/docs/events/gateway-events#guild-scheduled-event-update) Gateway event. @@ -360,12 +360,12 @@ All parameters to this endpoint are optional - `scheduled_end_time` must be provided ## Delete Guild Scheduled Event -/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/scheduled-events/[\{guild-scheduled-event.id\}](/docs/resources/guild-scheduled-event#guild-scheduled-event-object) +/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/scheduled-events/[\{guild_scheduled_event.id\}](/docs/resources/guild-scheduled-event#guild-scheduled-event-object) Delete a guild scheduled event. Returns a `204` on success. Fires a [Guild Scheduled Event Delete](/docs/events/gateway-events#guild-scheduled-event-delete) Gateway event. ## Get Guild Scheduled Event Users -/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/scheduled-events/[\{guild-scheduled-event.id\}](/docs/resources/guild-scheduled-event#guild-scheduled-event-object)/users +/guilds/[\{guild.id\}](/docs/resources/guild#guild-object)/scheduled-events/[\{guild_scheduled_event.id\}](/docs/resources/guild-scheduled-event#guild-scheduled-event-object)/users Get a list of guild scheduled event users subscribed to a guild scheduled event. Returns a list of [guild scheduled event user](/docs/resources/guild-scheduled-event#guild-scheduled-event-user-object) objects on success. Guild member data, if it exists, is included if the `with_member` query parameter is set. diff --git a/docs/resources/message.mdx b/docs/resources/message.mdx index 2645999c09..1ae270b204 100644 --- a/docs/resources/message.mdx +++ b/docs/resources/message.mdx @@ -835,25 +835,25 @@ Crosspost a message in an Announcement Channel to following channels. This endpo Returns a [message](/docs/resources/message#message-object) object. Fires a [Message Update](/docs/events/gateway-events#message-update) Gateway event. ## Create Reaction -/channels/[\{channel.id\}](/docs/resources/channel#channel-object)/messages/[\{message.id\}](/docs/resources/message#message-object)/reactions/[\{emoji/docs/resources/emoji#emoji-object}/@me +/channels/[\{channel.id\}](/docs/resources/channel#channel-object)/messages/[\{message.id\}](/docs/resources/message#message-object)/reactions/[\{emoji.id\}](/docs/resources/emoji#emoji-object)/@me Create a reaction for the message. This endpoint requires the `READ_MESSAGE_HISTORY` permission to be present on the current user. Additionally, if nobody else has reacted to the message using this emoji, this endpoint requires the `ADD_REACTIONS` permission to be present on the current user. Returns a 204 empty response on success. Fires a [Message Reaction Add](/docs/events/gateway-events#message-reaction-add) Gateway event. The `emoji` must be [URL Encoded](https://en.wikipedia.org/wiki/Percent-encoding) or the request will fail with `10014: Unknown Emoji`. To use custom emoji, you must encode it in the format `name:id` with the emoji name and emoji id. ## Delete Own Reaction -/channels/[\{channel.id\}](/docs/resources/channel#channel-object)/messages/[\{message.id\}](/docs/resources/message#message-object)/reactions/[\{emoji/docs/resources/emoji#emoji-object}/@me +/channels/[\{channel.id\}](/docs/resources/channel#channel-object)/messages/[\{message.id\}](/docs/resources/message#message-object)/reactions/[\{emoji.id\}](/docs/resources/emoji#emoji-object)/@me Delete a reaction the current user has made for the message. Returns a 204 empty response on success. Fires a [Message Reaction Remove](/docs/events/gateway-events#message-reaction-remove) Gateway event. The `emoji` must be [URL Encoded](https://en.wikipedia.org/wiki/Percent-encoding) or the request will fail with `10014: Unknown Emoji`. To use custom emoji, you must encode it in the format `name:id` with the emoji name and emoji id. ## Delete User Reaction -/channels/[\{channel.id\}](/docs/resources/channel#channel-object)/messages/[\{message.id\}](/docs/resources/message#message-object)/reactions/[\{emoji/docs/resources/emoji#emoji-object}/[\{user.id\}](/docs/resources/user#user-object) +/channels/[\{channel.id\}](/docs/resources/channel#channel-object)/messages/[\{message.id\}](/docs/resources/message#message-object)/reactions/[\{emoji.id\}](/docs/resources/emoji#emoji-object)/[\{user.id\}](/docs/resources/user#user-object) Deletes another user's reaction. This endpoint requires the `MANAGE_MESSAGES` permission to be present on the current user. Returns a 204 empty response on success. Fires a [Message Reaction Remove](/docs/events/gateway-events#message-reaction-remove) Gateway event. The `emoji` must be [URL Encoded](https://en.wikipedia.org/wiki/Percent-encoding) or the request will fail with `10014: Unknown Emoji`. To use custom emoji, you must encode it in the format `name:id` with the emoji name and emoji id. ## Get Reactions -/channels/[\{channel.id\}](/docs/resources/channel#channel-object)/messages/[\{message.id\}](/docs/resources/message#message-object)/reactions/[\{emoji/docs/resources/emoji#emoji-object} +/channels/[\{channel.id\}](/docs/resources/channel#channel-object)/messages/[\{message.id\}](/docs/resources/message#message-object)/reactions/[\{emoji.id\}](/docs/resources/emoji#emoji-object) Get a list of users that reacted with this emoji. Returns an array of [user](/docs/resources/user#user-object) objects on success. The `emoji` must be [URL Encoded](https://en.wikipedia.org/wiki/Percent-encoding) or the request will fail with `10014: Unknown Emoji`. To use custom emoji, you must encode it in the format `name:id` with the emoji name and emoji id. @@ -879,7 +879,7 @@ The `emoji` must be [URL Encoded](https://en.wikipedia.org/wiki/Percent-encoding Deletes all reactions on a message. This endpoint requires the `MANAGE_MESSAGES` permission to be present on the current user. Fires a [Message Reaction Remove All](/docs/events/gateway-events#message-reaction-remove-all) Gateway event. ## Delete All Reactions for Emoji -/channels/[\{channel.id\}](/docs/resources/channel#channel-object)/messages/[\{message.id\}](/docs/resources/message#message-object)/reactions/[\{emoji/docs/resources/emoji#emoji-object} +/channels/[\{channel.id\}](/docs/resources/channel#channel-object)/messages/[\{message.id\}](/docs/resources/message#message-object)/reactions/[\{emoji.id\}](/docs/resources/emoji#emoji-object) Deletes all the reactions for a given emoji on a message. This endpoint requires the `MANAGE_MESSAGES` permission to be present on the current user. Fires a [Message Reaction Remove Emoji](/docs/events/gateway-events#message-reaction-remove-emoji) Gateway event. The `emoji` must be [URL Encoded](https://en.wikipedia.org/wiki/Percent-encoding) or the request will fail with `10014: Unknown Emoji`. To use custom emoji, you must encode it in the format `name:id` with the emoji name and emoji id. diff --git a/docs/resources/sticker.mdx b/docs/resources/sticker.mdx index b3335dff2b..ac0fa4bfac 100644 --- a/docs/resources/sticker.mdx +++ b/docs/resources/sticker.mdx @@ -101,7 +101,7 @@ Represents a pack of standard stickers. ``` ## Get Sticker -/stickers/[\{sticker.id\}](/docs/resources/sticker#sticker-object) +/stickers/[\{sticker.id\}](/docs/resources/sticker#sticker-object) Returns a [sticker](/docs/resources/sticker#sticker-object) object for the given sticker ID. diff --git a/docs/topics/oauth2.mdx b/docs/topics/oauth2.mdx index 094f0b4647..33713ebad3 100644 --- a/docs/topics/oauth2.mdx +++ b/docs/topics/oauth2.mdx @@ -22,36 +22,36 @@ In accordance with the relevant RFCs, the token and token revocation URLs will * These are a list of all the OAuth2 scopes that Discord supports. Some scopes require approval from Discord to use. Requesting them from a user without approval from Discord may cause errors or undocumented behavior in the OAuth2 flow. -| Name | Description | -|------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| activities.read | allows your app to fetch data from a user's "Now Playing/Recently Played" list — not currently available for apps | -| activities.write | allows your app to update a user's activity - not currently available for apps (NOT REQUIRED FOR [GAMESDK ACTIVITY MANAGER](/docs/developer-tools/game-sdk#activities)) | -| applications.builds.read | allows your app to read build data for a user's applications | -| applications.builds.upload | allows your app to upload/update builds for a user's applications - requires Discord approval | -| applications.commands | allows your app to add [commands](/docs/interactions/application-commands#) to a guild - included by default with the `bot` scope | -| applications.commands.update | allows your app to update its [commands](/docs/interactions/application-commands#) using a Bearer token - [client credentials grant](/docs/topics/oauth2#client-credentials-grant) only | -| applications.commands.permissions.update | allows your app to update [permissions for its commands](/docs/interactions/application-commands#permissions) in a guild a user has permissions to | -| applications.entitlements | allows your app to read entitlements for a user's applications | -| applications.store.update | allows your app to read and update store data (SKUs, store listings, achievements, etc.) for a user's applications | -| bot | for oauth2 bots, this puts the bot in the user's selected guild by default | -| connections | allows [/users/@me/connections](/docs/resources/user#get-current-user-connections) to return linked third-party accounts | -| dm_channels.read | allows your app to see information about the user's DMs and group DMs - requires Discord approval | -| email | enables [/users/@me](/docs/resources/user#get-current-user) to return an `email` | -| gdm.join | allows your app to [join users to a group dm](/docs/resources/channel#group-dm-add-recipient) | -| guilds | allows [/users/@me/guilds](/docs/resources/user#get-current-user-guilds) to return basic information about all of a user's guilds | -| guilds.join | allows [/guilds/\{guild.id\}/members/\{user.id\}](/docs/resources/guild#add-guild-member) to be used for joining users to a guild | -| guilds.members.read | allows [/users/@me/guilds/\{guild.id\}/member](/docs/resources/user#get-current-user-guild-member) to return a user's member information in a guild | -| identify | allows [/users/@me](/docs/resources/user#get-current-user) without `email` | -| messages.read | for local rpc server api access, this allows you to read messages from all client channels (otherwise restricted to channels/guilds your app creates) | -| relationships.read | allows your app to know a user's friends and implicit relationships - requires Discord approval | -| role_connections.write | allows your app to update a user's connection and metadata for the app | -| rpc | for local rpc server access, this allows you to control a user's local Discord client - requires Discord approval | -| rpc.activities.write | for local rpc server access, this allows you to update a user's activity - requires Discord approval | -| rpc.notifications.read | for local rpc server access, this allows you to receive notifications pushed out to the user - requires Discord approval | -| rpc.voice.read | for local rpc server access, this allows you to read a user's voice settings and listen for voice events - requires Discord approval | -| rpc.voice.write | for local rpc server access, this allows you to update a user's voice settings - requires Discord approval | -| voice | allows your app to connect to voice on user's behalf and see all the voice members - requires Discord approval | -| webhook.incoming | this generates a webhook that is returned in the oauth token response for authorization code grants | +| Name | Description | +|------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| activities.read | allows your app to fetch data from a user's "Now Playing/Recently Played" list — not currently available for apps | +| activities.write | allows your app to update a user's activity - not currently available for apps (NOT REQUIRED FOR [GAMESDK ACTIVITY MANAGER](/docs/developer-tools/game-sdk#activities)) | +| applications.builds.read | allows your app to read build data for a user's applications | +| applications.builds.upload | allows your app to upload/update builds for a user's applications - requires Discord approval | +| applications.commands | allows your app to add [commands](/docs/interactions/application-commands) to a guild - included by default with the `bot` scope | +| applications.commands.update | allows your app to update its [commands](/docs/interactions/application-commands) using a Bearer token - [client credentials grant](/docs/topics/oauth2#client-credentials-grant) only | +| applications.commands.permissions.update | allows your app to update [permissions for its commands](/docs/interactions/application-commands#permissions) in a guild a user has permissions to | +| applications.entitlements | allows your app to read entitlements for a user's applications | +| applications.store.update | allows your app to read and update store data (SKUs, store listings, achievements, etc.) for a user's applications | +| bot | for oauth2 bots, this puts the bot in the user's selected guild by default | +| connections | allows [`/users/@me/connections`](/docs/resources/user#get-current-user-connections) to return linked third-party accounts | +| dm_channels.read | allows your app to see information about the user's DMs and group DMs - requires Discord approval | +| email | enables [`/users/@me`](/docs/resources/user#get-current-user) to return an `email` | +| gdm.join | allows your app to [join users to a group dm](/docs/resources/channel#group-dm-add-recipient) | +| guilds | allows [`/users/@me/guilds`](/docs/resources/user#get-current-user-guilds) to return basic information about all of a user's guilds | +| guilds.join | allows [`/guilds/{guild.id}/members/{user.id}`](/docs/resources/guild#add-guild-member) to be used for joining users to a guild | +| guilds.members.read | allows [`/users/@me/guilds/{guild.id}/member`](/docs/resources/user#get-current-user-guild-member) to return a user's member information in a guild | +| identify | allows [`/users/@me`](/docs/resources/user#get-current-user) without `email` | +| messages.read | for local rpc server api access, this allows you to read messages from all client channels (otherwise restricted to channels/guilds your app creates) | +| relationships.read | allows your app to know a user's friends and implicit relationships - requires Discord approval | +| role_connections.write | allows your app to update a user's connection and metadata for the app | +| rpc | for local rpc server access, this allows you to control a user's local Discord client - requires Discord approval | +| rpc.activities.write | for local rpc server access, this allows you to update a user's activity - requires Discord approval | +| rpc.notifications.read | for local rpc server access, this allows you to receive notifications pushed out to the user - requires Discord approval | +| rpc.voice.read | for local rpc server access, this allows you to read a user's voice settings and listen for voice events - requires Discord approval | +| rpc.voice.write | for local rpc server access, this allows you to update a user's voice settings - requires Discord approval | +| voice | allows your app to connect to voice on user's behalf and see all the voice members - requires Discord approval | +| webhook.incoming | this generates a webhook that is returned in the oauth token response for authorization code grants | :::info In order to add a user to a guild, your bot has to already belong to that guild. `role_connections.write` cannot be used with the [Implicit grant type](/docs/topics/oauth2#implicit-grant).