> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # User > Authenticated user profile. `User` is the authenticated user's profile as returned by the SignalWire fabric. A single instance is created and populated automatically when a [`SignalWire`](/docs/browser-sdk/v4/reference/signalwire) client connects and the SAT is validated; applications retrieve it via [`client.user$`](/docs/browser-sdk/v4/reference/signalwire/user\$). The class exposes the user's identity (`id`, `email`, `displayName`, name fields), organizational metadata (`companyName`, `country`, `region`, `timeZone`, `jobTitle`), and the fabric `addresses` available for dialing. `appSettings` carries the display name advertised to other participants and the OAuth-style scopes granted to the current session; `satClaims` exposes any extended capability claims encoded in the token (e.g. a `refresh` scope). `pushNotificationKey` is used by mobile and web-push integrations to register the user for inbound-call notifications. `User` extends `Fetchable` — meaning the profile is populated lazily and [`fetched$`](#fetched\$) emits `true` once the initial fetch completes. There are no mutating methods on this class: the profile is read-only from the SDK's perspective. ## **Extends** * `Fetchable` ## **Constructors** ### Constructor ```ts new User(http): User ``` #### Parameters **`http`** `HTTPRequestController` — required HTTP request controller used for REST calls. --- #### Returns `User` ## **Properties** **`addresses`** `GetAddressResponse[]` — required Fabric addresses associated with this user. --- **`appSettings`** `object` Application-level settings (display name, permission scopes). --- **`appSettings.displayName`** `string` Display name advertised to other participants. --- **`appSettings.scopes`** `string[]` OAuth-style scopes granted to this session. --- **`companyName`** `string` Company name. --- **`country`** `string` Country code. --- **`displayName`** `string` Display name shown to other participants. --- **`email`** `string` — required User email address. --- **`firstName`** `string` First name. --- **`id`** `string` — required Unique user identifier. --- **`jobTitle`** `string` Job title. --- **`lastName`** `string` Last name. --- **`pushNotificationKey`** `string` — required Push notification key for mobile/web push. --- **`region`** `string` Region/state. --- **`satClaims`** `SATClaims` Filtered SAT claims when the token has special capabilities (e.g., refresh scope). See [`SATClaims`](/docs/browser-sdk/v4/reference/interfaces/sat-claims). --- **`timeZone`** `number` Time zone offset. --- #### Inherited from Fetchable **`fetched$`** `Observable` — required Observable that emits `true` once the user profile has been fetched. --- **`fromPath`** `string` — required Origin path or URI captured at construction time, used for routing inbound calls. --- ## **Accessors** #### [destroyed\$](/docs/browser-sdk/v4/reference/user/destroyed\$) Observable that emits when the instance is destroyed ## **Methods** #### [destroy](/docs/browser-sdk/v4/reference/user/destroy) Cleans up subscriptions and subjects owned by this instance. > Authenticated user profile. ## Docs - [destroy](https://signalwire.com/docs/browser-sdk/reference/user/destroy.md): Destroys the instance, clearing timers and releasing all subscriptions. - [destroyed$](https://signalwire.com/docs/browser-sdk/reference/user/destroyed$.md): Observable that emits when the instance is destroyed