Users Resource

Users in Discord are generally considered the base entity. Users can spawn across the entire platform, be members of guilds, participate in text and voice chat, and much more. Users are separated by a distinction of "bot" vs "normal". Although they are similar, bot users are automated users that are attached to an application, "owned" by another user. Unlike normal users, bot users do not have a limitation on the number of guilds they can be a part of.

Usernames and Nicknames

Discord enforces the following restrictions for usernames, display names, and nicknames:

  1. Names can contain most valid unicode characters. We limit some zero-width and non-rendering characters.
  2. Usernames must be between 2 and 32 characters long.
  3. Display names and nicknames must be between 1 and 32 characters long.
  4. Webhook names must be between 1 and 80 characters long.
  5. Names are sanitized and trimmed of leading, trailing, and excessive internal whitespace.

The following restrictions are additionally enforced for usernames and display names:

  1. Usernames cannot contain the following substrings: '@', '#', ':', '```'.
  2. Usernames and display names cannot be: 'everyone', 'here', 'system message', or contain 'discord'.

The following restrictions are additionally enforced for webhook names:

  1. Webhook names cannot contain the following substrings: 'clyde'.

Migrated usernames are subject to a new set of restrictions in addition to the above:

  1. Migrated usernames can only contain lowercase alphanumeric characters, underscores (_), and periods (.). Uppercase characters, spaces, dashes (-), and other special characters are not allowed.
  2. Migrated usernames cannot have two or more consecutive periods (..).
  3. Migrated usernames are unique to each user, and no two users can share the same username.

There are other rules and restrictions not shared here for the sake of spam and abuse mitigation, but the majority of users won't encounter them. It's important to properly handle all error messages returned by Discord when editing or updating names.

Unique Usernames

Discord's username system is changing. Discriminators are being removed and new, unique usernames (@name) and display names are being introduced. Internally, this migration is referred to as "pomelo". You can read more details about how the changes to the username system affect user accounts in the general Help Center article. To learn how it impacts bots specifically, you can read the Developer Help Center article.

A user's legacy username#discriminator tag will still be usable to send friend requests, and will be available as a profile badge for migrated users.

Identifying Migrated Users

The value of a single zero (0) in the discriminator field on the user object indicates that the user has been pommeled migrated to the new username system. Note that the discriminator for migrated users will not be 4-digits like a standard discriminator (it is 0, not 0000). The value of the username field will become the migrated user's unique username.

Migrating

Users can only migrate their account to pomelo if they are in the rollout. A user is in the rollout if they have pomelo in the disclose field on the Ready Supplemental event and are in the 2023-03_pomelo user experiment. Migration is now complete and all non-migrated users have been automatically assigned a unique username.

To migrate, users should first check if the username they want is available, and then migrate their account to that username. If the username they want is not available, they can get a list of suggested usernames to choose from.

Display Names

As part of pomelo, user accounts can define a non-unique display name. This value is a new nullable global_name field with a max length of 32 characters.

For bots, the display name will be the same as their application's name.

Default Avatars

For users with migrated accounts, default avatar URLs will be based on the user ID instead of the discriminator. The URL can be calculated using (user_id >> 22) % 6. For non-migrated accounts, the URL can be calculated using discriminator % 5.

User Object

User Structure
FieldTypeDescription
idsnowflakeThe ID of the user
username 5stringThe user's username, may be unique across the platform (2-32 characters)
discriminator 5stringThe user's stringified 4-digit Discord tag
global_name 5?stringThe user's display name (1-32 characters); for bots, this is the application name
avatar?stringThe user's avatar hash
avatar_decoration_data?avatar decoration data objectThe user's avatar decoration
primary_guild??primary guild objectThe primary clan guild the user is in
bot?booleanWhether the user is a bot account
system?booleanWhether the user is an official Discord System user (part of the urgent message system)
mfa_enabledbooleanWhether the user has multi-factor authentication enabled on their account
nsfw_allowed? 1?booleanWhether the user is allowed to see NSFW content, null if not yet known
pronouns? 1 4stringThe user's pronouns (max 40 characters)
bio 1stringThe user's bio (max 190 characters)
banner?stringThe user's banner hash
accent_color?integerThe user's banner color encoded as an integer representation of hexadecimal color code
locale? 3stringThe language option chosen by the user
verified 2booleanWhether the email on this account has been verified
email 2?stringThe user's email address
phone? 1?stringThe user's E.164-formatted phone number
premium_typeintegerThe type of premium (Nitro) subscription on a user's account
personal_connection_id?snowflakeThe ID of the user's personal, non-employee user account
flags 1integerThe flags on a user's account
public_flagsintegerThe public flags on a user's account
purchased_flags? 1integerThe purchased flags on a user's account
premium_usage_flags? 1integerThe premium usage flags on a user's account
desktop? 1 4booleanWhether the user has used the desktop client before
mobile? 1 4booleanWhether the user has used the mobile client before
has_bounced_email? 1booleanWhether the user's email has failed to deliver and is no longer valid
authenticator_types? 3array[integer]The types of multi-factor authenticators the user has enabled

1 Not included when fetching a user via OAuth2.

2 Not included when fetching a user via OAuth2 without the email scope.

3 Not included in the user object returned in the Ready event.

4 Only included in the user object returned in the Ready event.

5 See the section on Discord's new username system for more information.

Partial User Structure
FieldTypeDescription
idsnowflakeThe ID of the user
username 1stringThe user's username, may be unique across the platform (2-32 characters)
discriminator 1stringThe user's stringified 4-digit Discord tag
global_name? 1?stringThe user's display name (1-32 characters); for bots, this is the application name
avatar?stringThe user's avatar hash
avatar_decoration_data??avatar decoration data objectThe user's avatar decoration
primary_guild??primary guild objectThe primary clan guild the user is in
bot?booleanWhether the user is a bot account
system?booleanWhether the user is an official Discord System user (part of the urgent message system)
banner? 2?stringThe user's banner hash
accent_color? 2?integerThe user's banner color encoded as an integer representation of hexadecimal color code
public_flags?integerThe public flags on a user's account

1 See the section on Discord's new username system for more information.

2 Only guaranteed to be included when fetched through the Get User and Get User Profile endpoints. May be included in data received through other API endpoints.

3 Only guaranteed to be included when fetched through the Get User endpoint or the author field on the message object. May be included in data received through other API endpoints.

Primary Guild Structure
FieldTypeDescription
identity_enabledbooleanWhether the user is displaying their clan tag
identity_guild_id 1?snowflakeThe ID of the guild
tag 1?stringThe user's clan tag (max 4 characters)
badge 1?stringThe clan's badge hash

1 Only populated for users with identity_enabled set to true.

Example User
{
"id": "80351110224678912",
"username": "nelly",
"global_name": "Nelly",
"avatar": "8342729096ea3675442027381ff50dfe",
"discriminator": "0",
"public_flags": 64,
"flags": 96,
"purchased_flags": 10,
"premium_usage_flags": 4,
"banner": "06c16474723fe537c283b8efa61a30c8",
"accent_color": null,
"bio": "I'm a bot!",
"locale": "en-US",
"nsfw_allowed": true,
"mfa_enabled": true,
"premium_type": 2,
"avatar_decoration_data": {
"sku_id": "1144058844004233369",
"asset": "a_fed43ab12698df65902ba06727e20c0e",
"expires_at": null
},
"email": "nelly@discord.com",
"verified": true,
"phone": "+18885940085",
"authenticator_types": [1, 2, 3],
"primary_guild": {
"identity_guild_id": "80351110224678913",
"identity_enabled": true,
"tag": "MEOW",
"badge": "7d1734ae5a615e82bc7a4033b98fade8"
}
}
Example Partial User
{
"id": "80351110224678912",
"username": "nelly",
"avatar": "8342729096ea3675442027381ff50dfe",
"discriminator": "0",
"public_flags": 64,
"banner": "06c16474723fe537c283b8efa61a30c8",
"accent_color": 16711680,
"global_name": "Nelly",
"avatar_decoration_data": {
"sku_id": "1144058844004233369",
"asset": "a_fed43ab12698df65902ba06727e20c0e",
"expires_at": null
},
"primary_guild": {
"identity_guild_id": "80351110224678913",
"identity_enabled": true,
"tag": "MEOW",
"badge": "7d1734ae5a615e82bc7a4033b98fade8"
}
}
User Flags
ValueNameDescriptionPublic
1 << 0STAFFDiscord StaffYes
1 << 1PARTNERPartnered Server OwnerYes
1 << 2HYPESQUADHypeSquad EventsYes
1 << 3BUG_HUNTER_LEVEL_1Level 1 Discord Bug HunterYes
1 << 4MFA_SMSSMS enabled as a multi-factor authentication backupNo
1 << 5PREMIUM_PROMO_DISMISSEDUser has dismissed the current premium (Nitro) promotionNo
1 << 6HYPESQUAD_ONLINE_HOUSE_1HypeSquad BraveryYes
1 << 7HYPESQUAD_ONLINE_HOUSE_2HypeSquad BrillianceYes
1 << 8HYPESQUAD_ONLINE_HOUSE_3HypeSquad BalanceYes
1 << 9PREMIUM_EARLY_SUPPORTEREarly Premium (Nitro) SupporterYes
1 << 10TEAM_PSEUDO_USERUser is a TeamYes
1 << 11INTERNAL_APPLICATIONUser has a pending partner or verification applicationNo 1
1 << 12SYSTEMUser is a system user (i.e. official Discord account)Yes
1 << 13HAS_UNREAD_URGENT_MESSAGESUser has unread urgent system messages; an urgent message is one sent from Trust and SafetyNo
1 << 14BUG_HUNTER_LEVEL_2Level 2 Discord Bug HunterYes
1 << 15UNDERAGE_DELETEDUser is scheduled for deletion for being under the minimum required ageNo 1
1 << 16VERIFIED_BOTVerified BotYes
1 << 17VERIFIED_DEVELOPEREarly Verified Bot DeveloperYes
1 << 18CERTIFIED_MODERATORModerator Programs AlumniYes
1 << 19BOT_HTTP_INTERACTIONSBot uses only HTTP interactions and is shown in the online member listYes
1 << 20SPAMMERUser is marked as a spammer and has their messages collapsed in the UIYes
1 << 21DISABLE_PREMIUMUser has manually disabled premium (Nitro) featuresNo
1 << 22ACTIVE_DEVELOPERActive DeveloperYes
1 << 23PROVISIONAL_ACCOUNTUser is a provisional account used with the social layer integrationYes
1 << 33HIGH_GLOBAL_RATE_LIMITUser has a raised global ratelimitNo 1
1 << 34DELETEDUser's account is deletedNo 1
1 << 35DISABLED_SUSPICIOUS_ACTIVITYUser's account is disabled for suspicious activityNo 1
1 << 36SELF_DELETEDUser deleted their own accountNo 1
1 << 37PREMIUM_DISCRIMINATORUser has a premium (Nitro) custom discriminatorNo 1
1 << 38USED_DESKTOP_CLIENTUser has used the desktop clientNo 1
1 << 39USED_WEB_CLIENTUser has used the web clientNo 1
1 << 40USED_MOBILE_CLIENTUser has used the mobile clientNo 1
1 << 41DISABLEDUser's account is disabledNo 1
1 << 44QUARANTINEDUser is quarantined and cannot create DMs or accept invitesNo
1 << 50COLLABORATORUser is a collaborator and is considered staffNo
1 << 51RESTRICTED_COLLABORATORUser is a restricted collaborator and is considered staffNo

1 Not exposed to the API, can only be found in user data harvests.

Purchased Flags

Purchased flags denote what premium items a user has ever purchased. Visit the Nitro page to learn more about the premium plans currently offered.

ValueNameDescription
1 << 0NITRO_CLASSICThe user has purchased Nitro classic
1 << 1NITROThe user has purchased regular Nitro
1 << 2GUILD_BOOSTThe user has purchased a guild boost
1 << 3NITRO_BASICThe user has purchased Nitro basic
Premium Usage Flags

Premium usage flags denote what premium (Nitro) features a user has utilized.

ValueNameDescription
1 << 0PREMIUM_DISCRIMINATORThe user has utilized premium discriminators
1 << 1ANIMATED_AVATARThe user has utilized animated avatars
1 << 2PROFILE_BANNERThe user has utilized profile banners
Premium Type

Premium types denote the level of premium a user has. Visit the Nitro page to learn more about the premium plans currently offered.

ValueNameDescription
0NONE (deprecated)No Nitro
1TIER_1Nitro Classic
2TIER_2Nitro
3TIER_3Nitro Basic
Required Action Type

Required action types denote an action Discord requires the user to take before they can continue using the platform.

ValueDescription
UPDATE_AGREEMENTSThe user must re-indicate their agreement of Discord's terms of service and privacy policy; this does not limit the user from using Discord
COMPLETE_CAPTCHAThe user must complete a reCAPTCHA challenge
VERIFY_EMAILThe user must add and verify an email address to their account
REVERIFY_EMAILThe user must reverify their existing email address
VERIFY_PHONEThe user must add a phone number to their account
REVERIFY_PHONEThe user must reverify their existing phone number
VERIFY_PHONE_THEN_EMAIL 1The user must add a phone number to their account and then add and verify an email address to their account
VERIFY_EMAIL_OR_VERIFY_PHONEThe user must add and verify an email address to their account or add a phone number to their account
REVERIFY_EMAIL_OR_VERIFY_PHONEThe user must reverify their existing email address or add a phone number to their account
VERIFY_EMAIL_OR_REVERIFY_PHONEThe user must add and verify an email address to their account or reverify their existing phone number
REVERIFY_EMAIL_OR_REVERIFY_PHONEThe user must reverify their existing email address or reverify their existing phone number

1 This is now represented by first receiving a VERIFY_PHONE action, and then receiving a VERIFY_EMAIL action after the phone number has been verified.

Avatar Decoration Data Object

A user's active avatar decoration.

Avatar Decoration Data Structure
FieldTypeDescription
assetstringThe avatar decoration hash
sku_id?stringThe ID of the avatar decoration's SKU
expires_at??integerUnix timestamp (in milliseconds) of when the current avatar decoration expires
Example Avatar Decoration Data
{
"sku_id": "1144058844004233369",
"asset": "a_fed43ab12698df65902ba06727e20c0e",
"expires_at": null
}

Profile Metadata Object

A user's profile metadata.

Profile Metadata Structure
FieldTypeDescription
guild_id?snowflakeThe guild ID this profile applies to, if it is a guild profile
pronounsstringThe user's pronouns (max 40 characters)
bio?stringThe user's bio (max 190 characters)
banner??stringThe user's banner hash
accent_color? 1?integerThe user's banner color encoded as an integer representation of hexadecimal color code
theme_colors??array[integer, integer]The user's two theme colors encoded as an array of integers representing hexadecimal color codes
popout_animation_particle_type??snowflakeThe user's profile popout animation particle type
emoji??emoji objectThe user's profile emoji
profile_effect??profile effect objectThe user's profile effect

1 Not respected on guild profiles.

Profile Effect Structure
FieldTypeDescription
idsnowflakeThe ID of the profile effect
expires_at?integerUnix timestamp (in milliseconds) of when the current profile effect expires
Example Profile Metadata
{
"guild_id": "80351110224678913",
"pronouns": "gnarp/gnap",
"bio": "👽 Professional alien",
"banner": null,
"accent_color": null,
"theme_colors": [1, 1],
"popout_animation_particle_type": null,
"emoji": {
"name": "meowlien",
"roles": [],
"id": "1090395834966880336",
"require_colons": true,
"managed": false,
"animated": false,
"available": true
},
"profile_effect": {
"id": "1139323097930027068",
"expires_at": null
}
}

Authenticator Object

Authenticator Structure
FieldTypeDescription
idstringThe ID of the authenticator
typestringThe type of authenticator
namestringThe name of the authenticator
Authenticator Type

Authenticator types represent enabled multi-factor authentication methods. See the MFA verification documentation for more information.

ValueNameDescription
1WEBAUTHNWebAuthn credentials
2TOTPTime-based One-Time Password code
3SMSSMS code
Example Authenticator
{
"id": "1219430671865610261",
"type": 1,
"name": "AlienKey"
}

Backup Code Object

A multi-factor authentication backup code.

Backup Code Structure
FieldTypeDescription
user_idsnowflakeThe ID of the user
codestringThe backup code
consumedbooleanWhether the backup code has been used
Example Backup Code
{
"user_id": "852892297661906993",
"code": "zqs8oqxk",
"consumed": false
}

Harvest Object

A user's data harvest.

Harvest Structure
FieldTypeDescription
harvest_idsnowflakeThe ID of the harvest
user_idsnowflakeThe ID of the user being harvested
statusintegerThe status of the harvest
created_atISO8601 timestampThe time the harvest was created
polled_at?ISO8601 timestampThe time the harvest was last polled
completed_at??ISO8601 timestampThe time the harvest was completed
Example Harvest
{
"harvest_id": "1069316408502124624",
"user_id": "852892297661906993",
"status": 3,
"created_at": "2023-01-29T18:01:38.730771+00:00",
"completed_at": "2023-02-01T08:29:03.680228+00:00",
"polled_at": "2023-02-01T08:29:03.680228+00:00"
}
Harvest Status
ValueNameDescription
0QUEUEDThe harvest is queued and has not been started
1RUNNINGThe harvest is currently running
2FAILEDThe harvest has failed
3COMPLETEDThe harvest has completed successfully
4UNKNOWNThis enum value is not known

Connection Object

The connection object that the user has attached.

Connection Structure
FieldTypeDescription
idstringID of the connection account
typestringThe type of the connection
namestringThe username of the connection account
verifiedbooleanWhether the connection is verified
metadata?objectService-specific metadata about the connection
metadata_visibilityintegerVisibility of the connection's metadata
revokedbooleanwhether the connection is revoked
integrations 1 2array[connection integration object]The guild integrations attached to the connection
friend_syncbooleanWhether friend sync is enabled for this connection
show_activitybooleanWhether activities related to this connection will be shown in presence
two_way_linkbooleanWhether this connection has a corresponding third party OAuth2 token
visibilityintegerVisibility of the connection
access_token? 1stringThe access token for the connection account

1 Not included when fetching a user's connections via OAuth2.

2 These integrations can be used to join your own sub-enabled guild or the guild of a creator you are supporting.

Partial Connection Structure
FieldTypeDescription
idstringID of the connection account
typestringThe type of the connection
namestringThe username of the connection account
verifiedbooleanWhether the connection is verified
metadata?objectService-specific metadata about the connection
Example Connection
{
"type": "reddit",
"id": "run&hide",
"name": "alien",
"visibility": 1,
"friend_sync": false,
"show_activity": true,
"verified": true,
"two_way_link": false,
"metadata_visibility": 1,
"metadata": {
"gold": "0",
"mod": "1",
"total_karma": "20223",
"created_at": "2019-05-02T20:28:37"
},
"revoked": false,
"integrations": []
}
Example Partial Connection
{
"type": "reddit",
"id": "run&hide",
"name": "alien",
"verified": true,
"metadata": {
"gold": "0",
"mod": "1",
"total_karma": "20223",
"created_at": "2019-05-02T20:28:37"
}
}
Connection Integration Structure
FieldTypeDescription
id 1snowflakeThe ID of the integration
typestringThe type of integration
accountaccount objectThe integration's account information
guildintegration guild objectThe guild that the integration is attached to

1 This field may also be the literal string "twitch-partners" to represent the Twitch Partners integration.

Example Connection Integration
{
"id": "twitch-partners",
"type": "twitch",
"account": {
"id": "92473777",
"name": "discordapp"
},
"guild": {
"id": "107939014299901952",
"name": "Twitch Partners",
"icon": "62450d21b75478191962d9c4b81831ae"
}
}
Connection Type
ValueName
amazon-musicAmazon Music
battlenetBattle.net
blueskyBluesky
bungieBungie.net
contacts 2Contact Sync
crunchyrollCrunchyroll
domainDomain
ebayeBay
epicgamesEpic Games
facebookFacebook
githubGitHub
instagram 1Instagram
leagueoflegendsLeague of Legends
mastodonMastodon
paypalPayPal
playstationPlayStation Network
playstation-stgPlayStation Network (Staging)
redditReddit
robloxRoblox
riotgamesRiot Games
samsung 1Samsung Galaxy
soundcloudSoundCloud
spotifySpotify
skype 1Skype
steamSteam
tiktokTikTok
twitchTwitch
twitterTwitter
xboxXbox
youtubeYouTube

1 Service can no longer be added by users.

2 Service is not returned in Get User Profile or when fetching a user's connections via OAuth2.

Visibility Type
ValueNameDescription
0NONEInvisible to everyone except the user themselves
1EVERYONEVisible to everyone

Partial connections always have a visibility of 1.

Relationship Object

A relationship between the current user and another user.

Relationship Structure
FieldTypeDescription
idstringThe ID of the target user
typeintegerThe type of relationship
userpartial userThe target user
nickname?stringThe nickname of the user in this relationship (1-32 characters)
is_spam_request? 1booleanWhether the relationship was flagged as spam (default false)
since?ISO8601 timestampWhen the user requested a relationship

1 Only applicable to relationships of type INCOMING_REQUEST.

Relationship Type
ValueNameDescription
0NONENo relationship exists
1FRIENDThe user is a friend
2BLOCKEDThe user is blocked
3INCOMING_REQUESTThe user has sent a friend request to the current user
4OUTGOING_REQUESTThe current user has sent a friend request to the user
5IMPLICITThe user is an affinity of the current user
6SUGGESTIONThe user is a friend suggestion for the current user
Example Relationship
{
"id": "852892297661906993",
"type": 3,
"nickname": null,
"is_spam_request": false,
"user": {
"id": "852892297661906993",
"username": "alien",
"global_name": "Alien",
"avatar": "14733482e560d9267c0a414b21b2fb8d",
"discriminator": "0",
"public_flags": 64,
"avatar_decoration_data": null,
"primary_guild": null
},
"since": "2023-02-10T01:58:05.348000+00:00"
}

Friend Suggestion Object

A friend suggestion for the current user.

Friend Suggestion Structure
FieldTypeDescription
suggested_userpartial user objectThe suggested user
reasonsarray[friend suggestion reason object]The sources of the suggestion
from_suggested_user_contacts?booleanWhether the suggested user has the current user in their contacts
Friend Suggestion Reason Structure
FieldTypeDescription
typeintegerThe type of reason
platformstringThe platform that the suggestion originated from
namestringThe user's name on the platform
Friend Suggestion Reason Type
ValueNameDescription
1EXTERNAL_FRIENDThe user is a friend on another platform
Example Friend Suggestion
{
"suggested_user": {
"id": "852892297661906993",
"username": "alien",
"global_name": "Alien",
"avatar": "14733482e560d9267c0a414b21b2fb8d",
"discriminator": "0",
"public_flags": 64,
"avatar_decoration_data": null,
"primary_guild": null
},
"reasons": [
{
"type": 1,
"platform_type": "contacts",
"name": "Gnarpy"
}
]
}

Endpoints

Get Current User

GET/users/@me

Returns the user object of the requester's account.

Modify Current User

PATCH/users/@me

Modifies the requester's user account settings. Returns a user object with an extra token key representing the user's new authorization token on success. Fires a User Update Gateway event.

JSON Params
FieldTypeDescription
username? 5stringThe user's username (2-32 characters)
discriminator? 5stringThe user's stringified 4-digit Discord tag; can only be changed for users with an applicable premium (Nitro) plan, which triggers a reroll after the subscription expires
global_name? 5?stringThe user's display name (1-32 characters)
avatar??image dataThe user's avatar; can be animated when the user has an applicable premium (Nitro) plan
avatar_decoration_id??snowflakeThe ID of the user's avatar decoration
avatar_decoration_sku_id??snowflakeThe SKU ID of the user's avatar decoration
email?stringThe user's email address; if changing from a verified email, email_token must be provided
email_token? 4stringThe user's email token from their previous email
pronouns??stringThe user's pronouns (max 40 characters)
bio??stringThe user's bio (max 190 characters)
banner??image dataThe user's banner; can only be changed for premium (Nitro) users
accent_color??integerThe user's accent color as a hex integer
flags?integerThe user's flags (only PREMIUM_PROMO_DISMISSED and HAS_UNREAD_URGENT_MESSAGES can be set)
date_of_birth? 2ISO8601 timestampThe user's date of birth; can only be set once
password? 1stringThe user's current password; if the account does not have a password, this sets it
new_password? 3stringThe user's new password (8-72 characters)

1 Required for changing username, discriminator, email, date_of_birth, or new_password.

2 Setting this defines the nsfw_allowed field of the user based on whether they are over 18.

3 Changing the account password invalidates all active tokens. Don't fret though, as the token key in the response will be valid.

4 This value can be obtained by requesting a verification code with the Modify User Email endpoint, and then using the Verify User Email Change endpoint.

5 If using pomelo, the username field must be unique across Discord, and discriminator cannot be changed. Else, the username and discriminator fields must be unique across Discord, and changing the username changed may cause the discriminator to be randomized. See the section on Discord's new username system for more information. See the Usernames and Nicknames section for more information on username restrictions.

Modify Current User Account

PATCH/users/@me/account

Modifies the requester's user account settings. Returns a user object (does not respect the email scope). Fires a User Update Gateway event.

JSON Params
FieldTypeDescription
global_name??stringThe user's display name (1-32 characters)

Get User

GET/users/{user.id}

Returns a partial user object for a given user ID.

Get User Profile

GET/users/{user.id}/profile

Returns a user profile object for a given user ID.

Query String Params
FieldTypeDescription
with_mutual_guilds?booleanWhether to include the mutual guilds of the user with the current user (default true)
with_mutual_friends?booleanWhether to include mutual friends the user has with the current user (default false)
with_mutual_friends_count?booleanWhether to include the number of mutual friends the user has with the current user (default false)
guild_id?snowflakeThe guild ID to get the user's member profile in
connections_role_id?snowflakeThe role ID to get the user's application role connection metadata in
Response Body
FieldTypeDescription
application?profile application objectThe bot's application profile
userpartial user objectThe user object, with an extra bio key denoting the user's bio
user_profile 1profile metadata objectThe user's profile metadata
badges 1array[profile badge object]The user's profile badges
guild_member? 1guild member objectThe guild member in the guild specified, with an extra bio denoting the guild member's bio
guild_member_profile? 1profile metadata objectThe guild member's profile in the guild specified
guild_badges 1array[profile badge objcet]The guild member's guild-specific profile badges
legacy_username? 1 2?stringThe user's pre-migration username#discriminator, if applicable and shown
mutual_guilds?array[mutual guild object]The mutual guilds of the user with the current user
mutual_friends?array[partial user object]The mutual friends the user has with the current user
mutual_friends_count?integerThe number of mutual friends the user has with the current user
connected_accountsarray[partial connection object]The user's public connected accounts
application_role_connections?array[application role connection object]The user's application role connections for the role specified
premium_type 1?integerThe type of premium (Nitro) subscription on a user's account
premium_since 1?ISO8601 timestampThe date the user's premium (Nitro) subscription started
premium_guild_since 1?ISO8601 timestampThe date the user's premium guild (boosting) subscription started

1 These fields are unexpectedly missing or null if the user has blocked the current user.

2 See the section on Discord's new username system for more information.

Profile Application Structure
FieldTypeDescription
idsnowflakeThe ID of the application
flagsintegerThe application's flags
verifiedbooleanWhether the application is verified
storefront_availablebooleanWhether the application has monetization enabled (i.e. subscriptions or products available for purchase)
primary_sku_id?snowflakeThe ID of the application's primary SKU (game, application subscription, etc.)
install_params?application install params objectThe default in-app authorization link for the integration
integration_types_config?map[int, ?application integration type configuration object]The configuration for each integration type supported by the application
popular_application_command_ids?array[snowflake]The IDs of the application's most popular application commands (max 5)
custom_install_url?stringThe default custom authorization link for the integration
Profile Badge Structure

For a list of known profile badges, refer to this Gist.

FieldTypeDescription
idstringThe reference ID of the badge
descriptionstringA description of the badge
iconstringThe badge's icon hash
link?stringA link representing the badge
Mutual Guild Structure
FieldTypeDescription
idsnowflakeThe guild ID
nick?stringThe user's nickname in the guild
Example Response
{
"user": {
"id": "852892297661906993",
"username": "alien",
"global_name": "Alien",
"avatar": "9d52298a3ad006da31ac66a86230d9f2",
"avatar_decoration_data": null,
"discriminator": "0",
"public_flags": 64,
"flags": 64,
"banner": "a_17a0757cf6121ccc07546de9bff3edb2",
"accent_color": null,
"bio": "👽 Professional smoothbrain",
"avatar_decoration_data": null,
"primary_guild": null
},
"connected_accounts": [
{
"type": "twitter",
"id": "123456",
"name": "discord",
"verified": true,
"metadata": {
"verified": "1",
"followers_count": "100000",
"statuses_count": "100000",
"created_at": "2016-01-01T00:00:00"
}
}
],
"premium_since": "2016-01-01T00:00:00.00+00:00",
"premium_type": 2,
"premium_guild_since": "2016-01-01T00:00:00.00+00:00",
"mutual_friends_count": 100,
"mutual_guilds": [
{
"id": "80351110224678913",
"nick": "Liena"
}
],
"guild_member": {
"avatar": null,
"communication_disabled_until": null,
"unusual_dm_activity_until": null,
"flags": 0,
"joined_at": "2016-01-01T00:00:00.00+00:00",
"nick": null,
"pending": false,
"premium_since": "2016-01-01T00:00:00.00+00:00",
"roles": [],
"user": {
"id": "852892297661906993",
"username": "alien",
"global_name": "Alien",
"avatar": "9d52298a3ad006da31ac66a86230d9f2",
"discriminator": "0",
"public_flags": 4194368,
"avatar_decoration_data": null,
"primary_guild": null
},
"bio": "👽 Professional alien",
"banner": null,
"mute": false,
"deaf": false
},
"application_role_connections": [
{
"platform_name": "Aliens United",
"platform_username": "Alien",
"metadata": {
"real": "1",
"certified": "1"
},
"application": {
"id": "891436233903964161",
"name": "Lightbulb",
"icon": "4d47160ec8c45f22e2bdbe75ac3e1bbd",
"description": "<:support_icon:853084466016288828> Imagine a bot.",
"summary": "",
"type": null,
"bot": {
"id": "891436233903964161",
"username": "lightbulb",
"global_name": "Lightbulb",
"avatar": "59fb354bf144ed784aa8bdef88d135bb",
"avatar_decoration_data": null,
"discriminator": "0",
"public_flags": 0,
"bot": true
}
},
"application_metadata": {
"real": {
"type": 7,
"key": "real",
"name": "Real",
"description": "Are you real alier?"
},
"certified": {
"type": 7,
"key": "certified",
"name": "Certified",
"description": "Are you certified alier?"
}
}
}
],
"user_profile": {
"bio": "👽 Professional smoothbrain",
"accent_color": null,
"pronouns": "gnarp/gnap",
"banner": "a_17a0757cf6121ccc07546de9bff3edb2",
"theme_colors": [1, 1],
"popout_animation_particle_type": 100000,
"emoji": null,
"profile_effect": {
"id": "1139323097930027068",
"expires_at": null
}
},
"guild_member_profile": {
"guild_id": "80351110224678913",
"pronouns": "",
"bio": "👽 Professional alien",
"banner": null,
"accent_color": null,
"theme_colors": [1, 1],
"popout_animation_particle_type": null,
"emoji": null,
"profile_effect": {
"id": "1139323097930027068",
"expires_at": null
}
}
}

Modify User Profile

PATCH/users/@me/profile

Modifies the current user's profile. Returns the updated profile metadata object on success. Fires a User Update Gateway event.

JSON Params
FieldTypeDescription
pronouns??stringThe user's pronouns (max 40 characters)
bio??stringThe user's bio (max 190 characters)
banner??image dataThe user's banner; can only be changed for premium (Nitro) users
accent_color??integerThe user's accent color as a hex integer
theme_colors??array[integer, integer]The user's two theme colors encoded as an array of integers representing hexadecimal color codes
popout_animation_particle_type??snowflakeThe user's profile popout animation particle type
emoji_id??snowflakeThe user's profile emoji ID
profile_effect_id??snowflakeThe user's profile effect ID

Get Mutual Relationships

GET/users/{user.id}/relationships

Returns a list of partial user objects that are friends with the user and current user.

Enable TOTP MFA

POST/users/@me/mfa/totp/enable

Enables TOTP multi-factor authentication for the current user. Fires a User Update Gateway event.

JSON Params
FieldTypeDescription
passwordstringThe user's password
secret?stringThe generated TOTP secret (32 characters)
code?stringThe TOTP code to verify the secret (6 characters)
Response Body
FieldTypeDescription
tokenstringThe new authorization token for the session
backup_codesarray[backup code object]MFA backup codes

Disable TOTP MFA

POST/users/@me/mfa/totp/disable

Disables TOTP multi-factor authentication for the current user. Fires a User Update Gateway event.

Response Body
FieldTypeDescription
tokenstringThe new authorization token for the session

Enable SMS MFA

POST/users/@me/mfa/sms/enable

Enables SMS multi-factor authentication for the current user. Requires that TOTP-based MFA is already enabled and the user has a verified phone number. Returns a 204 empty response on success. Fires a User Update Gateway event.

JSON Params
FieldTypeDescription
passwordstringThe user's password

Disable SMS MFA

POST/users/@me/mfa/sms/disable

Disables SMS multi-factor authentication for the current user. Returns a 204 empty response on success. Fires a User Update Gateway event.

JSON Params
FieldTypeDescription
passwordstringThe user's password

Get WebAuthn Authenticators

GET/users/@me/mfa/webauthn/credentials

Returns a list of WebAuthn authenticator objects for the current user.

Create WebAuthn Authenticator

POST/users/@me/mfa/webauthn/credentials

Creates a WebAuthn authenticator for the current user. Fires User Update and Authenticator Create Gateway events once the authenticator is created.

JSON Params
FieldTypeDescription
name?stringThe name of the authenticator (1-32 characters)
ticket?stringThe MFA ticket returned from the same endpoint
credential?stringA stringified JSON object of the public key credential response
Response Body
FieldTypeDescription
ticket 1stringThe MFA ticket
challenge 1stringThe stringified JSON public key credential request options challenge
id 2stringThe ID of the authenticator
type 2stringThe type of authenticator (always WEBAUTHN)
name 2stringThe name of the authenticator
backup_codes 2array[backup code object]MFA backup codes

1 Only returned when no parameters are provided.

2 Only returned when parameters are provided.

Example Response (Ticket)
{
"ticket": "ODUyODkyMjk3NjYxOTA2OTkz.H2Rpq0.WrhGhYEhM3lHUPN61xF6JcQKwVutk8fBvcoHjo",
"challenge": "{\"publicKey\":{\"challenge\":\"a8a1cHP7_zYheggFG68zKUkl8DwnEqfKvPE-GOMvhss\",\"timeout\":60000,\"rpId\":\"discord.com\",\"allowCredentials\":[{\"type\":\"public-key\",\"id\":\"izrvF80ogrfg9dC3RmWWwW1VxBVBG0TzJVXKOJl__6FvMa555dH4Trt2Ub8AdHxNLkQsc0unAGcn4-hrJHDKSO\"}],\"userVerification\":\"preferred\"}}"
}
Example Response (Authenticator)
{
"id": "1219430671865610261",
"type": 1,
"name": "AlienKey",
"backup_codes": [
{
"user_id": "852892297661906993",
"code": "zqs8oqxk",
"consumed": false
}
]
}

Modify WebAuthn Authenticator

PATCH/users/@me/mfa/webauthn/credentials/{authenticator.id}

Modifies the given WebAuthn authenticator. Returns the updated authenticator object on success. Fires an Authenticator Update Gateway event.

JSON Params
FieldTypeDescription
name?stringThe name of the authenticator (1-32 characters)

Delete WebAuthn Authenticator

DELETE/users/@me/mfa/webauthn/credentials/{authenticator.id}

Deletes the given WebAuthn authenticator. Returns a 204 empty response on success. Fires User Update and Authenticator Delete Gateway events.

Send Backup Codes Challenge

POST/auth/verify/view-backup-codes-challenge

Sends an email to the current user with a verification code that allows them to view their backup codes. Returns a 204 empty response on success.

JSON Params
FieldTypeDescription
passwordstringThe user's password
Response Body
FieldTypeDescription
noncestringThe one-time verification nonce used to view the backup codes
regenerate_noncestringThe one-time verification nonce used to regenerate the backup codes

Get Backup Codes

POST/users/@me/mfa/codes-verification

Returns the user's MFA backup codes.

JSON Params
FieldTypeDescription
key 1stringThe backup code verification key received in the email
nonce 1 2stringThe one-time verification nonce used to view/regenerate the backup codes
regenerate 2booleanWhether to regenerate the backup codes

1 This value can be obtained by requesting a verification code with the Send Backup Codes Challenge endpoint.

2 The nonce used must correspond to the action being performed. Each action can only be performed once.

Response Body
FieldTypeDescription
backup_codesarray[backup code object]MFA backup codes
Example Response
{
"backup_codes": [
{
"user_id": "852892297661906993",
"code": "zqs8oqxk",
"consumed": false
}
]
}

Disable User

POST/users/@me/disable

Disables the current user's account. Invalidates all active tokens. Returns a 204 empty response on success.

JSON Params
FieldTypeDescription
passwordstringThe user's password

Delete User

POST/users/@me/delete

Marks the current user's account for deletion. Invalidates all active tokens. Returns a 204 empty response on success.

JSON Params
FieldTypeDescription
password?stringThe user's password, if any

Verify User Captcha

POST/users/@me/captcha/verify

Verifies a reCAPTCHA solution when required for verification. Returns a 204 empty response on success. Fires a User Required Action Update Gateway event.

reCAPTCHA Site Key
6Lef5iQTAAAAAKeIvIY-DeexoO3gj7ryl9rLMEnn
JSON Params
FieldTypeDescription
captcha_keystringThe reCAPTCHA solution

Modify User Email

PUT/users/@me/email

Sends a verification email to the current user's email address to initiate the email change process. Returns a 204 empty response on success.

Verify User Email Change

POST/users/@me/email/verify-code

Verifies a verification code sent to the current user's email address to initiate an email change.

JSON Params
FieldTypeDescription
codestringThe verification code
Response Body
FieldTypeDescription
tokenstringThe email token; can be used with Modify Current User to change the user's email

Get Pomelo Suggestions

GET/users/@me/pomelo-suggestions

Returns a suggested unique username string based on the current user's username.

Response Body
FieldTypeDescription
usernamestringThe suggested username
Example Response
{ "username": "gnarp.gnap" }

Get Pomelo Eligibility

POST/users/@me/pomelo-attempt

Checks whether a unique username is available for the user to claim.

JSON Params
FieldTypeDescription
usernamestringThe username to check
Response Body
FieldTypeDescription
takenbooleanWhether the username is taken
Example Response
{ "taken": true }

Create Pomelo Migration

POST/users/@me/pomelo

Claims a unique username for the user. Returns the updated user object on success. Fires a User Update Gateway event.

JSON Params
FieldTypeDescription
usernamestringThe username to claim

Get Recent Mentions

GET/users/@me/mentions

Returns a list of message objects that the current user has been mentioned in during the past 7 days.

Query String Params
FieldTypeDescription
before?snowflakeGet messages before this message ID
limit?integerMax number of messages to return (1-100, default 25)
guild_id?snowflakeThe guild to limit returned messages by
roles?booleanWhether to include role mentions (default true)
everyone?booleanWhether to include @everyone and @here mentions (default true)

Delete Recent Mention

DELETE/users/@me/mentions/{message.id}

Acknowledges a message the current user has been mentioned in. Returns a 204 empty response on success. Fires a Recent Mention Delete Gateway event.

Get User Harvest

GET/users/@me/harvest

If it exists, returns a harvest object representing the current user's most recent personal data harvest request. Otherwise, returns a 204 empty response.

Create User Harvest

POST/users/@me/harvest

Creates a personal data harvest request for the current user. Returns a harvest object on success.

JSON Params
FieldTypeDescription
backends??array[string]The types of user data being requested 1

1 Invalid options are ignored. If the array is empty after this, it requests all data types.

Harvest Backend Type

See the official support page for more information.

ValueDescription
AccountsAll account information
AnalyticsActions the user has taken in Discord
ActivitiesFirst-party embedded activity information
MessagesAll user messages
ProgramsOfficial Discord programs
ServersAll guilds the user is currently a member of

Get User Notes

GET/users/@me/notes

Returns a mapping of user IDs to notes for the current user.

Example Response
{
"852892297661906993": "This is a note",
"787017887877169173": "This is another note"
}

Get User Note

GET/users/@me/notes/{user.id}

Returns the note for the given user.

Response Body
FieldTypeDescription
notestringThe note (max 256 characters)
note_user_idsnowflakeThe ID of the user the note is on
user_idsnowflakeThe ID of the user who created the note (always the current user)
Example Response
{
"note": "This is a note",
"note_user_id": "787017887877169173",
"user_id": "852892297661906993"
}

Modify User Note

PUT/users/@me/notes/{user.id}

Sets the note for the given user. Returns a 204 empty response on success. Fires a User Note Update Gateway event.

JSON Params
FieldTypeDescription
note?stringThe note (max 256 characters)

Authorize User Connection

GET/connections/{connection.type}/authorize

Returns an authorization link that can be used for authorizing a new connection.

Query String Params
FieldTypeDescription
two_way_link_type??stringThe type of two-way link to create
two_way_user_code??stringThe device code to use for the two-way link
continuation?booleanWhether this is a continuation of a previous authorization
ValueDescription
webThe connection is linked via web
mobileThe connection is linked via mobile
desktopThe connection is linked via desktop
Response Body
FieldTypeDescription
urlstringThe authorization link for the user

Create User Connection Callback

POST/connections/{connection.type}/callback

Creates a new connection for the current user. Returns a connection object on success. Fires a User Connections Update Gateway event.

JSON Params
FieldTypeDescription
codestringThe authorization code for the connection
statestringThe state used to authorize the connection
two_way_link_code?stringThe code to use for two-way linking
insecure?booleanWhether the connection is insecure
friend_sync?booleanWhether to sync friends over the connection
openid_params?objectAdditional parameters for OpenID Connect

Create Contact Sync Connection

PUT/users/@me/connections/contacts/{connection.id}

Creates a new contact sync connection for the current user. Returns a connection object on success. Fires a User Connections Update Gateway event.

JSON Params
FieldTypeDescription
namestringThe username of the connection account
friend_sync?booleanWhether to sync friends over the connection

Create Domain Connection

POST/users/@me/connections/domain/{connection.id}

Creates a new domain connection for the current user. Returns a connection object on success. Fires a User Connections Update Gateway event.

Get User Connections

GET/users/@me/connections

Returns a list of connection objects.

Get User Connection Access Token

GET/users/@me/connections/{connection.type}/{connection.id}/access-token

Returns a new access token for the given connection. Only available for Twitch, YouTube, and Spotify connections. Fires a User Connections Update Gateway event.

Response Body
FieldTypeDescription
access_tokenstringThe connection's access token

Get User Connection Subreddits

GET/users/@me/connections/reddit/{connection.id}/subreddits

Returns a list of subreddits the connected account moderates. Only available for Reddit connections.

Subreddit Structure
FieldTypeDescription
idstringThe subreddit's ID
subscribersintegerThe number of joined Reddit users
urlstringThe subreddit's relative URL
Example Response
[
{
"id": "t5_388p4",
"subscribers": 1044184,
"url": "/r/discordapp/"
}
]

Refresh User Connection

POST/users/@me/connections/{connection.type}/{connection.id}/refresh

Refreshes a connection. Returns a 204 empty response on success. Fires a User Connections Update Gateway event.

Modify User Connection

PATCH/users/@me/connections/{connection.type}/{connection.id}

Modifies a connection. Returns a connection object on success. Fires a User Connections Update Gateway event.

Not all connection types support all parameters.

JSON Params
FieldTypeDescription
namestringThe connection's username
show_activitybooleanWhether activities related to this connection will be shown in presence
friend_syncbooleanWhether friend sync is enabled for this connection
metadata_visibilityintegerVisibility of the connection's metadata
visibilityintegerVisibility of the connection

Delete User Connection

DELETE/users/@me/connections/{connection.type}/{connection.id}

Deletes a connection. Returns a 204 empty response on success. Fires a User Connections Update and may fire a Guild Delete Gateway event.

Get User Relationships

GET/users/@me/relationships

Returns a list of relationship objects for the current user.

Query String Params
FieldTypeDescription
with_implicit? 1booleanWhether to include implicit relationships (default false)

1 Only usable with OAuth2 requests. On non-OAuth2 requests, only user-created relationships will be returned.

Send Friend Request

POST/users/@me/relationships

Sends a friend request to another user, which can be accepted by creating a new relationship of type FRIEND. Returns a 204 empty response on success. Fires a Relationship Add Gateway event.

JSON Params
FieldTypeDescription
usernamestringThe username of the user to send a friend request to
discriminator 1?stringThe discriminator of the user to send a friend request to, if not migrated

1 null for migrated users. See the section on Discord's new username system for more information.

Create User Relationship

PUT/users/@me/relationships/{user.id}

Creates a relationship with another user. Returns a 204 empty response on success. Fires a Relationship Add Gateway event.

JSON Params
FieldTypeDescription
type?integerThe relationship type to create (defaults to -1, which accepts an existing or creates a new friend request)
from_friend_suggestion?booleanWhether the relationship was created from a friend suggestion (default false)
friend_token?stringThe friend token of the user to add a direct friend relationship to

Modify User Relationship

PATCH/users/@me/relationships/{user.id}

Modifies a relationship to another user. Returns a 204 empty response on success. Fires a Relationship Update Gateway event.

JSON Params
FieldTypeDescription
nickname? 1stringThe nickname of the user in this relationship (1-32 characters)

1 Only applicable to relationships of type FRIEND.

Remove User Relationship

DELETE/users/@me/relationships/{user.id}

Removes a relationship with another user. Returns a 204 empty response on success. Fires a Relationship Remove Gateway event.

Bulk Remove Relationships

DELETE/users/@me/relationships

Removes multiple relationships. Returns a 204 empty response on success. May fire multiple Relationship Remove Gateway events.

Query Params
FieldTypeDescription
relationship_type?integerRemove relationships with this relationship type (default INCOMING_REQUEST, only INCOMING_REQUEST is allowed)
only_spam?booleanWhether to remove relationships that were flagged as spam (default false)

Get Friend Suggestions

GET/friend-suggestions

Returns a list of friend suggestion objects for the current user.

Remove Friend Suggestion

DELETE/friend-suggestions/{user.id}

Removes a friend suggestion for the current user. Returns a 204 empty response on success. Fires a Friend Suggestion Delete Gateway event.

Get User Affinities

GET/users/@me/affinities/users

Returns the current user's affinity scores for other users. Affinity scores are a measure of how likely a user is to be friends with another user.

Response Body
FieldTypeDescription
user_affinitiesarray[user affinity object]The user's affinity scores for other users
User Affinity Structure
FieldTypeDescription
user_idsnowflakeThe user's ID
affinityfloatThe affinity score

Get User Affinities v2

GET/users/@me/affinities/v2/users

Returns more detailed user affinity scores for the current user.

Response Body
FieldTypeDescription
user_affinitiesarray[user affinity v2 object]The user's affinity scores for other users
User Affinity v2 Structure
FieldTypeDescription
other_user_idsnowflakeThe user's ID
user_segmentstringThe usage segment of the current user
other_user_segmentstringThe usage segment of the user
is_friendbooleanWhether the user is a friend
dm_probabilityfloatThe affinity score for direct messaging
dm_rankintegerThe rank of the direct message affinity
vc_probabilityfloatThe affinity score for voice calling
vc_rankintegerThe rank of the voice call affinity
server_message_probabilityfloatThe affinity score for guild messaging
server_message_rankintegerThe rank of the guild message affinity
communication_probabilityfloatThe overall communication affinity score
communication_rankintegerThe rank of the overall communication affinity
User Segment Type
ValueDescription
HFU_MAUHigh Frequency User, Monthly Active User
NON_HFU_MAUNon-High Frequency User, Monthly Active User
NON_MAUNon-Monthly Active User
Example User Affinities v2
{
"other_user_id": "1001086404203389018",
"user_segment": "HFU_MAU",
"other_user_segment": "HFU_MAU",
"is_friend": true,
"dm_probability": 0.869776725769043,
"dm_rank": 1,
"vc_probability": 0.004896213300526142,
"vc_rank": 4,
"server_message_probability": 0.846949577331543,
"server_message_rank": 6,
"communication_probability": 0.573874172133704,
"communication_rank": 1
}

Get Guild Affinities

GET/users/@me/affinities/guilds

Returns the current user's affinity scores for their joined guilds. Affinity scores are a measure of how likely a user is to interact with a guild.

Response Body
FieldTypeDescription
guild_affinitiesarray[guild affinity object]The user's affinity scores for their guilds
Guild Affinity Structure
FieldTypeDescription
guild_idsnowflakeThe guild's ID
affinityfloatThe affinity score

Get Channel Affinities

GET/users/@me/affinities/channels

Returns the current user's affinity scores for their participated channels. Affinity scores are a measure of how likely a user is to interact with a channel.

Response Body
FieldTypeDescription
channel_affinitiesarray[channel affinity object]The user's affinity scores for their channels
Channel Affinity Structure
FieldTypeDescription
channel_idsnowflakeThe channel's ID
affinityfloatThe affinity score

Confirm Tutorial Indicator

PUT/tutorial/indicators/{indicator}

Confirms the given tutorial indicator. Returns a 204 empty response on success.

Suppress Tutorial

POST/tutorial/indicators/suppress

Suppresses all tutorial indicators. Returns a 204 empty response on success.

Join HypeSquad Online

POST/hypesquad/online

Joins a HypeSquad house and applies the relevant user flag to the current user. Returns a 204 empty response on success. Fires a User Update Gateway event.

JSON Params
FieldTypeDescription
house_idintegerThe HypeSquad house to join
HypeSquad House
ValueDescription
1HypeSquad Bravery
2HypeSquad Brilliance
3HypeSquad Balance

Leave HypeSquad Online

DELETE/hypesquad/online

Leaves the current user's HypeSquad house and removes the relevant user flag. Returns a 204 empty response on success. Fires a User Update Gateway event.

Join Active Developer Program

POST/developers/active-program

Joins the active developer program and applies the ACTIVE_DEVELOPER user flag to the current user. Requires the MANAGE_WEBHOOKS permission in the target channel. Returns a 204 empty response on success. Fires a User Update and Webhooks Update Gateway event.

JSON Params
FieldTypeDescription
application_id 1snowflakeThe ID of the application to join the program with
channel_id 2The ID of the channel to create a follower webhook in

1 User must be the owner of the application or member of the current team. The application must have the ACTIVE application flag.

2 This webhook will point to the official Discord Developers #developer-news channel and will be used to send updates about developing on Discord.

Response Body
FieldTypeDescription
followerfollowed channel objectThe followed channel

Leave Active Developer Program

DELETE/developers/active-program

Leaves the active developer program and removes the ACTIVE_DEVELOPER user flag from the current user. Returns a 204 empty response on success. Fires a User Update Gateway event.

Get User Premium Usage

GET/users/@me/premium-usage

Returns the current user's premium usage for various perks. Only available for users with Nitro.

Response Body
FieldTypeDescription
nitro_sticker_sendspremium usage objectThe number of Nitro sticker the user has sent
total_animated_emojispremium usage objectThe number of animated emojis the user has sent
total_global_emojispremium usage objectThe number of global emojis the user has sent
total_large_uploadspremium usage objectThe number of large uploads the user has made
total_hd_streamspremium usage objectThe number of streams the user has made in HD
hd_hours_streamedpremium usage objectThe number of hours the user has streamed in HD
Premium Usage Structure
FieldTypeDescription
valueintegerThe total number of uses for this perk
Example Response
{
"total_large_uploads": {
"value": 50
},
"total_global_emojis": {
"value": 967
},
"total_animated_emojis": {
"value": 217
},
"nitro_sticker_sends": {
"value": 303
},
"hd_hours_streamed": {
"value": 100
},
"total_hd_streams": {
"value": 50
}
}

Get User Profile Effects

GET/user-profile-effects

Returns the list of profile effects available to use.

Response Body
FieldTypeDescription
profile_effect_configsarray[profile effect config object]The list of profile effects available to use
Profile Effect Config Structure
FieldTypeDescription
idstringThe ID of the profile effect
typeintegerThe type of profile effect
sku_idstringThe ID of the profile effect SKU
titlestringThe title of the profile effect
descriptionstringThe description of the profile effect
accessibilityLabelstringAn accessible description of the profile effect
animationTypeintegerThe type of animation used by the profile effect
thumbnailPreviewSrcstringThe URL of the profile effect's thumbnail preview image (in APNG format)
reducedMotionSrcstringA URL of the profile effect with reduced motion (in APNG format)
effectsarray[profile effect animation object]The animation frames for the profile effect
Profile Effect Animation Structure
FieldTypeDescription
srcstringThe URL of the animation image (in APNG format)
loopbooleanWhether the animation frame should loop
heightintegerThe height of the animation image
widthintegerThe width of the animation image
durationintegerThe duration of the animation frame (in milliseconds)
startintegerThe start time of the animation frame (in milliseconds)
loopDelayintegerThe delay between loops of the animation frame (in milliseconds)
positionprofile effect position objectThe position of the animation frame
zIndexintegerThe z-index of the animation frame
Profile Effect Position Structure
FieldTypeDescription
xintegerThe x-coordinate of the animation frame
yintegerThe y-coordinate of the animation frame
Profile Effect Animation Type
ValueNameDescription
0UNSPECIFIEDThe animation type is unspecified
1PERSISTENTThe animation type is persistent
2INTERMITTENTThe animation type is intermittent
Example Response
{
"profile_effect_configs": [
{
"type": 1,
"id": "1139323075519852625",
"sku_id": "1139323092645183591",
"title": "Hydro Blast",
"description": "Time to make a splash.",
"accessibilityLabel": "A powerful stream of water swirls and twirls in the air. Wait, where's it headed off to?!",
"animationType": 2,
"thumbnailPreviewSrc": "https://cdn.discordapp.com/assets/profile_effects/effects/b17d139f2e9/splash/thumbnail.png",
"reducedMotionSrc": "https://cdn.discordapp.com/assets/profile_effects/effects/b17d139f2e9/splash/reducedMotion.png",
"effects": [
{
"src": "https://cdn.discordapp.com/assets/profile_effects/effects/b17d139f2e9/splash/intro.png",
"loop": false,
"height": 880,
"width": 450,
"duration": 2880,
"start": 0,
"loopDelay": 0,
"position": {
"x": 0,
"y": 0
},
"zIndex": 100
},
{
"src": "https://cdn.discordapp.com/assets/profile_effects/effects/b17d139f2e9/splash/loop.png",
"loop": true,
"height": 880,
"width": 450,
"duration": 2880,
"start": 5760,
"loopDelay": 5760,
"position": {
"x": 0,
"y": 0
},
"zIndex": 100
}
]
}
]
}