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:

  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.

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.

Identifying 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.

Migrating

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.

Display Names

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.

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 . For non-migrated accounts, the URL can be calculated using .

User Structure

Field
Type
Description

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)

avatar

?string

The user's avatar hash

avatar_decoration_data

collectibles?

?collectibles object

The user's equipped collectibles

display_name_styles?

The user's display name style

primary_guild?

The primary guild of the user

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

age_verification_status 1

integer

The age verification status of the user

pronouns? 1 4

string

The user's pronouns (max 40 characters)

bio 1

string

The user's bio (max 190 characters)

banner

?string

The user's banner hash

accent_color

?integer

The user's banner color encoded as an integer representation of a hexadecimal color code

locale? 3

string

The language option chosen by the user

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

premium_type

integer

The type of premium (Nitro) subscription on a user's account

personal_connection_id?

snowflake

The ID of the user's personal, non-employee user account

flags 1

integer

The flags on a user's account

public_flags

integer

The public flags on a user's account

purchased_flags? 1

integer

The purchased flags on a user's account

premium_usage_flags? 1

integer

The premium usage flags on a user's 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

authenticator_types? 3

array[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 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

Field
Type
Description

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)

avatar

?string

The user's avatar hash

avatar_decoration_data?

collectibles?

?collectibles object

The user's equipped collectibles

display_name_styles?

The user's display name style

primary_guild?

The primary guild of the user

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)

banner? 2

?string

The user's banner hash

accent_color? 2

?integer

The user's banner color encoded as an integer representation of a hexadecimal color code

public_flags?

integer

The 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 field on the message object. May be included in data received through other API endpoints.

Primary Guild Structure

Field
Type
Description

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)

badge 1

?string

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 .

User Flags

Value
Name
Description
Public

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 << 10

TEAM_PSEUDO_USER

User is a Team

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 << 22

ACTIVE_DEVELOPER

Yes

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

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

Value
Name
Description

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

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

Value
Name
Description

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 Type

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

Value
Name
Description

0

NONE (deprecated)

No Nitro

1

TIER_1

Nitro Classic

2

TIER_2

Nitro

3

TIER_3

Nitro Basic

Age Verification Status

Value
Name
Description

1

UNVERIFIED

User has not verified their age

2

VERIFIED_TEEN

User is a verified teenager

3

VERIFIED_ADULT

User is a verified adult

Required Action Type

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.

Value
Description
Action

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_CAPTCHA

The user must complete a reCAPTCHA challenge

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_VERIFIED_PHONE

The user must add a phone number to their account

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

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"  }}

A user's active avatar decoration.

Avatar Decoration Data Structure

Field
Type
Description

asset

string

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.

Collectibles Structure

Field
Type
Description

nameplate

The user's nameplate

Nameplate Data Structure

Field
Type
Description

asset

string

sku_id

snowflake

The ID of the nameplate's SKU

label

string

The nameplate's accessibility description

palette

string

The nameplate's color palette

expires_at

?integer

Unix timestamp of when the current nameplate expires

Nameplate Color Palette

Value
Name

none

None

crimson

Crimson

berry

Berry

sky

Sky

teal

Teal

forest

Forest

bubble_gum

BubbleGum

violet

Violet

cobalt

Cobalt

clover

Clover

Example Collectibles Object

{  "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.

Display Name Style Structure

Field
Type
Description

font_id

integer

The font to use

effect_id

integer

The effect to use

colors

array[integer]

The colors to use encoded as an array of integers representing hexadecimal color codes (max 2)

Display Name Font

Value
Name
Description

11

DEFAULT

Default font

1

BANGERS

2

BIO_RHYME

3

CHERRY_BOMB

4

CHICLE

5

COMPAGNON

6

MUSEO_MODERNO

7

NEO_CASTEL

8

PIXELIFY

9

RIBES

10

SINISTRE

Display Name Effect

Value
Name
Description

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.

Profile Metadata Structure

Field
Type
Description

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)

banner?

?string

The user's banner hash

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

emoji?

?emoji object

The user's profile emoji

profile_effect?

The user's profile effect

1 Not respected on guild profiles.

Profile Effect Structure

Field
Type
Description

id

snowflake

The ID of the profile effect

expires_at

?integer

Unix timestamp 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": 1740124800  }}

Authenticator Structure

Field
Type
Description

id

string

The ID of the authenticator

type

string

name

string

The name of the authenticator

Authenticator Type

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

Value
Name
Description

1

WEBAUTHN

WebAuthn credentials

2

TOTP

Time-based One-Time Password code

3

SMS

SMS code

Example Authenticator

{  "id": "1219430671865610261",  "type": 1,  "name": "AlienKey"}

A multi-factor authentication backup code.

Backup Code Structure

Field
Type
Description

user_id

snowflake

The ID of the user

code

string

The backup code

consumed

boolean

Whether the backup code has been used

Example Backup Code

{  "user_id": "852892297661906993",  "code": "zqs8oqxk",  "consumed": false}

A user's data harvest.

Harvest Structure

Field
Type
Description

harvest_id

snowflake

The ID of the harvest

user_id

snowflake

The ID of the user being harvested

email

string

The email the harvest will be sent to

state

string

The state of the harvest

status

integer

The status of the harvest

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

backends

map[string, string]

The state of each backend being harvested

updated_at

ISO8601 timestamp

When the harvest was last updated

shadow_run

boolean

Whether the harvest is a shadow run

harvest_metadata

Additional metadata about the harvest

Example Harvest

{  "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  }}

Harvest Metadata Structure

Field
Type
Description

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

Harvest State

Value
Description

INCOMPLETE

The harvest is not yet complete

DELIVERED

The harvest has been delivered to the user

CANCELLED

The harvest has been cancelled

Harvest Status

Value
Name
Description

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

Harvest Backend Internal Type

Value
Description

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

Harvest Backend State

Value
Description

INITIAL

The backend has not been processed

RUNNING

The backend is currently processing

EXTRACTED

The backend has been processed

A user survey.

User Survey Structure

Field
Type
Description

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_requirements

array[string]

User requirements for the survey to be shown

guild_size

array[?integer, ?integer]

The guild member count requirements (min, max)

guild_permissions

array[string]

Survey Requirement Type

Value
Description
Field

IS_OWNER

The user must be the owner of a guild

-

IS_ADMIN

The user must have the ADMINISTRATOR permission in any guild

-

IS_COMMUNITY

The user must be in a guild with the feature

-

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_HUB

The user must be in a guild with the feature

-

IS_VIEWING

The user must be currently viewing a guild

-

GUILD_PERMISSIONS

The user must have the given permissions in any guild

guild_permissions

Example User Survey

{  "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

Field
Type
Description

id

snowflake

The ID for the team verification

status

number

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

Value
Name
Description

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

Value
Name
Description

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.

JSON Params

Field
Type
Description

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_font_id?

?integer

display_name_effect_id?

?integer

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)

banner?

The user's banner; can only be changed for premium (Nitro) users

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_provider

string

The push notification provider of the device

push_token

string

The push notification token to register

push_voip_provider? 6

string

The VOIP push notification provider of the device

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.

JSON Params

Field
Type
Description

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.

Response Body

Field
Type
Description

avatars

array[avatar object]

The recent avatars for the user

Avatar Structure

Field
Type
Description

id

string

The avatar ID

storage_hash

string

description

?string

The description specified when the avatar was uploaded

Example Response

{  "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.

Query String Params

Field
Type
Description

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

Response Body

Field
Type
Description

application?

The bot's application profile

user

partial user object

The user object, with an extra bio key denoting the user's bio

user_profile 1

The user's profile metadata

badges 1

array[profile badge object]

The user's profile badges

guild_member? 1

The guild member in the guild specified, with an extra bio denoting the guild member's bio

guild_member_profile? 1

The guild member's profile in the guild specified

guild_badges 1

array[profile badge objcet]

The guild member's guild-specific profile badges

legacy_username? 1 2

?string

The user's pre-migration username#discriminator, if applicable and shown

mutual_guilds? 1

array[mutual guild object]

The mutual guilds of the user with the current user

mutual_friends? 1 3

array[partial user object]

The mutual friends the user has with the current user

mutual_friends_count? 1 3

integer

The number of mutual friends the user has with the current user

connected_accounts

array[partial connection object]

The user's public connected accounts

application_role_connections?

The user's application role connections for the role specified

premium_type 1

?integer

The type of premium (Nitro) subscription on a user's account

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.

Profile Application Structure

Field
Type
Description

id

snowflake

The ID of the application

flags

integer

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?

The default in-app authorization link for the integration

integration_types_config?

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

Profile Badge Structure

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

Field
Type
Description

id

string

The reference ID of the badge

description

string

A description of the badge

icon

string

The badge's icon hash

link?

string

A link representing the badge

Mutual Guild Structure

Field
Type
Description

id

snowflake

The guild ID

nick

?string

The 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    }  }}

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

Field
Type
Description

pronouns?

?string

The user's pronouns (max 40 characters)

bio?

?string

The user's bio (max 190 characters)

banner?

The user's banner; can only be changed for premium (Nitro) users

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.

JSON Params

Field
Type
Description

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)

Response Body

Field
Type
Description

token

string

The new authorization token for the session

backup_codes

array[backup code object]

MFA backup codes

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

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

Response Body

Field
Type
Description

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.

JSON Params

Field
Type
Description

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.

JSON Params

Field
Type
Description

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.

JSON Params

Field
Type
Description

name?

string

The name of the authenticator (1-32 characters)

ticket?

string

The MFA ticket returned from the same endpoint

credential?

string

A stringified JSON object of the public key credential response

Response Body

Field
Type
Description

ticket 1

string

The MFA ticket

challenge 1

string

The stringified JSON public key credential request options challenge

id 2

string

The ID of the authenticator

type 2

string

The type of authenticator (always WEBAUTHN)

name 2

string

The name of the authenticator

backup_codes 2

array[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    }  ]}

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

Field
Type
Description

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.

JSON Params

Field
Type
Description

password

string

The user's password

Response Body

Field
Type
Description

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.

JSON Params

Field
Type
Description

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.

Response Body

Field
Type
Description

backup_codes

array[backup code object]

MFA backup codes

Example Response

{  "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.

JSON Params

Field
Type
Description

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.

JSON Params

Field
Type
Description

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.

reCAPTCHA Site Key

6Lef5iQTAAAAAKeIvIY-DeexoO3gj7ryl9rLMEnn

JSON Params

Field
Type
Description

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.

JSON Params

Field
Type
Description

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.

Response Body

Field
Type
Description

username

string

The suggested username

Example Response

{ "username": "gnarp.gnap" }

POST/users/@me/pomelo-attempt

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

JSON Params

Field
Type
Description

username

string

The username to check

Response Body

Field
Type
Description

taken

?boolean

Whether the username is taken

Example Response

{ "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.

JSON Params

Field
Type
Description

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.

JSON Params

Field
Type
Description

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.

Query String Params

Field
Type
Description

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.

JSON Params

Field
Type
Description

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.

Harvest Backend Type

See the official support page for more information.

Value
Description

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.

Query String Params

Field
Type
Description

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.

Response Body

Field
Type
Description

survey

?user survey object

The user's active survey, if any

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.

Example Response

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

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

Returns the note for the given user.

Response Body

Field
Type
Description

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)

Example Response

{  "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.

JSON Params

Field
Type
Description

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.

Response Body

Field
Type
Description

user_affinities

array[user affinity object]

The user's affinity scores for other users

User Affinity Structure

Field
Type
Description

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.

Response Body

Field
Type
Description

user_affinities

array[user affinity v2 object]

The user's affinity scores for other users

User Affinity v2 Structure

Field
Type
Description

other_user_id

snowflake

The user's ID

user_segment

string

The usage segment of the current user

other_user_segment

string

The usage segment of the user

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

User Segment Type

Value
Description

HFU_MAU

High Frequency User, Monthly Active User

NON_HFU_MAU

Non-High Frequency User, Monthly Active User

NON_MAU

Non-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/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

Field
Type
Description

guild_affinities

array[guild affinity object]

The user's affinity scores for their guilds

Guild Affinity Structure

Field
Type
Description

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.

Response Body

Field
Type
Description

channel_affinities

array[channel affinity object]

The user's affinity scores for their channels

Channel Affinity Structure

Field
Type
Description

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.

JSON Params

Field
Type
Description

house_id

integer

The HypeSquad house to join

HypeSquad House

Value
Description

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.

JSON Params

Field
Type
Description

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.

Response Body

Field
Type
Description

follower

The followed channel

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.

JSON Params

Field
Type
Description

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.

Response Body

Field
Type
Description

nitro_sticker_sends

The number of Nitro sticker the user has sent

total_animated_emojis

The number of animated emojis the user has sent

total_global_emojis

The number of global emojis the user has sent

total_large_uploads

The number of large uploads the user has made

total_hd_streams

The number of streams the user has made in HD

hd_hours_streamed

The number of hours the user has streamed in HD

Premium Usage Structure

Field
Type
Description

value

integer

The 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

Returns the list of profile effects available to display.

Response Body

Field
Type
Description

profile_effect_configs

array[profile effect config object]

The list of profile effects available to use

Profile Effect Config Structure

Field
Type
Description

id

string

The ID of the profile effect

type

integer

The type of collectible (always 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

animationType

integer

The type of animation used by 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)

effects

The animation frames for the profile effect

Profile Effect Animation Structure

Field
Type
Description

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)

position

The position of the animation frame

zIndex

integer

The z-index of the animation frame

randomizedSources

array[profile effect source object]

The sources to randomize the src from

Profile Effect Position Structure

Field
Type
Description

x

integer

The x-coordinate of the animation frame

y

integer

The y-coordinate of the animation frame

Profile Effect Source Structure

Field
Type
Description

src

string

The URL of the animation image (in APNG format)

Collectible Type

Value
Name
Description

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

Profile Effect Animation Type

Value
Name
Description

0

UNSPECIFIED

The animation type is unspecified

1

PERSISTENT

The animation type is persistent

2

INTERMITTENT

The animation type is intermittent

Example Profile Effect Config

{  "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.

Response Body

Field
Type
Description

entitlement

?entitlement object

The entitlement to which the potions belong to

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.

JSON Params

Field
Type
Description

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.

Response Body

Field
Type
Description

results

array[saved message object]

The list of saved messages

Saved Message Structure

Field
Type
Description

message

?message object

The saved message

save_data

save data object

The save data for the message

Save Data Structure

Field
Type
Description

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.

JSON Params

Field
Type
Description

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.

Response Body

Field
Type
Description

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.

JSON Params

Field
Type
Description

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.