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
ValueNameDescription
1PRELOADEDGeneral Discord user settings
2FRECENCYFrecency and favorites storage
3TEST_SETTINGSUnknown

Legacy User Settings Object

Contains general user settings. This is deprecated in favour of protobuf user settings.

Legacy User Settings Structure
FieldTypeDescription
activity_joining_restricted_guild_idsarray[snowflake]The IDs of guilds that will not be able to join your current activity
activity_restricted_guild_idsarray[snowflake]The IDs of guilds your activity presence will be hidden in
afk_timeoutintegerDuration (in seconds) the user needs to be inactive until clients update their AFK state
allow_accessibility_detectionbooleanWhether to allow Discord to track screen reader usage
allow_activity_party_privacy_friendsbooleanWhether to allow friends to join your activity without sending a request
allow_activity_party_privacy_voice_channel 1booleanWhether to allow people in the same voice channel as you to join your activity without sending a request
animate_emojibooleanWhether to play animated emojis in chat
animate_stickersintegerWhen to animate stickers in chat
contact_sync_enabledbooleanWhether to enable contact sync on Discord mobile
convert_emoticonsbooleanWhether to convert emoticons into emojis (:) -> 🙂)
custom_status?custom status objectThe custom status of the user, used to sync presence across clients
default_guilds_restrictedbooleanWhether to automatically disable DMs between you and members of new guilds you join
detect_platform_accountsbooleanWhether to automatically detect accounts from services like Steam and Blizzard when opening the Discord client
developer_modebooleanWhether to enable developer mode in-client
disable_games_tabbooleanWhether to disable the showing of the Games tab
enable_tts_commandbooleanWhether to allow TTS messages to be played/sent
explicit_content_filterintegerThe explicit content filter for explicit content in all messages
friend_discovery_flagsintegerThe friend discovery flags
friend_source_flagsfriend source flags objectThe friend source flags
gif_auto_playbooleanWhether GIFs are automatically played when Discord client is in focus
guild_foldersarray[guild folder object]The guild folders
inline_attachment_mediabooleanWhether to display attachments when they are uploaded in chat
inline_embed_mediabooleanWhether to display videos and images from links posted in chat
localestringThe language option chosen by the user
message_display_compactbooleanWhether to use the compact Discord display mode
native_phone_integration_enabledbooleanWhether to enable the new Discord mobile phone number friend requesting feature
passwordless (deprecated)booleanWhether to enable passwordless login
render_embedsbooleanWhether to render message embeds
render_reactionsbooleanWhether to render message reactions
restricted_guildsarray[snowflake]The IDs of guilds that you will not receive DMs from
show_current_gamebooleanWhether to display the currently active game in user presence
statusstringThe status of the user, used to sync presence across clients
stream_notifications_enabledbooleanWhether to receive stream notifications for friends
themestringThe theme
timezone_offsetintegerThe timezone offset from UTC to use (in minutes)
view_nsfw_commandsbooleanWhether NSFW application commands are shown in DMs
view_nsfw_guildsbooleanWhether NSFW guilds are shown on iOS

1 Does not apply to community guilds.

Sticker Animation Option
ValueNameDescription
0ALWAYS_ANIMATEAlways animate stickers
1ANIMATE_ON_INTERACTIONAnimate sticker on interaction
2NEVER_ANIMATENever animate stickers
Legacy Custom Status Structure
FieldTypeDescription
text?stringThe custom status text (max 128)
emoji_id 1?snowflakeThe ID of a guild's custom emoji
emoji_name 1?stringThe unicode character of the emoji
expires_at?ISO8601 timestampWhen 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.

ValueDescription
darkDark theme
lightLight theme
Explicit Content Filter

Whose messages will be scanned for explicit content.

ValueNameDescription
0DISABLEDDon't scan any direct messages
1NON_FRIENDSScan all direct messages that aren't from friends
2ALL_MESSAGESScan all direct messages from everyone
Friend Discovery Flags

Determines how you get recommended friends.

ValueNameDescription
1 << 1FIND_BY_PHONEWhether the current user can be found by phone number
1 << 2FIND_BY_EMAILWhether the current user can be found by email
Legacy Friend Source Flags Structure

Determines who can add the user as a friend.

FieldTypeDescription
all?booleanWhether everyone can add user as friend
mutual_friends?booleanWhether mutual user friends add user as friend
mutual_guilds?booleanWhether any user from mutual guild can add user as friend
Legacy Guild Folder Structure

A collection of guilds.

FieldTypeDescription
color?integerThe color of the folder encoded as an integer representation of hexadecimal color code
guild_idsarray[snowflake]The IDs of guilds this folder contains
id?integerThe ID of the folder
name?stringThe 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
FieldTypeDescription
settingsstringThe 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
FieldTypeDescription
settingsstringThe base-64 encoded serialized user settings protobuf modifications
required_data_version? 1integerThe 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
FieldTypeDescription
settingsstringThe 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
FieldTypeDescription
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?integerDuration (in seconds) the user needs to be inactive until clients update their AFK state
allow_accessibility_detection?booleanWhether to allow Discord to track screen reader usage
animate_emoji?booleanWhether to play animated emojis in chat
animate_stickers?integerWhen to animate stickers in chat
contact_sync_enabled?booleanWhether to enable contact sync on Discord mobile
convert_emoticons?booleanWhether to convert emoticons into emojis (:) -> 🙂)
custom_status??custom status objectThe custom status of the user, used to sync presence across clients
default_guilds_restricted?booleanWhether to automatically disable DMs between you and members of new guilds you join
detect_platform_accounts?booleanWhether to automatically detect accounts from services like Steam and Blizzard when opening the Discord client
developer_mode?booleanWhether to enable developer mode in-client
disable_games_tab?booleanWhether to disable the showing of the Games tab
enable_tts_command?booleanWhether to allow TTS messages to be played/sent
explicit_content_filter?integerThe explicit content filter for explicit content in all messages
friend_discovery_flags?integerThe friend discovery flags
friend_source_flags?friend source flags objectThe friend source flags
gif_auto_play?booleanWhether GIFs are automatically played when Discord client is in focus
guild_folders?array[guild folder object]The guild folders
inline_attachment_media?booleanWhether to display attachments when they are uploaded in chat
inline_embed_media?booleanWhether to display videos and images from links posted in chat
locale?stringThe language option chosen by the user
message_display_compact?booleanWhether to use the compact Discord display mode
native_phone_integration_enabled?booleanWhether to enable the new Discord mobile phone number friend requesting feature
passwordless? (deprecated)booleanWhether to enable passwordless login
render_embeds?booleanWhether to render message embeds
render_reactions?booleanWhether to render message reactions
restricted_guilds?array[snowflake]The IDs of guilds that you will not receive DMs from
show_current_game?booleanWhether to display the currently active game in user presence
status?stringThe status of the user, used to sync presence across clients
stream_notifications_enabled?booleanWhether to receive stream notifications for friends
theme?stringThe theme
timezone_offset?integerThe timezone offset from UTC to use (in minutes)
view_nsfw_guilds?booleanWhether NSFW guilds are shown on iOS