User Settings Resource
User settings are options that a user can configure to change the behavior of their account or client.
User Settings Proto Object
This object is actually a serialized protobuf message. The individual fields are not yet documented, but the .proto files are available on this repository.
User Settings Proto Type
Value | Name | Description |
---|---|---|
1 | PRELOADED | General Discord user settings |
2 | FRECENCY | Frecency and favorites storage |
3 | TEST_SETTINGS | Unknown |
Legacy User Settings Object
Contains general user settings. This is deprecated in favour of protobuf user settings.
Legacy User Settings Structure
Field | Type | Description |
---|---|---|
activity_joining_restricted_guild_ids | array[snowflake] | The IDs of guilds that will not be able to join your current activity |
activity_restricted_guild_ids | array[snowflake] | The IDs of guilds your activity presence will be hidden in |
afk_timeout | integer | Duration (in seconds) the user needs to be inactive until clients update their AFK state |
allow_accessibility_detection | boolean | Whether to allow Discord to track screen reader usage |
allow_activity_party_privacy_friends | boolean | Whether to allow friends to join your activity without sending a request |
allow_activity_party_privacy_voice_channel 1 | boolean | Whether to allow people in the same voice channel as you to join your activity without sending a request |
animate_emoji | boolean | Whether to play animated emojis in chat |
animate_stickers | integer | When to animate stickers in chat |
contact_sync_enabled | boolean | Whether to enable contact sync on Discord mobile |
convert_emoticons | boolean | Whether to convert emoticons into emojis (:) -> 🙂 ) |
custom_status | ?custom status object | The custom status of the user, used to sync presence across clients |
default_guilds_restricted | boolean | Whether to automatically disable DMs between you and members of new guilds you join |
detect_platform_accounts | boolean | Whether to automatically detect accounts from services like Steam and Blizzard when opening the Discord client |
developer_mode | boolean | Whether to enable developer mode in-client |
disable_games_tab | boolean | Whether to disable the showing of the Games tab |
enable_tts_command | boolean | Whether to allow TTS messages to be played/sent |
explicit_content_filter | integer | The explicit content filter for explicit content in all messages |
friend_discovery_flags | integer | The friend discovery flags |
friend_source_flags | friend source flags object | The friend source flags |
gif_auto_play | boolean | Whether GIFs are automatically played when Discord client is in focus |
guild_folders | array[guild folder object] | The guild folders |
inline_attachment_media | boolean | Whether to display attachments when they are uploaded in chat |
inline_embed_media | boolean | Whether to display videos and images from links posted in chat |
locale | string | The language option chosen by the user |
message_display_compact | boolean | Whether to use the compact Discord display mode |
native_phone_integration_enabled | boolean | Whether to enable the new Discord mobile phone number friend requesting feature |
passwordless (deprecated) | boolean | Whether to enable passwordless login |
render_embeds | boolean | Whether to render message embeds |
render_reactions | boolean | Whether to render message reactions |
restricted_guilds | array[snowflake] | The IDs of guilds that you will not receive DMs from |
show_current_game | boolean | Whether to display the currently active game in user presence |
status | string | The status of the user, used to sync presence across clients |
stream_notifications_enabled | boolean | Whether to receive stream notifications for friends |
theme | string | The theme |
timezone_offset | integer | The timezone offset from UTC to use (in minutes) |
view_nsfw_commands | boolean | Whether NSFW application commands are shown in DMs |
view_nsfw_guilds | boolean | Whether NSFW guilds are shown on iOS |
1 Does not apply to community guilds.
Sticker Animation Option
Value | Name | Description |
---|---|---|
0 | ALWAYS_ANIMATE | Always animate stickers |
1 | ANIMATE_ON_INTERACTION | Animate sticker on interaction |
2 | NEVER_ANIMATE | Never animate stickers |
Legacy Custom Status Structure
Field | Type | Description |
---|---|---|
text | ?string | The custom status text (max 128) |
emoji_id 1 | ?snowflake | The ID of a guild's custom emoji |
emoji_name 1 | ?string | The unicode character of the emoji |
expires_at | ?ISO8601 timestamp | When the custom status will expire |
1 At most one of emoji_id
and emoji_name
may be set to a non-null value.
Legacy Client Theme
The client theme denotes the theme the user has set in their client.
Value | Description |
---|---|
dark | Dark theme |
light | Light theme |
Explicit Content Filter
Whose messages will be scanned for explicit content.
Value | Name | Description |
---|---|---|
0 | DISABLED | Don't scan any direct messages |
1 | NON_FRIENDS | Scan all direct messages that aren't from friends |
2 | ALL_MESSAGES | Scan all direct messages from everyone |
Friend Discovery Flags
Determines how you get recommended friends.
Value | Name | Description |
---|---|---|
1 << 1 | FIND_BY_PHONE | Whether the current user can be found by phone number |
1 << 2 | FIND_BY_EMAIL | Whether the current user can be found by email |
Legacy Friend Source Flags Structure
Determines who can add the user as a friend.
Field | Type | Description |
---|---|---|
all? | boolean | Whether everyone can add user as friend |
mutual_friends? | boolean | Whether mutual user friends add user as friend |
mutual_guilds? | boolean | Whether any user from mutual guild can add user as friend |
Legacy Guild Folder Structure
A collection of guilds.
Field | Type | Description |
---|---|---|
color | ?integer | The color of the folder encoded as an integer representation of hexadecimal color code |
guild_ids | array[snowflake] | The IDs of guilds this folder contains |
id | ?integer | The ID of the folder |
name | ?string | The name of the folder (default ', '.join(guild.name for guild in folder.guilds) ) |
Endpoints
Get User Settings Proto
GET
/users/@me/settings-proto/{type}
Returns the requester's user settings protobuf for the specified type.
Response Body
Field | Type | Description |
---|---|---|
settings | string | The base 64-encoded serialized user settings protobuf |
Modify User Settings Proto
PATCH
/users/@me/settings-proto/{type}
Modifies the requester's user settings protobuf for the specified type. Fires a User Settings Proto Update and User Settings Update Gateway event.
JSON Params
Field | Type | Description |
---|---|---|
settings | string | The base-64 encoded serialized user settings protobuf modifications |
required_data_version? 1 | integer | The required data version of the proto |
1 When making offline edits, the required data version of the proto should be set to the last known version. This ensures that the client doesn't overwrite newer edits made on a different client on edit.
Response Body
Field | Type | Description |
---|---|---|
settings | string | The base-64 encoded serialized user settings protobuf |
Get User Settings
GET
/users/@me/settings
Returns the requester's user settings.
Modify User Settings
PATCH
/users/@me/settings
Modifies the requester's user settings. Returns a user settings object on success. Fires a User Settings Proto Update and User Settings Update Gateway event.
JSON Params
Field | Type | Description |
---|---|---|
activity_joining_restricted_guild_ids? | array[snowflake] | The IDs of guilds that will not be able to join your current activity |
activity_restricted_guild_ids? | array[snowflake] | The IDs of guilds your activity presence will be hidden in |
afk_timeout? | integer | Duration (in seconds) the user needs to be inactive until clients update their AFK state |
allow_accessibility_detection? | boolean | Whether to allow Discord to track screen reader usage |
animate_emoji? | boolean | Whether to play animated emojis in chat |
animate_stickers? | integer | When to animate stickers in chat |
contact_sync_enabled? | boolean | Whether to enable contact sync on Discord mobile |
convert_emoticons? | boolean | Whether to convert emoticons into emojis (:) -> 🙂 ) |
custom_status? | ?custom status object | The custom status of the user, used to sync presence across clients |
default_guilds_restricted? | boolean | Whether to automatically disable DMs between you and members of new guilds you join |
detect_platform_accounts? | boolean | Whether to automatically detect accounts from services like Steam and Blizzard when opening the Discord client |
developer_mode? | boolean | Whether to enable developer mode in-client |
disable_games_tab? | boolean | Whether to disable the showing of the Games tab |
enable_tts_command? | boolean | Whether to allow TTS messages to be played/sent |
explicit_content_filter? | integer | The explicit content filter for explicit content in all messages |
friend_discovery_flags? | integer | The friend discovery flags |
friend_source_flags? | friend source flags object | The friend source flags |
gif_auto_play? | boolean | Whether GIFs are automatically played when Discord client is in focus |
guild_folders? | array[guild folder object] | The guild folders |
inline_attachment_media? | boolean | Whether to display attachments when they are uploaded in chat |
inline_embed_media? | boolean | Whether to display videos and images from links posted in chat |
locale? | string | The language option chosen by the user |
message_display_compact? | boolean | Whether to use the compact Discord display mode |
native_phone_integration_enabled? | boolean | Whether to enable the new Discord mobile phone number friend requesting feature |
passwordless? (deprecated) | boolean | Whether to enable passwordless login |
render_embeds? | boolean | Whether to render message embeds |
render_reactions? | boolean | Whether to render message reactions |
restricted_guilds? | array[snowflake] | The IDs of guilds that you will not receive DMs from |
show_current_game? | boolean | Whether to display the currently active game in user presence |
status? | string | The status of the user, used to sync presence across clients |
stream_notifications_enabled? | boolean | Whether to receive stream notifications for friends |
theme? | string | The theme |
timezone_offset? | integer | The timezone offset from UTC to use (in minutes) |
view_nsfw_guilds? | boolean | Whether NSFW guilds are shown on iOS |