diff --git a/docs/change_log/2024-00-20-soundboard-api.md b/docs/change_log/2024-00-20-soundboard-api.md new file mode 100644 index 0000000000..d71436b845 --- /dev/null +++ b/docs/change_log/2024-00-20-soundboard-api.md @@ -0,0 +1,6 @@ +--- +title: "Soundboard API" +date: "2024-09-20" +--- + +[Soundboard](#DOCS_RESOURCES_SOUNDBOARD) is now available in the API! Apps can now [get](#DOCS_RESOURCES_SOUNDBOARD/list-default-soundboard-sounds) soundboard sounds, [modify](#DOCS_RESOURCES_SOUNDBOARD/modify-guild-soundboard-sound) them, [send](#DOCS_RESOURCES_SOUNDBOARD/send-soundboard-sound) them in voice channels, and listen to other users playing them! diff --git a/docs/resources/Audit_Log.md b/docs/resources/Audit_Log.md index c982eccf27..7b7761162a 100644 --- a/docs/resources/Audit_Log.md +++ b/docs/resources/Audit_Log.md @@ -126,6 +126,9 @@ If no object is noted, there won't be a `changes` array in the entry, though oth | THREAD_UPDATE | 111 | Thread was updated | [Thread](#DOCS_RESOURCES_CHANNEL/thread-metadata-object) | | THREAD_DELETE | 112 | Thread was deleted | [Thread](#DOCS_RESOURCES_CHANNEL/thread-metadata-object) | | APPLICATION_COMMAND_PERMISSION_UPDATE | 121 | Permissions were updated for a command | [Command Permission](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-permissions-object-application-command-permissions-structure)\* | +| SOUNDBOARD_SOUND_CREATE | 130 | Soundboard sound rule was created | [Soundboard Sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) | +| SOUNDBOARD_SOUND_UPDATE | 131 | Soundboard sound rule was updated | [Soundboard Sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) | +| SOUNDBOARD_SOUND_DELETE | 132 | Soundboard sound rule was deleted | [Soundboard Sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) | | AUTO_MODERATION_RULE_CREATE | 140 | Auto Moderation rule was created | [Auto Moderation Rule](#DOCS_RESOURCES_AUTO_MODERATION/auto-moderation-rule-object) | | AUTO_MODERATION_RULE_UPDATE | 141 | Auto Moderation rule was updated | [Auto Moderation Rule](#DOCS_RESOURCES_AUTO_MODERATION/auto-moderation-rule-object) | | AUTO_MODERATION_RULE_DELETE | 142 | Auto Moderation rule was deleted | [Auto Moderation Rule](#DOCS_RESOURCES_AUTO_MODERATION/auto-moderation-rule-object) | diff --git a/docs/resources/Guild.md b/docs/resources/Guild.md index f34ed0a9df..44316cb0cc 100644 --- a/docs/resources/Guild.md +++ b/docs/resources/Guild.md @@ -142,6 +142,7 @@ Guilds in Discord represent an isolated collection of users and channels, and ar | INVITES_DISABLED | guild has paused invites, preventing new users from joining | | INVITE_SPLASH | guild has access to set an invite splash background | | MEMBER_VERIFICATION_GATE_ENABLED | guild has enabled [Membership Screening](#DOCS_RESOURCES_GUILD/membership-screening-object) | +| MORE_SOUNDBOARD | guild has increased custom soundboard sound slots | | MORE_STICKERS | guild has increased custom sticker slots | | NEWS | guild has access to create announcement channels | | PARTNERED | guild is partnered | @@ -150,6 +151,7 @@ Guilds in Discord represent an isolated collection of users and channels, and ar | ROLE_ICONS | guild is able to set role icons | | ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE | guild has role subscriptions that can be purchased | | ROLE_SUBSCRIPTIONS_ENABLED | guild has enabled role subscriptions | +| SOUNDBOARD | guild has created soundboard sounds | | TICKETED_EVENTS_ENABLED | guild has enabled ticketed events | | VANITY_URL | guild has access to set a vanity URL | | VERIFIED | guild is verified | diff --git a/docs/resources/Soundboard.md b/docs/resources/Soundboard.md new file mode 100644 index 0000000000..eb6b34236e --- /dev/null +++ b/docs/resources/Soundboard.md @@ -0,0 +1,138 @@ +--- +sidebar_label: Soundboard +--- + +# Soundboard Resource + +Users can play soundboard sounds in voice channels, triggering a [Voice Channel Effect Send](#DOCS_TOPICS_GATEWAY_EVENTS/voice-channel-effect-send) Gateway event for users connected to the voice channel. + +There is a set of [default sounds](#DOCS_RESOURCES_SOUNDBOARD/list-default-soundboard-sounds) available to all users. Soundboard sounds can also be [created in a guild](#DOCS_RESOURCES_SOUNDBOARD/create-guild-soundboard-sound); users will be able to use the sounds in the guild, and Nitro subscribers can use them in all guilds. + +Soundboard sounds in a set of guilds can be retrieved over the Gateway using [Request Soundboard Sounds](#DOCS_TOPICS_GATEWAY_EVENTS/request-soundboard-sounds). + +### Soundboard Sound Object + +###### Soundboard Sound Structure + +| Field | Type | Description | +|------------|-------------------------------------------------|---------------------------------------------------------------------------| +| name | string | the name of this sound | +| sound_id | snowflake | the id of this sound | +| volume | double | the volume of this sound, from 0 to 1 | +| emoji_id | ?snowflake | the id of this sound's custom emoji | +| emoji_name | ?string | the unicode character of this sound's standard emoji | +| guild_id? | snowflake | the id of the guild this sound is in | +| available | boolean | whether this sound can be used, may be false due to loss of Server Boosts | +| user? | [user](#DOCS_RESOURCES_USER/user-object) object | the user who created this sound | + +###### Example Default Soundboard Sound + +```json +{ + "name": "quack", + "sound_id": "1", + "volume": 1.0, + "emoji_id": null, + "emoji_name": "🦆", + "available": true +} +``` + +###### Example Guild Soundboard Sound + +```json +{ + "name": "Yay", + "sound_id": "1106714396018884649", + "volume": 1, + "emoji_id": "989193655938064464", + "emoji_name": null, + "guild_id": "613425648685547541", + "available": true +} +``` + +### Sound Files + +A soundboard sound can be retrieved in MP3 or Ogg format at the URL: + +``` +https://cdn.discordapp.com/soundboard-sounds/{sound_id} +``` + +## Send Soundboard Sound % POST /channels/{channel.id#DOCS_RESOURCES_CHANNEL/channel-object}/send-soundboard-sound + +Send a soundboard sound to a voice channel the user is connected to. Fires a [Voice Channel Effect Send](#DOCS_TOPICS_GATEWAY_EVENTS/voice-channel-effect-send) Gateway event. + +Requires the `SPEAK` and `USE_SOUNDBOARD` permissions, and also the `USE_EXTERNAL_SOUNDS` permission if the sound is from a different server. Additionally, requires the user to be connected to the voice channel, having a [voice state](#DOCS_RESOURCES_VOICE/voice-state-object) without `deaf`, `self_deaf`, `mute`, or `suppress` enabled. + +###### JSON Params + +| Field | Type | Description | +|------------------|-----------|--------------------------------------------------------------------------------------------------| +| sound_id | snowflake | the id of the soundboard sound to play | +| source_guild_id? | snowflake | the id of the guild the soundboard sound is from, required to play sounds from different servers | + +## List Default Soundboard Sounds % GET /soundboard-default-sounds + +Returns an array of [soundboard sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) objects that can be used by all users. + +## List Guild Soundboard Sounds % GET /guilds/{guild.id#DOCS_RESOURCES_GUILD/guild-object}/soundboard-sounds + +Returns a list of the guild's soundboard sounds. Includes `user` fields if the bot has the `CREATE_GUILD_EXPRESSIONS` or `MANAGE_GUILD_EXPRESSIONS` permission. + +###### Response Structure + +| Field | Type | +|-------|-----------------------------------------------------------------------------------------| +| items | array of [soundboard sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) objects | + +## Get Guild Soundboard Sound % GET /guilds/{guild.id#DOCS_RESOURCES_GUILD/guild-object}/soundboard-sounds/{sound.id#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object} + +Returns a [soundboard sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) object for the given sound id. Includes the `user` field if the bot has the `CREATE_GUILD_EXPRESSIONS` or `MANAGE_GUILD_EXPRESSIONS` permission. + +## Create Guild Soundboard Sound % POST /guilds/{guild.id#DOCS_RESOURCES_GUILD/guild-object}/soundboard-sounds + +Create a new soundboard sound for the guild. Requires the `CREATE_GUILD_EXPRESSIONS` permission. Returns the new [soundboard sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) object on success. Fires a [Guild Soundboard Sound Create](#DOCS_TOPICS_GATEWAY_EVENTS/guild-soundboard-sound-create) Gateway event. + +> info +> Soundboard sounds have a max file size of 512kb and a max duration of 5.2 seconds. + +> info +> This endpoint supports the `X-Audit-Log-Reason` header. + +###### JSON Params + +| Field | Type | Description | +|-------------|------------|------------------------------------------------------------------------------------------------| +| name | string | name of the soundboard sound (2-32 characters) | +| sound | data uri | the mp3 or ogg sound data, base64 encoded, similar to [image data](#DOCS_REFERENCE/image-data) | +| volume? | ?double | the volume of the soundboard sound, from 0 to 1, defaults to 1 | +| emoji_id? | ?snowflake | the id of the custom emoji for the soundboard sound | +| emoji_name? | ?string | the unicode character of a standard emoji for the soundboard sound | + +## Modify Guild Soundboard Sound % PATCH /guilds/{guild.id#DOCS_RESOURCES_GUILD/guild-object}/soundboard-sounds/{sound.id#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object} + +Modify the given soundboard sound. For sounds created by the current user, requires either the `CREATE_GUILD_EXPRESSIONS` or `MANAGE_GUILD_EXPRESSIONS` permission. For other sounds, requires the `MANAGE_GUILD_EXPRESSIONS` permission. Returns the updated [soundboard sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) object on success. Fires a [Guild Soundboard Sound Update](#DOCS_TOPICS_GATEWAY_EVENTS/guild-soundboard-sound-update) Gateway event. + +> warn +> All parameters to this endpoint are optional. + +> info +> This endpoint supports the `X-Audit-Log-Reason` header. + +###### JSON Params + +| Field | Type | Description | +|------------|------------|--------------------------------------------------------------------| +| name | string | name of the soundboard sound (2-32 characters) | +| volume | ?double | the volume of the soundboard sound, from 0 to 1 | +| emoji_id | ?snowflake | the id of the custom emoji for the soundboard sound | +| emoji_name | ?string | the unicode character of a standard emoji for the soundboard sound | + +## Delete Guild Soundboard Sound % DELETE /guilds/{guild.id#DOCS_RESOURCES_GUILD/guild-object}/soundboard-sounds/{sound.id#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object} + +Delete the given soundboard sound. For sounds created by the current user, requires either the `CREATE_GUILD_EXPRESSIONS` or `MANAGE_GUILD_EXPRESSIONS` permission. For other sounds, requires the `MANAGE_GUILD_EXPRESSIONS` permission. Returns `204 No Content` on success. Fires a [Guild Soundboard Sound Delete](#DOCS_TOPICS_GATEWAY_EVENTS/guild-soundboard-sound-delete) Gateway event. + +> info +> This endpoint supports the `X-Audit-Log-Reason` header. diff --git a/docs/topics/Gateway.md b/docs/topics/Gateway.md index bd16bf9c5e..53089dbe44 100644 --- a/docs/topics/Gateway.md +++ b/docs/topics/Gateway.md @@ -320,9 +320,13 @@ GUILD_MODERATION (1 << 2) - GUILD_BAN_ADD - GUILD_BAN_REMOVE -GUILD_EMOJIS_AND_STICKERS (1 << 3) +GUILD_EXPRESSIONS (1 << 3) - GUILD_EMOJIS_UPDATE - GUILD_STICKERS_UPDATE + - GUILD_SOUNDBOARD_SOUND_CREATE + - GUILD_SOUNDBOARD_SOUND_UPDATE + - GUILD_SOUNDBOARD_SOUND_DELETE + - GUILD_SOUNDBOARD_SOUNDS_UPDATE GUILD_INTEGRATIONS (1 << 4) - GUILD_INTEGRATIONS_UPDATE diff --git a/docs/topics/Gateway_Events.md b/docs/topics/Gateway_Events.md index 4b4f69cb78..cdb997adfc 100644 --- a/docs/topics/Gateway_Events.md +++ b/docs/topics/Gateway_Events.md @@ -49,14 +49,15 @@ Send events are Gateway events encapsulated in an [event payload](#DOCS_TOPICS_G > info > Previously, Gateway send events were labeled as commands -| Name | Description | -|----------------------------------------------------------------------------|-----------------------------------------------------------| -| [Identify](#DOCS_TOPICS_GATEWAY_EVENTS/identify) | Triggers the initial handshake with the gateway | -| [Resume](#DOCS_TOPICS_GATEWAY_EVENTS/resume) | Resumes a dropped gateway connection | -| [Heartbeat](#DOCS_TOPICS_GATEWAY_EVENTS/heartbeat) | Maintains an active gateway connection | -| [Request Guild Members](#DOCS_TOPICS_GATEWAY_EVENTS/request-guild-members) | Requests members for a guild | -| [Update Voice State](#DOCS_TOPICS_GATEWAY_EVENTS/update-voice-state) | Joins, moves, or disconnects the app from a voice channel | -| [Update Presence](#DOCS_TOPICS_GATEWAY_EVENTS/update-presence) | Updates an app's presence | +| Name | Description | +|------------------------------------------------------------------------------------|-----------------------------------------------------------| +| [Identify](#DOCS_TOPICS_GATEWAY_EVENTS/identify) | Triggers the initial handshake with the gateway | +| [Resume](#DOCS_TOPICS_GATEWAY_EVENTS/resume) | Resumes a dropped gateway connection | +| [Heartbeat](#DOCS_TOPICS_GATEWAY_EVENTS/heartbeat) | Maintains an active gateway connection | +| [Request Guild Members](#DOCS_TOPICS_GATEWAY_EVENTS/request-guild-members) | Requests members for a guild | +| [Request Soundboard Sounds](#DOCS_TOPICS_GATEWAY_EVENTS/request-soundboard-sounds) | Requests soundboard sounds in a set of guilds | +| [Update Voice State](#DOCS_TOPICS_GATEWAY_EVENTS/update-voice-state) | Joins, moves, or disconnects the app from a voice channel | +| [Update Presence](#DOCS_TOPICS_GATEWAY_EVENTS/update-presence) | Updates an app's presence | #### Identify @@ -199,6 +200,27 @@ Due to our privacy and infrastructural concerns with this feature, there are som } ``` +#### Request Soundboard Sounds + +Used to request soundboard sounds for a list of guilds. The server will send [Soundboard Sounds](#DOCS_TOPICS_GATEWAY_EVENTS/soundboard-sounds) events for each guild in response. + +###### Request Soundboard Sounds Structure + +| Field | Type | Description | +|-----------|---------------------|------------------------------------------------| +| guild_ids | array of snowflakes | IDs of the guilds to get soundboard sounds for | + +###### Example Request Soundboard Sounds + +```json +{ + "op": 31, + "d": { + "guild_ids": ["613425648685547541", "81384788765712384"] + } +} +``` + #### Update Voice State Sent when a client wants to join, move, or disconnect from a voice channel. @@ -316,6 +338,11 @@ Receive events are Gateway events encapsulated in an [event payload](#DOCS_TOPIC | [Guild Scheduled Event Delete](#DOCS_TOPICS_GATEWAY_EVENTS/guild-scheduled-event-delete) | Guild scheduled event was deleted | | [Guild Scheduled Event User Add](#DOCS_TOPICS_GATEWAY_EVENTS/guild-scheduled-event-user-add) | User subscribed to a guild scheduled event | | [Guild Scheduled Event User Remove](#DOCS_TOPICS_GATEWAY_EVENTS/guild-scheduled-event-user-remove) | User unsubscribed from a guild scheduled event | +| [Guild Soundboard Sound Create](#DOCS_TOPICS_GATEWAY_EVENTS/guild-soundboard-sound-create) | Guild soundboard sound was created | +| [Guild Soundboard Sound Update](#DOCS_TOPICS_GATEWAY_EVENTS/guild-soundboard-sound-update) | Guild soundboard sound was updated | +| [Guild Soundboard Sound Delete](#DOCS_TOPICS_GATEWAY_EVENTS/guild-soundboard-sound-delete) | Guild soundboard sound was deleted | +| [Guild Soundboard Sounds Update](#DOCS_TOPICS_GATEWAY_EVENTS/guild-soundboard-sounds-update) | Guild soundboard sounds were updated | +| [Soundboard Sounds](#DOCS_TOPICS_GATEWAY_EVENTS/soundboard-sounds) | Response to [Request Soundboard Sounds](#DOCS_TOPICS_GATEWAY_EVENTS/request-soundboard-sounds) | | [Integration Create](#DOCS_TOPICS_GATEWAY_EVENTS/integration-create) | Guild integration was created | | [Integration Update](#DOCS_TOPICS_GATEWAY_EVENTS/integration-update) | Guild integration was updated | | [Integration Delete](#DOCS_TOPICS_GATEWAY_EVENTS/integration-delete) | Guild integration was deleted | @@ -596,6 +623,7 @@ The inner payload can be: | presences | array of partial [presence update](#DOCS_TOPICS_GATEWAY_EVENTS/presence-update) objects | Presences of the members in the guild, will only include non-offline members if the size is greater than `large threshold` | | stage_instances | array of [stage instance](#DOCS_RESOURCES_STAGE_INSTANCE/stage-instance-object) objects | Stage instances in the guild | | guild_scheduled_events | array of [guild scheduled event](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object) objects | Scheduled events in the guild | +| soundboard_sounds | array of [soundboard sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) objects | Soundboard sounds in the guild | > warn > If your bot does not have the `GUILD_PRESENCES` [Gateway Intent](#DOCS_TOPICS_GATEWAY/gateway-intents), or if the guild has over 75k members, members and presences returned in this event will only contain your bot and users in voice channels. @@ -774,19 +802,19 @@ Sent when a guild role is deleted. | guild_id | snowflake | ID of the guild | | role_id | snowflake | ID of the role | -### Guild Scheduled Event Create +#### Guild Scheduled Event Create Sent when a guild scheduled event is created. The inner payload is a [guild scheduled event](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object) object. -### Guild Scheduled Event Update +#### Guild Scheduled Event Update Sent when a guild scheduled event is updated. The inner payload is a [guild scheduled event](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object) object. -### Guild Scheduled Event Delete +#### Guild Scheduled Event Delete Sent when a guild scheduled event is deleted. The inner payload is a [guild scheduled event](#DOCS_RESOURCES_GUILD_SCHEDULED_EVENT/guild-scheduled-event-object) object. -### Guild Scheduled Event User Add +#### Guild Scheduled Event User Add Sent when a user has subscribed to a guild scheduled event. @@ -798,7 +826,7 @@ Sent when a user has subscribed to a guild scheduled event. | user_id | snowflake | ID of the user | | guild_id | snowflake | ID of the guild | -### Guild Scheduled Event User Remove +#### Guild Scheduled Event User Remove Sent when a user has unsubscribed from a guild scheduled event. @@ -810,6 +838,40 @@ Sent when a user has unsubscribed from a guild scheduled event. | user_id | snowflake | ID of the user | | guild_id | snowflake | ID of the guild | +#### Guild Soundboard Sound Create + +Sent when a guild soundboard sound is created. The inner payload is a [soundboard sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) object. + +#### Guild Soundboard Sound Update + +Sent when a guild soundboard sound is updated. The inner payload is a [soundboard sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) object. + +#### Guild Soundboard Sound Delete + +Sent when a guild soundboard sound is deleted. + +###### Guild Soundboard Sound Delete Event Fields + +| Field | Type | Description | +|----------|-----------|----------------------------------| +| sound_id | snowflake | ID of the sound that was deleted | +| guild_id | snowflake | ID of the guild the sound was in | + +#### Guild Soundboard Sounds Update + +Sent when multiple guild soundboard sounds are updated. The inner payload is an array of [soundboard sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) objects. + +#### Soundboard Sounds + +Includes a guild's list of soundboard sounds. Sent in response to [Request Soundboard Sounds](#DOCS_TOPICS_GATEWAY_EVENTS/request-soundboard-sounds). + +###### Soundboard Sounds Event Fields + +| Field | Type | Description | +|-------------------|-----------------------------------------------------------------------------------------|-------------------------------| +| soundboard_sounds | array of [soundboard sound](#DOCS_RESOURCES_SOUNDBOARD/soundboard-sound-object) objects | The guild's soundboard sounds | +| guild_id | snowflake | ID of the guild | + ### Integrations #### Integration Create diff --git a/docs/topics/Opcodes_and_Status_Codes.md b/docs/topics/Opcodes_and_Status_Codes.md index 01a9aaa89b..5e4a2fa2c5 100644 --- a/docs/topics/Opcodes_and_Status_Codes.md +++ b/docs/topics/Opcodes_and_Status_Codes.md @@ -6,19 +6,20 @@ All gateway events in Discord are tagged with an opcode that denotes the payload ###### Gateway Opcodes -| Code | Name | Client Action | Description | -|------|-----------------------|---------------|-----------------------------------------------------------------------------------------| -| 0 | Dispatch | Receive | An event was dispatched. | -| 1 | Heartbeat | Send/Receive | Fired periodically by the client to keep the connection alive. | -| 2 | Identify | Send | Starts a new session during the initial handshake. | -| 3 | Presence Update | Send | Update the client's presence. | -| 4 | Voice State Update | Send | Used to join/leave or move between voice channels. | -| 6 | Resume | Send | Resume a previous session that was disconnected. | -| 7 | Reconnect | Receive | You should attempt to reconnect and resume immediately. | -| 8 | Request Guild Members | Send | Request information about offline guild members in a large guild. | -| 9 | Invalid Session | Receive | The session has been invalidated. You should reconnect and identify/resume accordingly. | -| 10 | Hello | Receive | Sent immediately after connecting, contains the `heartbeat_interval` to use. | -| 11 | Heartbeat ACK | Receive | Sent in response to receiving a heartbeat to acknowledge that it has been received. | +| Code | Name | Client Action | Description | +|------|---------------------------|---------------|-----------------------------------------------------------------------------------------| +| 0 | Dispatch | Receive | An event was dispatched. | +| 1 | Heartbeat | Send/Receive | Fired periodically by the client to keep the connection alive. | +| 2 | Identify | Send | Starts a new session during the initial handshake. | +| 3 | Presence Update | Send | Update the client's presence. | +| 4 | Voice State Update | Send | Used to join/leave or move between voice channels. | +| 6 | Resume | Send | Resume a previous session that was disconnected. | +| 7 | Reconnect | Receive | You should attempt to reconnect and resume immediately. | +| 8 | Request Guild Members | Send | Request information about offline guild members in a large guild. | +| 9 | Invalid Session | Receive | The session has been invalidated. You should reconnect and identify/resume accordingly. | +| 10 | Hello | Receive | Sent immediately after connecting, contains the `heartbeat_interval` to use. | +| 11 | Heartbeat ACK | Receive | Sent in response to receiving a heartbeat to acknowledge that it has been received. | +| 31 | Request Soundboard Sounds | Send | Request information about soundboard sounds in a set of guilds. | ###### Gateway Close Event Codes @@ -126,6 +127,7 @@ Along with the HTTP error code, our API can also return more detailed error code | 10015 | Unknown webhook | | 10016 | Unknown webhook service | | 10020 | Unknown session | +| 10021 | Unknown Asset | | 10026 | Unknown ban | | 10027 | Unknown SKU | | 10028 | Unknown Store Listing | @@ -152,6 +154,7 @@ Along with the HTTP error code, our API can also return more detailed error code | 10070 | Unknown Guild Scheduled Event | | 10071 | Unknown Guild Scheduled Event User | | 10087 | Unknown Tag | +| 10097 | Unknown sound | | 20001 | Bots cannot use this endpoint | | 20002 | Only bots can use this endpoint | | 20009 | Explicit content cannot be sent to the desired recipient(s) | @@ -189,6 +192,7 @@ Along with the HTTP error code, our API can also return more detailed error code | 30039 | Maximum number of stickers reached | | 30040 | Maximum number of prune requests has been reached. Try again later | | 30042 | Maximum number of guild widget settings updates has been reached. Try again later | +| 30045 | Maximum number of soundboard sounds reached | | 30046 | Maximum number of edits to messages older than 1 hour reached. Try again later | | 30047 | Maximum number of pinned threads in a forum channel has been reached | | 30048 | Maximum number of tags in a forum channel has been reached | @@ -269,12 +273,16 @@ Along with the HTTP error code, our API can also return more detailed error code | 50097 | This server needs monetization enabled in order to perform this action | | 50101 | This server needs more boosts to perform this action | | 50109 | The request body contains invalid JSON. | +| 50110 | The provided file is invalid. | +| 50123 | The provided file type is invalid. | +| 50124 | The provided file duration exceeds maximum of 5.2 seconds. | | 50131 | Owner cannot be pending member | | 50132 | Ownership cannot be transferred to a bot user | | 50138 | Failed to resize asset below the maximum size: 262144 | | 50144 | Cannot mix subscription and non subscription roles for an emoji | | 50145 | Cannot convert between premium emoji and normal emoji | | 50146 | Uploaded file not found. | +| 50151 | The specified emoji is invalid | | 50159 | Voice messages do not support additional content. | | 50160 | Voice messages must have a single audio attachment. | | 50161 | Voice messages must have supporting metadata. | @@ -282,6 +290,7 @@ Along with the HTTP error code, our API can also return more detailed error code | 50163 | Cannot delete guild subscription integration | | 50173 | You cannot send voice messages in this channel. | | 50178 | The user account must first be verified | +| 50192 | The provided file does not have a valid duration. | | 50600 | You do not have permission to send this sticker. | | 60003 | Two factor is required for this operation | | 80004 | No users with DiscordTag exist |