Voice Resource
Voice resources are used to interact with voice in Discord. For more information on connecting to voice, see the Voice Connections topic.
Voice State Object
Used to represent a user's voice connection status.
Voice State Structure
Field | Type | Description |
---|---|---|
guild_id? 1 | ?snowflake | The guild ID this voice state is for |
channel_id | ?snowflake | The channel ID this user is connected to |
user_id | snowflake | The user ID this voice state is for |
member? 1 | guild member object | The guild member this voice state is for |
session_id | string | The session ID this voice state is from |
deaf | boolean | Whether this user is deafened by the guild, if any |
mute | boolean | Whether this user is muted by the guild, if any |
self_deaf | boolean | Whether this user is locally deafened |
self_mute | boolean | Whether this user is locally muted |
self_stream? | boolean | Whether this user is streaming using "Go Live" |
self_video | boolean | Whether this user's camera is enabled |
suppress | boolean | Whether this user's permission to speak is denied |
request_to_speak_timestamp | ?ISO8601 timestamp | The time at which the user requested to speak |
1 Omitted in the Gateway guild object.
Example Voice State
{"channel_id": "157733188964188161","user_id": "80351110224678912","session_id": "90326bd25d71d39b9ef95b299e3872ff","deaf": false,"mute": false,"self_deaf": false,"self_mute": true,"suppress": false,"request_to_speak_timestamp": "2021-03-31T18:45:31.297561+00:00"}
Voice Region Object
Voice Region Structure
Field | Type | Description |
---|---|---|
id | string | The unique ID for the region |
name | string | The name of the region |
optimal | boolean | Whether this is the closest to the current user's client |
deprecated | boolean | Whether this is a deprecated voice region (avoid switching to these) |
custom | boolean | Whether this is a custom voice region (used for events, etc.) |
Endpoints
Get Voice Regions
GET
/voice/regions
Returns an array of voice region objects that can be used when setting a voice channel's rtc_region
.
Get Guild Voice Regions
GET
/guilds/{guild.id}/regions
Returns a list of voice region objects that can be used when setting a voice channel's rtc_region
. Unlike the similar Get Voice Regions route, this returns VIP servers when the guild is VIP-enabled.
Modify Current User Voice State
PATCH
/guilds/{guild.id}/voice-states/@me
Updates the current user's voice state in the given guild ID. Returns a 204 empty response on success. Fires a Voice State Update Gateway event.
JSON Params
Field | Type | Description |
---|---|---|
channel_id? | snowflake | The ID of the channel the user is currently in |
suppress? | boolean | Whether the user is suppressed in the channel |
request_to_speak_timestamp? | ?ISO8601 timestamp | The time at which the user requested to speak |
Caveats
There are currently several caveats for this endpoint:
channel_id
must point to a stage channel- Current user must already have joined
channel_id
- You must have the
MUTE_MEMBERS
permission to unsuppress yourself; you can always suppress yourself - You must have the
REQUEST_TO_SPEAK
permission to request to speak; you can always clear your own request to speak - You can only set
request_to_speak_timestamp
to the present or a future time
Modify User Voice State
PATCH
/guilds/{guild.id}/voice-states/{user.id}
Updates another user's voice state in the given guild ID. Returns a 204 empty response on success. Fires a Voice State Update Gateway event.
JSON Params
Field | Type | Description |
---|---|---|
channel_id | snowflake | The ID of the channel the user is currently in |
suppress? | boolean | Whether the user is suppressed in the channel |
Caveats
There are currently several caveats for this endpoint:
channel_id
must point to a stage channel- Target user must already have joined
channel_id
- You must have the
MUTE_MEMBERS
permission - When unsuppressed, user accounts will have their
request_to_speak_timestamp
set to the current time; bot users will not - When suppressed, the user will have their
request_to_speak_timestamp
removed
Send Voice Channel Effect
POST
/channels/{channel.id}/voice-channel-effects
Sends a voice channel effect to a voice channel. Returns a 204 empty response on success. Fires a Voice Channel Effect Send Gateway event.
JSON Params
Field | Type | Description |
---|---|---|
animation_type? | ?integer | The type of emoji animation, if applicable (default BASIC ) |
animation_id? | ?integer | The ID of the emoji animation (0-20, default 0) |
emoji_id? | ?snowflake | The ID of the custom emoji to send |
emoji_name? | ?string | The emoji name or unicode character of the emoji to send |
Voice Channel Effect Animation Type
Value | Name | Description |
---|---|---|
0 | PREMIUM | A fun animation, requires a premium (Nitro) subscription |
1 | BASIC | The standard animation |