Show / Hide Table of Contents

# Class RestUser

Represents a REST-based user.

##### Inheritance

System.Object
RestEntity<System.UInt64>
RestUser
RestGroupUser
RestGuildUser
RestSelfUser
RestWebhookUser

##### Implements

IUser
ISnowflakeEntity
IEntity<System.UInt64>
IMentionable
IPresence
IUpdateable

##### Inherited Members

RestEntity<UInt64>.Id
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()

###### Namespace: Discord.Rest

###### Assembly: Discord.Net.Rest.dll

##### Syntax

    public class RestUser : RestEntity<ulong>, IUser, ISnowflakeEntity, IEntity<ulong>, IMentionable, IPresence, IUpdateable

### Properties

| Improve this Doc View Source

#### ActiveClients

Gets the set of clients where this user is currently active.

##### Declaration

    public virtual IImmutableSet<ClientType> ActiveClients { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Immutable.IImmutableSet<ClientType> |

| Improve this Doc View Source

#### Activity

Gets the activity this user is currently doing.

##### Declaration

    public virtual IActivity Activity { get; }

##### Property Value

Type | Description
--- | ---
IActivity |

| Improve this Doc View Source

#### AvatarId

Gets the identifier of this user's avatar.

##### Declaration

    public string AvatarId { get; }

##### Property Value

Type | Description
--- | ---
System.String |

| Improve this Doc View Source

#### CreatedAt

Gets when the snowflake was created.

##### Declaration

    public DateTimeOffset CreatedAt { get; }

##### Property Value

Type | Description
--- | ---
System.DateTimeOffset | A System.DateTimeOffset representing when the entity was first created.

| Improve this Doc View Source

#### Discriminator

Gets the per-username unique ID for this user.

##### Declaration

    public string Discriminator { get; }

##### Property Value

Type | Description
--- | ---
System.String |

| Improve this Doc View Source

#### DiscriminatorValue

Gets the per-username unique ID for this user.

##### Declaration

    public ushort DiscriminatorValue { get; }

##### Property Value

Type | Description
--- | ---
System.UInt16 |

| Improve this Doc View Source

#### IsBot

Gets a value that indicates whether this user is identified as a bot.

##### Declaration

    public bool IsBot { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | `true` if the user is a bot application; otherwise `false`.

##### Remarks

This property retrieves a value that indicates whether this user is a registered bot application (indicated by the blue BOT tag within the official chat client).

| Improve this Doc View Source

#### IsWebhook

Gets a value that indicates whether this user is a webhook user.

##### Declaration

    public virtual bool IsWebhook { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | `true` if the user is a webhook; otherwise `false`.

| Improve this Doc View Source

#### Mention

Returns a special string used to mention this object.

##### Declaration

    public string Mention { get; }

##### Property Value

Type | Description
--- | ---
System.String | A string that is recognized by Discord as a mention (e.g. <@168693960628371456>).

| Improve this Doc View Source

#### Status

Gets the current status of this user.

##### Declaration

    public virtual UserStatus Status { get; }

##### Property Value

Type | Description
--- | ---
UserStatus |

| Improve this Doc View Source

#### Username

Gets the username for this user.

##### Declaration

    public string Username { get; }

##### Property Value

Type | Description
--- | ---
System.String |

### Methods

| Improve this Doc View Source

#### GetAvatarUrl(ImageFormat, UInt16)

Gets the avatar URL for this user.

##### Declaration

    public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)

##### Parameters

Type | Name | Description
--- | --- | ---
ImageFormat | format | The format to return.
System.UInt16 | size | The size of the image to return in. This can be any power of two between 16 and 2048.

##### Returns

Type | Description
--- | ---
System.String | A string representing the user's avatar URL; `null` if the user does not have an avatar in place.

##### Remarks

This property retrieves a URL for this user's avatar. In event that the user does not have a valid avatar (i.e. their avatar identifier is not set), this property will return `null`. If you wish to retrieve the default avatar for this user, consider using GetDefaultAvatarUrl() (see example).

| Improve this Doc View Source

#### GetDefaultAvatarUrl()

Gets the default avatar URL for this user.

##### Declaration

    public string GetDefaultAvatarUrl()

##### Returns

Type | Description
--- | ---
System.String | A string representing the user's avatar URL.

##### Remarks

This property retrieves a URL for this user's default avatar generated by Discord (Discord logo followed by a random color as its background). This property will always return a value as it is calculated based on the user's DiscriminatorValue (`discriminator % 5`).

| Improve this Doc View Source

#### GetOrCreateDMChannelAsync(RequestOptions)

Returns a direct message channel to this user, or create one if it does not already exist.

##### Declaration

    public Task<RestDMChannel> GetOrCreateDMChannelAsync(RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<RestDMChannel> | A task that represents the asynchronous get operation. The task result contains a rest DM channel where the user is the recipient.

| Improve this Doc View Source

#### ToString()

Gets the Username#Discriminator of the user.

##### Declaration

    public override string ToString()

##### Returns

Type | Description
--- | ---
System.String | A string that resolves to Username#Discriminator of the user.

##### Overrides

System.Object.ToString()
| Improve this Doc View Source

#### UpdateAsync(RequestOptions)

Updates this object's properties with its current state.

##### Declaration

    public virtual Task UpdateAsync(RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
RequestOptions | options |

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task |

### Explicit Interface Implementations

| Improve this Doc View Source

#### IUser.GetOrCreateDMChannelAsync(RequestOptions)

Gets the direct message channel of this user, or create one if it does not already exist.

##### Declaration

    Task<IDMChannel> IUser.GetOrCreateDMChannelAsync(RequestOptions options)

##### Parameters

Type | Name | Description
--- | --- | ---
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<IDMChannel> | A task that represents the asynchronous operation for getting or creating a DM channel. The task result contains the DM channel associated with this user.

##### Remarks

This method is used to obtain or create a channel used to send a direct message.

##### warning

In event that the current user cannot send a message to the target user, a channel can and will still be created by Discord. However, attempting to send a message will yield a HttpException with a 403 as its HttpCode. There are currently no official workarounds by Discord.

### Implements

IUser
ISnowflakeEntity
IEntity<TId>
IMentionable
IPresence
IUpdateable