Usuarios
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.
Discord enforces the following restrictions for usernames, display names, and nicknames:
Names can contain most valid unicode characters. We limit some zero-width and non-rendering characters.
Usernames must be between 2 and 32 characters long.
Display names and nicknames must be between 1 and 32 characters long.
Webhook names must be between 1 and 80 characters long.
Names are sanitized and trimmed of leading, trailing, and excessive internal whitespace.
The following restrictions are additionally enforced for usernames and display names:
Usernames cannot contain the following substrings: '@', '#', ':', '```'.
Usernames and display names cannot be: 'everyone', 'here', 'system message', or contain 'discord'.
The following restrictions are additionally enforced for webhook names:
Webhook names cannot contain the following substrings: 'clyde'.
Migrated usernames are subject to a new set of restrictions in addition to the above:
Migrated usernames can only contain lowercase alphanumeric characters, underscores (), and periods (). Uppercase characters, spaces, dashes (), and other special characters are not allowed.
Migrated usernames cannot have two or more consecutive periods ().
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.
Discord's username system is changing. Discriminators are being removed and new, unique usernames () 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 tag will still be usable to send friend requests, and will be available as a profile badge for migrated users.
The value of a single zero () in the 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 , not ). The value of the field will become the migrated user's unique username.
Users can only migrate their account to pomelo if they are in the rollout. A user is in the rollout if they have in the field on the Ready Supplemental event and are in the 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.
As part of unique usernames, user accounts can define a non-unique display name. This value is a new nullable field with a max length of 32 characters.
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 . For non-migrated accounts, the URL can be calculated using .
id
snowflake
The ID of the user
username 5
string
The user's username, may be unique across the platform (2-32 characters)
discriminator 5
string
The user's stringified 4-digit Discord tag
global_name 5
?string
The user's display name (1-32 characters)
linked_users 1 3
array[linked user object]
The linked users connected to the account via Family Center
bot?
boolean
Whether the user is a bot account
system?
boolean
Whether the user is an official Discord System user (part of the urgent message system)
mfa_enabled
boolean
Whether the user has multi-factor authentication enabled on their account
nsfw_allowed? 1
?boolean
Whether the user is allowed to see NSFW content, null
if not yet known
pronouns? 1 4
string
The user's pronouns (max 40 characters)
bio 1
string
The user's bio (max 190 characters)
accent_color
?integer
The user's banner color encoded as an integer representation of a hexadecimal color code
verified 2
boolean
Whether the email on this account has been verified
email 2
?string
The user's email address
phone? 1
?string
The user's E.164-formatted phone number
premium (deprecated) 4
boolean
Whether the user is subscribed to Nitro
personal_connection_id?
snowflake
The ID of the user's personal, non-employee user account
desktop? 1 4
boolean
Whether the user has used the desktop client before
mobile? 1 4
boolean
Whether the user has used the mobile client before
has_bounced_email? 1
boolean
Whether the user's email has failed to deliver and is no longer valid
1 Not included when fetching a user via OAuth2.
2 Not included when fetching a user via OAuth2 without the 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.
id
snowflake
The ID of the user
username 1
string
The user's username, may be unique across the platform (2-32 characters)
discriminator 1
string
The user's stringified 4-digit Discord tag
global_name? 1
?string
The user's display name (1-32 characters)
bot?
boolean
Whether the user is a bot account
system?
boolean
Whether the user is an official Discord System user (part of the urgent message system)
accent_color? 2
?integer
The user's banner color encoded as an integer representation of a hexadecimal color code
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 field on the message object. May be included in data received through other API endpoints.
identity_enabled 1
?boolean
Whether the user is displaying their guild tag
identity_guild_id 2
?snowflake
The ID of the guild
tag 1
?string
The user's guild tag (max 4 characters)
1 This field is when a user has not reaffirmed their identity after a tag change.
2 Only populated for users with not set to .
1 << 0
STAFF
Discord Staff
Yes
1 << 1
PARTNER
Partnered Server Owner
Yes
1 << 2
HYPESQUAD
HypeSquad Events
Yes
1 << 3
BUG_HUNTER_LEVEL_1
Level 1 Discord Bug Hunter
Yes
1 << 4
MFA_SMS
SMS enabled as a multi-factor authentication backup
No
1 << 5
PREMIUM_PROMO_DISMISSED
User has dismissed the current premium (Nitro) promotion
No
1 << 6
HYPESQUAD_ONLINE_HOUSE_1
HypeSquad Bravery
Yes
1 << 7
HYPESQUAD_ONLINE_HOUSE_2
HypeSquad Brilliance
Yes
1 << 8
HYPESQUAD_ONLINE_HOUSE_3
HypeSquad Balance
Yes
1 << 9
PREMIUM_EARLY_SUPPORTER
Early Premium (Nitro) Supporter
Yes
1 << 11
IS_HUBSPOT_CONTACT
User is registered on Discord's HubSpot customer platform, used for official Discord programs (e.g. partner)
No 1
1 << 12
SYSTEM
User is a system user (i.e. official Discord account)
Yes
1 << 13
HAS_UNREAD_URGENT_MESSAGES
User has unread urgent system messages; an urgent message is one sent from Trust and Safety
No
1 << 14
BUG_HUNTER_LEVEL_2
Level 2 Discord Bug Hunter
Yes
1 << 15
UNDERAGE_DELETED
User is scheduled for deletion for being under the minimum required age
No 1
1 << 16
VERIFIED_BOT
Verified Bot
Yes
1 << 17
VERIFIED_DEVELOPER
Early Verified Bot Developer
Yes
1 << 18
CERTIFIED_MODERATOR
Moderator Programs Alumni
Yes
1 << 19
BOT_HTTP_INTERACTIONS
Bot uses only HTTP interactions and is shown in the online member list
Yes
1 << 20
SPAMMER
User is marked as a spammer and has their messages collapsed in the UI
Yes
1 << 21
DISABLE_PREMIUM
User has manually disabled premium (Nitro) features
No
1 << 23
PROVISIONAL_ACCOUNT
User is a provisional account used with the social layer integration
Yes
1 << 33
HIGH_GLOBAL_RATE_LIMIT
User has their global ratelimit raised to 1,200 requests per second
No 1
1 << 34
DELETED
User's account is deleted
No 1
1 << 35
DISABLED_SUSPICIOUS_ACTIVITY
User's account is disabled for suspicious activity and must reset their password to regain access
No 1
1 << 36
SELF_DELETED
User deleted their own account
No 1
1 << 37
PREMIUM_DISCRIMINATOR
User has a premium (Nitro) custom discriminator
No 1
1 << 38
USED_DESKTOP_CLIENT
User has used the desktop client
No 1
1 << 39
USED_WEB_CLIENT
User has used the web client
No 1
1 << 40
USED_MOBILE_CLIENT
User has used the mobile client
No 1
1 << 41
DISABLED
User's account is disabled
No 1
1 << 43
HAS_SESSION_STARTED
User has started at least one Gateway session and is now eligible to send messages
No 1
1 << 44
QUARANTINED
User is quarantined and cannot create DMs or accept invites
No
1 << 47
PREMIUM_ELIGIBLE_FOR_UNIQUE_USERNAME
User is eligible for early access to unique usernames
No 1
1 << 50
COLLABORATOR
User is a collaborator and is considered staff
No
1 << 51
RESTRICTED_COLLABORATOR
User is a restricted collaborator and is considered staff
No
1 Not exposed to the API, can only be found in user data harvests.
Purchased flags denote what premium items a user has ever purchased. Visit the Nitro page to learn more about the premium plans currently offered.
1 << 0
NITRO_CLASSIC
User has purchased Nitro classic
1 << 1
NITRO
User has purchased regular Nitro
1 << 2
GUILD_BOOST
User has purchased a guild boost
1 << 3
NITRO_BASIC
User has purchased Nitro basic
1 << 4
ON_REVERSE_TRIAL
User has a reverse trial active
Premium usage flags denote what premium (Nitro) features a user has utilized.
1 << 0
PREMIUM_DISCRIMINATOR
User has utilized premium discriminators
1 << 1
ANIMATED_AVATAR
User has utilized animated avatars
1 << 2
PROFILE_BANNER
User has utilized profile banners
Premium types denote the level of premium a user has. Visit the Nitro page to learn more about the premium plans currently offered.
0
NONE (deprecated)
No Nitro
1
TIER_1
Nitro Classic
2
TIER_2
Nitro
3
TIER_3
Nitro Basic
1
UNVERIFIED
User has not verified their age
2
VERIFIED_TEEN
User is a verified teenager
3
VERIFIED_ADULT
User is a verified adult
Denotes an action Discord requires the user to take before they can continue using the platform. In some cases, multiple actions may be required, and the user must complete all of them before they can continue using Discord.
AGREEMENTS
The user must re-indicate their agreement of Discord's terms of service and privacy policy; this does not limit the user from using Discord
REQUIRE_VERIFIED_EMAIL
The user must add and verify an email address to their account
REQUIRE_REVERIFIED_EMAIL
The user must reverify their existing email address
REQUIRE_REVERIFIED_PHONE
The user must reverify their existing phone number
REQUIRE_VERIFIED_PHONE_THEN_EMAIL
The user must add a phone number to their account and then add and verify an email address to their account
REQUIRE_VERIFIED_EMAIL_OR_VERIFIED_PHONE
The user must add and verify an email address to their account or add a phone number to their account
REQUIRE_REVERIFIED_EMAIL_OR_VERIFIED_PHONE
The user must reverify their existing email address or add a phone number to their account
REQUIRE_VERIFIED_EMAIL_OR_REVERIFIED_PHONE
The user must add and verify an email address to their account or reverify their existing phone number
REQUIRE_REVERIFIED_EMAIL_OR_REVERIFIED_PHONE
The user must reverify their existing email address or reverify their existing phone number
{ "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" }}
{ "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" }}
A user's active avatar decoration.
Avatar Decoration Data Structure
sku_id
snowflake
The ID of the avatar decoration's SKU
expires_at
?integer
Unix timestamp of when the current avatar decoration expires
Example Avatar Decoration Data
{ "sku_id": "1144058844004233369", "asset": "a_fed43ab12698df65902ba06727e20c0e", "expires_at": 1740124800}
A user's equipped collectibles, excluding avatar decorations and profile effects.
sku_id
snowflake
The ID of the nameplate's SKU
label
string
The nameplate's accessibility description
expires_at
?integer
Unix timestamp of when the current nameplate expires
none
None
crimson
Crimson
berry
Berry
sky
Sky
teal
Teal
forest
Forest
bubble_gum
BubbleGum
violet
Violet
cobalt
Cobalt
clover
Clover
{ "nameplate": { "asset": "nameplates/nameplatetest/angel/", "palette": "bubble_gum", "label": "COLLECTIBLES_NAMEPLATETEST_ANGEL_A11Y", "sku_id": "1344802364934062152", "expires_at": null }}
How a user's name gets displayed, such as font, colors, gradient, glow.
11
DEFAULT
Default font
1
SOLID
Displays the first color provided
2
GRADIENT
Two color gradient
3
NEON
Glow around the name
4
TOON
Subtle vertical gradient and stroke
5
POP
Colored dropshadow
A user's profile metadata.
guild_id?
snowflake
The guild ID this profile applies to, if it is a guild profile
pronouns
string
The user's pronouns (max 40 characters)
bio?
string
The user's bio (max 190 characters)
accent_color? 1
?integer
The user's banner color encoded as an integer representation of a 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?
?snowflake
The user's profile popout animation particle type
1 Not respected on guild profiles.
id
snowflake
The ID of the profile effect
expires_at
?integer
Unix timestamp of when the current profile effect expires
{ "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": 1740124800 }}
id
string
The ID of the authenticator
name
string
The name of the authenticator
Authenticator types represent enabled multi-factor authentication methods. See the MFA verification documentation for more information.
1
WEBAUTHN
WebAuthn credentials
2
TOTP
Time-based One-Time Password code
3
SMS
SMS code
{ "id": "1219430671865610261", "type": 1, "name": "AlienKey"}
A multi-factor authentication backup code.
user_id
snowflake
The ID of the user
code
string
The backup code
consumed
boolean
Whether the backup code has been used
{ "user_id": "852892297661906993", "code": "zqs8oqxk", "consumed": false}
A user's data harvest.
harvest_id
snowflake
The ID of the harvest
user_id
snowflake
The ID of the user being harvested
string
The email the harvest will be sent to
created_at
ISO8601 timestamp
When the harvest was created
completed_at
?ISO8601 timestamp
When the harvest was completed
polled_at
?ISO8601 timestamp
When the harvest was last polled
updated_at
ISO8601 timestamp
When the harvest was last updated
shadow_run
boolean
Whether the harvest is a shadow run
{ "harvest_id": "1319498748052639754", "user_id": "852892297661906993", "email": "alien@dolfi.es", "state": "DELIVERED", "status": 3, "created_at": "2024-12-20T02:56:56.639579+00:00", "completed_at": "2024-12-21T11:05:41.462828+00:00", "polled_at": "2024-12-21T11:05:41.462828+00:00", "backends": { "ads": "EXTRACTED", "users": "EXTRACTED", "guilds": "EXTRACTED", "hubspot": "EXTRACTED", "messages": "EXTRACTED", "analytics": "EXTRACTED", "activities_e": "EXTRACTED", "activities_w": "EXTRACTED" }, "updated_at": "2024-12-21T11:05:41.462828+00:00", "shadow_run": false, "harvest_metadata": { "user_is_staff": false, "sla_email_sent": false, "bypass_cooldown": false, "is_provisional": false }}
user_is_staff
boolean
Whether the user being harvested is a Discord employee
sla_email_sent
boolean
Whether an email has been sent informing the user that the archive is taking longer than expected
bypass_cooldown
boolean
Whether the harvest bypasses the cooldown period for requesting harvests
is_provisional
boolean
Whether the user being harvested is a provisional account
INCOMPLETE
The harvest is not yet complete
DELIVERED
The harvest has been delivered to the user
CANCELLED
The harvest has been cancelled
0
QUEUED
The harvest is queued and has not been started
1
RUNNING
The harvest is currently running
2
FAILED
The harvest has failed
3
COMPLETED
The harvest has completed successfully
4
CANCELLED
The harvest has been cancelled
users
All account information
analytics
Actions the user has taken in Discord
activities_e
First-party embedded activity information
activities_w
First-party embedded activity information
messages
All user messages
hubspot
Discord's HubSpot contact data, used for official Discord programs (e.g. partner)
guilds
All guilds the user is currently a member of
ads
Quest data
INITIAL
The backend has not been processed
RUNNING
The backend is currently processing
EXTRACTED
The backend has been processed
A user survey.
id
snowflake
The ID of the survey
key
snowflake
The ID of the survey
prompt
string
The title of the survey
cta
string
The call-to-action text
url
string
The URL to the survey
guild_size
array[?integer, ?integer]
The guild member count requirements (min, max)
IS_OWNER
The user must be the owner of a guild
-
IS_ADMIN
The user must have the ADMINISTRATOR
permission in any guild
-
GUILD_SIZE
The user must be in a guild with a member count in a given range
guild_size
GUILD_SIZE_ALL
All guilds the user is in must have a member count in a given range
guild_size
IS_VIEWING
The user must be currently viewing a guild
-
GUILD_PERMISSIONS
The user must have the given permissions in any guild
guild_permissions
{ "id": "1301267751645483122", "key": "1301267751645483122", "prompt": "Share your experience with Discord", "cta": "Take the survey!", "url": "https://discord.sjc1.qualtrics.com/jfe/form/SV_123456", "guild_requirements": [], "guild_size": [null, null], "guild_permissions": []}
An Identity Verification used for application verification.
User Identity Verification Structure
id
snowflake
The ID for the team verification
redirect_url 1
string
The Stripe identity verification URL to redirect the user to
1 Only returned on newly-created identity verification attempts.
User Identity Verification Status
1
REQUIRES_ACTION
User action is required to complete verification
2
PROCESSING
The verification is currently in progress
3
CANCELED
The verification was cancelled before completion
4
SUCCEEDED
The verification succeeded
5
MANUALLY_SUCCEEDED
The verification was manually approved by staff
6
DELETED
The verification was deleted
7
SUCCEEDED_GRACE_PERIOD
The verification is currently in a grace period before finalization
User Identity Verification Error
1
CONSENT_DECLINED
User declined consent at the beginning of verification
2
UNVERIFIED
Verification was aborted or Stripe failed to verify the user's identity
3
DEVICE_UNSUPPORTED
The device used for verification is unsupported
4
VERIFICATION_DOCUMENT_EXPIRED
The submitted document has expired
5
VERIFICATION_DOCUMENT_INVALID
The submitted document is invalid
6
VERIFICATION_UNEXPECTED_DOCUMENT_COUNTRY
The submitted document has an unexpected issuing country
7
VERIFICATION_UNEXPECTED_DOCUMENT_TYPE
The submitted document has an unexpected document type
8
VERIFICATION_SCAN_NOT_READABLE
The scan is not readable by the verification system
9
VERIFICATION_SCAN_MISSING_BACK
The scan is missing the back side of the document
10
VERIFICATION_SCAN_ID_TYPE_NOT_SUPPORTED
The scan contains a document type that is not supported by the verification system
11
VERIFICATION_SCAN_CORRUPT
The scan is incomplete or corrupted
12
VERIFICATION_SCAN_FAILED_COPY
The verification system determined the scan is a copy of the original document
13
VERIFICATION_SCAN_MANIPULATED_DOCUMENT
The verification system determined the document was manipulated or damaged with
14
VERIFICATION_SCAN_FAILED_GRAYSCALE
The scan failed due to the uploaded document having been uploaded in grayscale
15
VERIFICATION_UNDER_SUPPORTED_AGE
The user is under the minimum supported age for verification
GET/users/@me
Returns the user object of the requester's account.
PATCH/users/@me
Modifies the requester's user account settings. Returns a user object with an extra field representing the user's new authorization token on success. Fires a User Update Gateway event.
username? 5
string
The user's username (2-32 characters)
discriminator? 5
string
The 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
?string
The user's display name (1-32 characters)
avatar?
The user's avatar; can be animated when the user has an applicable premium (Nitro) plan
avatar_description?
?string
The description of the new user avatar, usually in the format "{filename}, added {date}" (max 1024 characters)
avatar_id?
string
The ID of the recent avatar to use
avatar_decoration_id?
?snowflake
The ID of the user's avatar decoration
avatar_decoration_sku_id?
?snowflake
The SKU ID of the user's avatar decoration
nameplate_id?
?snowflake
The ID of the user's nameplate
nameplate_sku_id?
?snowflake
The SKU ID of the user's nameplate
display_name_colors?
?array[integer]
The display name colors to use encoded as an array of integers representing hexadecimal color codes (max 2)
email?
string
The user's email address; if changing from a verified email, email_token
must be provided
email_token? 4
string
The user's email token from their previous email
pronouns?
?string
The user's pronouns (max 40 characters)
bio?
?string
The user's bio (max 190 characters)
accent_color?
?integer
The user's banner color encoded as an integer representation of a hexadecimal color code
flags?
integer
The user's flags (only PREMIUM_PROMO_DISMISSED
and HAS_UNREAD_URGENT_MESSAGES
can be set)
date_of_birth? 2
ISO8601 timestamp
The user's date of birth; can only be set once
password? 1
string
The user's current password; if the account does not have a password, this sets it
new_password? 3
string
The user's new password (8-72 characters)
push_token
string
The push notification token to register
push_voip_token? 6
string
The VOIP push notification token to register
1 Required for changing , , , , or .
2 Setting this defines the 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 key in the response will be valid.
4 This value can be obtained by requesting a verification code as outlined in the email verification documentation.
5 If using unique usernames, the field must be unique across Discord, and cannot be changed. Else, the and fields must be unique across Discord, and changing the username 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 information on username restrictions.
6 VOIP-specific push notification tokens are only used with PushKit on iOS.
PATCH/users/@me/account
Modifies the requester's user account settings. Returns a partial user object on success. Fires a User Update Gateway event.
global_name?
?string
The user's display name (1-32 characters)
GET/users/@me/avatars
Returns the user's recent avatars. For premium users, the six most recent avatars will be returned. Otherwise, only two will be returned.
id
string
The avatar ID
description
?string
The description specified when the avatar was uploaded
{ "avatars": [ { "id": "1357011390585507910", "storage_hash": "212aed0ac14cf7804051218f99624a9f", "description": "alien, added April 2, 2025 at 5:09 PM" } ]}
DELETE/users/@me/avatars/{avatar.id}
Deletes a recent avatar for the user. Returns a 204 empty response on success.
GET/users/{user.id}
Returns a partial user object for a given user ID.
GET/users/{user.id}/profile
Returns a user profile object for a given user ID.
with_mutual_guilds?
boolean
Whether to include the mutual guilds of the user with the current user (default true)
with_mutual_friends?
boolean
Whether to include mutual friends the user has with the current user (default false)
with_mutual_friends_count?
boolean
Whether to include the number of mutual friends the user has with the current user (default false)
guild_id?
snowflake
The guild ID to get the user's member profile in
connections_role_id?
snowflake
The role ID to get the user's application role connection metadata in
join_request_id?
snowflake
The join request ID to use for the request
guild_member? 1
guild member object
The guild member in the guild specified, with an extra bio
denoting the guild member's bio
legacy_username? 1 2
?string
The user's pre-migration username#discriminator
, if applicable and shown
mutual_friends_count? 1 3
integer
The number of mutual friends the user has with the current user
application_role_connections?
array[application role connection object]
The user's application role connections for the role specified
premium_since 1
?ISO8601 timestamp
The date the user's premium (Nitro) subscription started
premium_guild_since 1
?ISO8601 timestamp
The date the user's premium guild (boosting) subscription started
1 These fields are unexpectedly missing or if the user has blocked the current user.
2 See the section on Discord's new username system for more information.
3 This will always be an empty list / zero value for bots, even if the user has mutual friends with it.
id
snowflake
The ID of the application
verified
boolean
Whether the application is verified
storefront_available
boolean
Whether the application has monetization enabled (i.e. subscriptions or products available for purchase)
primary_sku_id?
snowflake
The ID of the application's primary SKU (game, application subscription, etc.)
install_params?
application install params object
The default in-app authorization link for the integration
integration_types_config?
map[integer, ?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?
string
The default custom authorization link for the integration
For a list of known profile badges, refer to this Gist.
id
string
The reference ID of the badge
description
string
A description of the badge
link?
string
A link representing the badge
id
snowflake
The guild ID
nick
?string
The user's nickname in the guild
{ "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 } }}
PATCH/users/@me/profile
Modifies the current user's profile. Returns the updated profile metadata object on success. Fires a User Update Gateway event.
pronouns?
?string
The user's pronouns (max 40 characters)
bio?
?string
The user's bio (max 190 characters)
accent_color?
?integer
The user's banner color encoded as an integer representation of a 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?
?snowflake
The user's profile popout animation particle type
emoji_id?
?snowflake
The user's profile emoji ID
profile_effect_id?
?snowflake
The user's profile effect ID
GET/users/{user.id}/relationships
Returns a list of partial user objects that are friends with the user and current user.
POST/users/@me/mfa/totp/enable
Enables TOTP multi-factor authentication for the current user. Fires a User Update Gateway event.
password
string
The user's password
secret?
string
The generated TOTP secret (32 characters)
code?
string
The TOTP code to verify the secret (6 characters)
token
string
The new authorization token for the session
POST/users/@me/mfa/totp/disable
Disables TOTP multi-factor authentication for the current user. Fires a User Update Gateway event.
token
string
The new authorization token for the session
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.
password
string
The user's password
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.
password
string
The user's password
GET/users/@me/mfa/webauthn/credentials
Returns a list of WebAuthn authenticator objects for the current user.
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.
name?
string
The name of the authenticator (1-32 characters)
ticket?
string
The MFA ticket returned from the same endpoint
ticket 1
string
The MFA ticket
id 2
string
The ID of the authenticator
name 2
string
The name of the authenticator
1 Only returned when no parameters are provided.
2 Only returned when parameters are provided.
{ "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 } ]}
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.
name?
string
The name of the authenticator (1-32 characters)
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.
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.
password
string
The user's password
nonce
string
The one-time verification nonce used to view the backup codes
regenerate_nonce
string
The one-time verification nonce used to regenerate the backup codes
POST/users/@me/mfa/codes-verification
Returns the user's MFA backup codes.
key 1
string
The backup code verification key received in the email
nonce 1 2
string
The one-time verification nonce used to view/regenerate the backup codes
regenerate 2
boolean
Whether 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.
{ "backup_codes": [ { "user_id": "852892297661906993", "code": "zqs8oqxk", "consumed": false } ]}
POST/users/@me/disable
Disables the current user's account. Invalidates all active tokens. Returns a 204 empty response on success.
password
string
The user's password
POST/users/@me/delete
Marks the current user's account for deletion. Invalidates all active tokens. Returns a 204 empty response on success.
password
?string
The user's password, if any
POST/users/@me/captcha/verify
Verifies a reCAPTCHA solution when needed by the required action. Returns a 204 empty response on success. Fires a User Required Action Update Gateway event.
6Lef5iQTAAAAAKeIvIY-DeexoO3gj7ryl9rLMEnn
captcha_key
string
The reCAPTCHA solution
patch/users/@me/agreements
Reaffirms the user's agreements to Discord's Terms of Service and Privacy Policy when needed by the required action, which is assigned when a policy change occurs. Returns a 204 empty response on success. Fires a User Required Action Update Gateway event.
terms?
boolean
Whether the user agrees to the Terms of Service
privacy?
boolean
Whether the user agrees to the Privacy Policy
GET/users/@me/pomelo-suggestions
Returns a suggested unique username string based on the current user's username.
username
string
The suggested username
{ "username": "gnarp.gnap" }
POST/users/@me/pomelo-attempt
Checks whether a unique username is available for the user to claim.
username
string
The username to check
taken
?boolean
Whether the username is taken
{ "taken": true }
POST/users/@me/pomelo
Claims a unique username for the user. Returns the updated user object on success. Fires a User Update Gateway event.
username
string
The username to claim
PUT/users/@me/clan
Sets the current user's primary guild. Returns a user object on success. Fires a User Update Gateway event.
identity_enabled?
?boolean
Whether the user has enabled the feature
identity_guild_id?
?snowflake
The ID of the guild whose identity is being adopted
GET/users/@me/mentions
Returns a list of message objects that the current user has been mentioned in during the past 7 days.
before?
snowflake
Get messages before this message ID
limit?
integer
Max number of messages to return (1-100, default 25)
guild_id?
snowflake
The guild to limit returned messages by
roles?
boolean
Whether to include role mentions (default true)
everyone?
boolean
Whether to include @everyone and @here mentions (default true)
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/users/@me/harvest
If it exists, returns a harvest object representing the current user's most recent user data harvest request. Otherwise, returns a 204 empty response.
POST/users/@me/harvest
Creates a user data harvest request for the current user. Returns a harvest object on success.
backends?
?array[string]
The types of user data being requested 1
email 2
string
The email address to send the harvest to
1 Invalid options are ignored. If the array contains no valid values, all data types are requested.
2 Only applicable in OAuth2 contexts.
See the official support page for more information.
Accounts
All account information
Ads
Quest data
Analytics
Actions the user has taken in Discord
Activities
First-party embedded activity information
Messages
All user messages
Programs
Official Discord programs (e.g. partner)
Servers
All guilds the user is currently a member of
GET/users/@me/survey
Returns the current user's active survey.
disable_auto_seen?
boolean
Whether to prevent automatically marking the survey as seen (default false)
survey_override? 1
snowflake
The ID of the survey to return
1 Only usable by Discord employees.
POST/users/@me/survey/{survey.id}/seen
Marks a user survey as seen. Returns a 204 empty response on success.
GET/users/@me/notes
Returns a mapping of user IDs to notes for the current user.
{ "852892297661906993": "This is a note", "787017887877169173": "This is another note"}
GET/users/@me/notes/{user.id}
Returns the note for the given user.
note
string
The note (max 256 characters)
note_user_id
snowflake
The ID of the user the note is on
user_id
snowflake
The ID of the user who created the note (always the current user)
{ "note": "This is a note", "note_user_id": "787017887877169173", "user_id": "852892297661906993"}
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.
note
?string
The note (max 256 characters)
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.
user_id
snowflake
The user's ID
affinity
float
The affinity score
GET/users/@me/affinities/v2/users
Returns more detailed user affinity scores for the current user.
other_user_id
snowflake
The user's ID
is_friend
boolean
Whether the user is a friend
dm_probability
float
The affinity score for direct messaging
dm_rank
integer
The rank of the direct message affinity
vc_probability
float
The affinity score for voice calling
vc_rank
integer
The rank of the voice call affinity
server_message_probability
float
The affinity score for guild messaging
server_message_rank
integer
The rank of the guild message affinity
communication_probability
float
The overall communication affinity score
communication_rank
integer
The rank of the overall communication affinity
HFU_MAU
High Frequency User, Monthly Active User
NON_HFU_MAU
Non-High Frequency User, Monthly Active User
NON_MAU
Non-Monthly Active User
{ "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/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.
guild_id
snowflake
The guild's ID
affinity
float
The affinity score
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.
channel_id
snowflake
The channel's ID
affinity
float
The affinity score
GET/tutorial
Returns the current user's tutorial object, which contains information about the user's tutorial progress. If no tutorial is available, returns a 204 empty response instead.
PUT/tutorial/indicators/{indicator}
Confirms the given tutorial indicator. Returns a 204 empty response on success.
POST/tutorial/indicators/suppress
Suppresses all tutorial indicators. Returns a 204 empty response on success.
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.
1
HypeSquad Bravery
2
HypeSquad Brilliance
3
HypeSquad Balance
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.
POST/developers/active-program
Joins the active developer program and applies the user flag to the current user. Requires the permission in the target channel. Returns a 204 empty response on success. Fires a User Update and Webhooks Update Gateway event.
application_id 1
snowflake
The ID of the application to join the program with
channel_id 2
The 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 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.
DELETE/developers/active-program
Leaves the active developer program and removes the user flag from the current user. Returns a 204 empty response on success. Fires a User Update Gateway event.
POST/dev-portal-csat-survey-response
Submits a customer satisfaction survey response for the development experience on Discord. Returns a 204 empty response on success.
user_id
snowflake
The ID of the client user
csat_response
integer
The rating given by the user (1-5)
GET/users/@me/premium-usage
Returns the current user's premium usage for various perks. Only available for users with Nitro.
value
integer
The total number of uses for this perk
{ "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
Returns the list of profile effects available to display.
profile_effect_configs
array[profile effect config object]
The list of profile effects available to use
Profile Effect Config Structure
id
string
The ID of the profile effect
sku_id
string
The ID of the profile effect SKU
title
string
The title of the profile effect
description
string
The description of the profile effect
accessibilityLabel
string
An accessible description of the profile effect
thumbnailPreviewSrc
string
The URL of the profile effect's thumbnail preview image (in APNG format)
reducedMotionSrc
string
A URL of the profile effect with reduced motion (in APNG format)
Profile Effect Animation Structure
src
string
The URL of the animation image (in APNG format)
loop
boolean
Whether the animation frame should loop
height
integer
The height of the animation image
width
integer
The width of the animation image
duration
integer
The duration of the animation frame (in milliseconds)
start
integer
The start time of the animation frame (in milliseconds)
loopDelay
integer
The delay between loops of the animation frame (in milliseconds)
zIndex
integer
The z-index of the animation frame
Profile Effect Position Structure
x
integer
The x-coordinate of the animation frame
y
integer
The y-coordinate of the animation frame
Profile Effect Source Structure
src
string
The URL of the animation image (in APNG format)
0
AVATAR_DECORATION
An avatar decoration
1
PROFILE_EFFECT
A profile effect animation
2
NAMEPLATE
A nameplate
1000
BUNDLE
A bundle of collectibles
2000
VARIANTS_GROUP
A group of collectible variants
3000
EXTERNAL_SKU
An external SKU
0
UNSPECIFIED
The animation type is unspecified
1
PERSISTENT
The animation type is persistent
2
INTERMITTENT
The animation type is intermittent
{ "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, "randomizedSources": [] }, { "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, "randomizedSources": [] } ]}
GET/users/@me/consumable/confetti
Returns the number of confetti potions left to use.
num_potions
integer
Number of unused potions left
POST/users/@me/consumable/confetti
Applies a confetti potion to a message. To use custom emoji, you must encode it in the format with the emoji name and emoji ID. Returns a 204 empty response on success.
channel_id
snowflake
The ID of the channel the message is in
message_id
snowflake
The ID of the message to apply the confetti potion to
emoji_name
string
Unicode emoji or custom emoji name and ID
GET/users/@me/saved-messages
Returns message bookmarks and reminders for the current user.
channel_id
snowflake
The ID of the channel
message_id
snowflake
The ID of the message
guild_id?
snowflake
The ID of the guild
saved_at
ISO8601 timestamp
The timestamp when the message was saved
author_summary
string
Unknown
channel_summary
string
Unknown
message_summary
string
Unknown
notes
string
Unknown
due_at
?ISO8601 timestamp
When the reminder is due
PUT/users/@me/saved-messages/{channel.id}/{message.id}
Saves a message for the current user. Returns a saved message object on success. Fires a Saved Message Create Gateway event.
due_at?
?ISO8601 timestamp
When the reminder is due
DELETE/users/@me/saved-messages/{channel.id}/{message.id}
Unsaves a message for the current user. Returns a 204 empty response on success. Fires a Saved Message Delete Gateway event.
POST/age-verification/verify
Starts the age verification process using a third-party age verification provider. After the process is complete, a age verification system message is sent to the user.
verification_request_id
string
UUID generated by the server to track the current age verification request
verification_vendor_name
string
The third party age verification provider (currently always K_ID
)
verification_webview_url
string
The webview URL to iframe into the client
POST/users/@me/identity/verification
Creates a new verification attempt for the user. Returns a user identity verification object on success.
return_url
string
The URL to redirect to after Stripe verification succeeds
GET/users/@me/identity/verification
Returns a user identity verification object representing the most recent verification attempt.