A LaunchDarkly user object.


The LDUser object is currently supported for ease of upgrade. In order to convert an LDUser into a LDSingleKindContext the following changes should be made.

1.) Add a kind to the object. kind: 'user'.

2.) Move custom attributes to the top level of the object.

3.) Move privateAttributeNames to _meta.privateAttributes.

const LDUser: user = {
key: '1234',
privateAttributeNames: ['myAttr']
custom: {
myAttr: 'value'

const LDSingleKindContext: context = {
kind: 'user',
key: '1234',
myAttr: 'value'
_meta: {
privateAttributes: ['myAttr']
interface LDUser {
    anonymous?: boolean;
    avatar?: string;
    country?: string;
    custom?: {
        [key: string]: string | boolean | number | (string | boolean | number)[];
    email?: string;
    firstName?: string;
    ip?: string;
    key?: string;
    lastName?: string;
    name?: string;
    privateAttributeNames?: string[];


anonymous?: boolean

Whether to show the user on the Users page in LaunchDarkly.

avatar?: string

An absolute URL to an avatar image for the user.

country?: string

The country associated with the user.

custom?: {
    [key: string]: string | boolean | number | (string | boolean | number)[];

Any additional attributes associated with the user.

Type declaration

  • [key: string]: string | boolean | number | (string | boolean | number)[]
email?: string

The user's email address.

If an avatar URL is not provided, LaunchDarkly will use Gravatar to try to display an avatar for the user on the Users page.

firstName?: string

The user's first name.

ip?: string

The user's IP address.

key?: string

A unique string identifying a user.

If you omit this property, and also set anonymous to true, the SDK will generate a UUID string and use that as the key; it will attempt to persist that value in local storage if possible so the next anonymous user will get the same key, but if local storage is unavailable then it will generate a new key each time you specify the user.

It is an error to omit the key property if anonymous is not set.

lastName?: string

The user's last name.

name?: string

The user's name.

You can search for users on the User page by name.

privateAttributeNames?: string[]

Specifies a list of attribute names (either built-in or custom) which should be marked as private, and not sent to LaunchDarkly in analytics events. This is in addition to any private attributes designated in the global configuration with LDOptions.privateAttributes or LDOptions.allAttributesPrivate.