Users Resource

Users in Discord are generally considered the base entity. Users can spawn across the entire platform, be members of guilds, participate in text and voice chat, and much more. Users are separated by a distinction of "bot" vs "normal." Although they are similar, bot users are automated users that are "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.

Avatar Data

Avatar data is a Data URI scheme that supports JPG, GIF, and PNG formats. An example Data URI format is:
Ensure you use the proper header type (image/jpeg, image/png, image/gif) that matches the image data being provided.

Usernames and Nicknames

Discord enforces the following restrictions for usernames and nicknames:
  1. Names can contain most valid unicode characters. We limit some zero-width and non-rendering characters.
  2. Names must be between 2 and 32 characters long.
  3. Names cannot contain the following substrings: '@', '#', ':', '```'.
  4. Names cannot be: 'discordtag', 'everyone', 'here'.
  5. Names are sanitized and trimmed of leading, trailing, and excessive internal whitespace.
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.

User Object

User Structure
FieldTypeDescriptionRequired OAuth2 Scope
idsnowflakethe user's ididentify
usernamestringthe user's username, not unique across the platformidentify
discriminatorstringthe user's 4-digit discord-tagidentify
avatar?stringthe user's avatar hashidentify
bot?boolwhether the user belongs to an OAuth2 applicationidentify
mfa_enabled?boolwhether the user has two factor enabled on their accountidentify
verified?boolwhether the email on this account has been verifiedemail
email?stringthe user's emailemail
Example User
    "id": "80351110224678912",
    "username": "Nelly",
    "discriminator": "1337",
    "avatar": "8342729096ea3675442027381ff50dfe",
    "verified": true,
    "email": ""

Connection Object

The connection object that the user has attached.
Connection Structure
idstringid of the connection account
namestringthe username of the connection account
typestringthe service of the connection (twitch, youtube)
revokedboolwhether the connection is revoked
integrationsarrayan array of partial server integrations

Get Current User

Returns the user object of the requester's account. For OAuth2, this requires the identify scope, which will return the object without an email, and optionally the email scope, which returns the object with an email.

Get User

Returns a user object for a given user ID.

Modify Current User

Modify the requester's user account settings. Returns a user object on success.
JSON Params
usernamestringusers username, if changed may cause the users discriminator to be randomized.
avataravatar dataif passed, modifies the user's avatar

Get Current User Guilds

Returns a list of partial guild objects the current user is a member of. Requires the guilds OAuth2 scope.
Example Partial Guild
    "id": "80351110224678912",
    "name": "1337 Krew",
    "icon": "8342729096ea3675442027381ff50dfe",
    "owner": true,
    "permissions": 36953089
This endpoint returns 100 guilds by default, which is the maximum number of guilds a non-bot user can join. Therefore, pagination is not needed for integrations that need to get a list of users' guilds.
Query String Params
beforesnowflakeget guilds before this guild IDfalseabsent
aftersnowflakeget guilds after this guild IDfalseabsent
limitintegermax number of guilds to return (1-100)false100

Leave Guild

Leave a guild. Returns a 204 empty response on success.

Get User DMs

Returns a list of DM channel objects.

Create DM

Create a new DM channel with a user. Returns a DM channel object.
JSON Params
recipient_idsnowflakethe recipient to open a DM channel with

Create Group DM

Create a new group DM channel with multiple users. Returns a DM channel object.
This endpoint is limited to 10 active group DMs.
JSON Params
access_tokensarray of stringsaccess tokens of users that have granted your app the gdm.join scope
nicksdicta dictionary of user ids to their respective nicknames

Get User Connections

Returns a list of connection objects. Requires the connections OAuth2 scope.