Users

Apply a verified email change

Applies a previously verified email_token to the current user's account. Requires sudo mode verification (password for users without MFA, MFA proof for users with MFA). Returns the updated private user object. This is a dedicated alternative to PATCH /users/@me that cannot accidentally drag in unrelated profile edits.

post/users/@me/email-change/apply

Request body

email_tokenstring required

Email change token returned from verify-new

passwordstring
mfa_method'totp' | 'webauthn'

MFA method to use for verification

mfa_codestring

MFA verification code from an authenticator app

webauthn_challengestring

WebAuthn challenge string

Response

Success

idstring snowflake required
usernamestring required

The username of the user, not unique across the platform

discriminatorstring required

The four-digit discriminator tag of the user

global_namestring nullable required

The display name of the user, if set

avatarstring nullable required

The hash of the user avatar image

avatar_colorinteger required
botboolean

Whether the user is a bot account

systemboolean

Whether the user is an official system user

flagsinteger required

The public flags on the user account

mention_flags0 | 1 | 2

Reply mention preference

is_staffboolean required

Whether the user has staff permissions

aclsstring[] required

Access control list entries for the user

traitsstring[] required

Special traits assigned to the user account

emailstring nullable required

The email address associated with the account

email_bouncedboolean

Whether the current email address is marked as bounced by the mail provider

phonestring nullable

Always null. Retained for old-client backward compatibility — phone numbers are no longer stored on the user record.

has_verified_phoneboolean required

Whether this account has completed phone verification

biostring nullable required

The user biography text

pronounsstring nullable required

The preferred pronouns of the user

accent_colorinteger required
timezonestring nullable

The IANA timezone identifier saved by the user. Omitted unless the user has staff access.

timezone_privacy_flagsinteger

Bitfield controlling who can see the profile timezone

bannerstring nullable required

The hash of the user profile banner image

banner_colorinteger required
mfa_enabledboolean required

Whether multi-factor authentication is enabled

authenticator_typesUserAuthenticatorTypes[]

The types of authenticators configured for MFA

verifiedboolean required

Whether the email address has been verified

premium_type0 | 1 | 2 required

Premium subscription type

premium_sincestring nullable required

ISO8601 timestamp of when premium was first activated

premium_untilstring nullable required

ISO8601 timestamp of when premium access ends, including stacked gift time

premium_will_cancelboolean required

Whether premium is set to cancel at the end of the billing period

premium_billing_cyclestring nullable required

The billing cycle for the premium subscription

premium_lifetime_sequenceinteger required
premium_grace_ends_atstring nullable required

ISO8601 timestamp at which the post-cancel grace period ends. Set when the subscription is fully canceled in Stripe; perks remain active and the original premium_since is restored on resubscribe until this timestamp passes. Null when not in grace.

premium_discriminatorboolean required

Whether the user selected a premium-only discriminator that will be rerolled when non-lifetime premium access ends

premium_badge_hiddenboolean required

Whether the premium badge is hidden on the profile

premium_badge_maskedboolean required

Whether the premium badge shows a masked appearance

premium_badge_timestamp_hiddenboolean required

Whether the premium start timestamp is hidden

premium_badge_sequence_hiddenboolean required

Whether the lifetime sequence number is hidden

premium_purchase_disabledboolean required

Whether premium purchases are disabled for this account

premium_enabled_overrideboolean required

Whether premium features are enabled via override

premium_perks_disabledboolean required

Whether premium perks are temporarily disabled for this account

force_inbound_phone_verificationboolean

Whether this account is forced through the inbound (expensive-destination) phone verification flow regardless of prefix, for debugging

password_last_changed_atstring nullable required

ISO8601 timestamp of the last password change

last_voice_activity_sharing_change_atstring nullable required

ISO8601 timestamp of the last bulk voice-activity-sharing change. Drives the 24-hour cooldown for re-toggling the Active Now sharing default.

required_actionsstring[] required

Actions the user must complete before full access

nsfw_allowedboolean required

Whether the user is allowed to view NSFW content

has_dismissed_premium_onboardingboolean required

Whether the user has dismissed the premium onboarding flow

has_ever_purchasedboolean required

Whether the user has ever made a purchase

has_unread_gift_inventoryboolean required

Whether there are unread items in the gift inventory

unread_gift_inventory_countinteger required
age_verified_adultboolean

Whether the user has verified their age as an adult via credit card verification

terms_agreed_atstring nullable required

ISO8601 timestamp of when the user last agreed to the terms of service

privacy_agreed_atstring nullable required

ISO8601 timestamp of when the user last agreed to the privacy policy

Changes