---
url: /apidocs/user.md
---
## User API

| Endpoint | Method | Description |
|-----|-----|-----|
| [/api/v0/rpc/user.info](#info) | jsonRpc | Info |
| [/api/v0/rpc/user.pluginPermissions](#plugin-permissions) | jsonRpc | Plugin permissions |
| [/api/v0/rpc/user.setSocketRoute](#set-socket-route) | jsonRpc | Set socket route |
| [user:editProfile](#edit-user-profile) | websocket | Edit user profile |
| [user:changeEmail](#change-user-email) | websocket | Change user email |
| [user:changePhone](#change-user-phone) | websocket | Change user phone |
| [user:changePassword](#change-user-password) | websocket | Change user password |
| [user:changeAvatar](#change-user-avatar) | websocket | Change user avatar |
| [user:changeAvatar3D](#change-user-avatar-3-d) | websocket | Change user avatar 3 d |
| [user:getRPMAvatarToken](#get-rpm-avatar-token) | websocket | Get RPM avatar token |
| [user:changeCompanyInfo](#change-user-company-info) | websocket | Change user company info |
| [user:deviceSettings](#device-settings) | websocket | Device settings |
| [user:getTimezone](#get-user-timezone) | websocket | Get user timezone |
| [user:setNetworkState](#set-user-network-state) | websocket | Set user network state |
| [user:setEmailSettings](#set-user-email-settings) | websocket | Set user email settings |
| [user:setNavigationSettings](#set-user-navigation-settings) | websocket | Set user navigation settings |
| [user:setCollisionSettings](#set-user-collision-settings) | websocket | Set user collision settings |
| [user:mergeByEmail](#merge-users-by-email) | websocket | Merge users by email |
| [user:mergeByFacebook](#merge-users-by-facebook) | websocket | Merge users by facebook |
| [user:setUserIsNotNew](#set-user-is-not-new) | websocket | Set user is not new |
| [user:sendUserEmailVerificationToken](#send-user-email-verification-token) | websocket | Send user email verification token |
| [user:getUserParams](#get-user-params) | websocket | Get user params |
| [user:setUserParams](#set-user-params) | websocket | Set user params |
| [user:getLinkedSocialAccounts](#get-social-accounts-linked-to-user) | websocket | Get social accounts linked to user |
| ~~[user:getSocialAccounts](#get-social-accounts-linked-to-user-deprecated)~~ | websocket | Get social accounts linked to user: deprecated |
| [user:unlinkSocialAccount](#unlink-social-account-from-user) | websocket | Unlink social account from user |
| [user:listLinkedPersonaAccounts](#list-linked-persona-accounts) | websocket | List linked persona accounts |
| [user:disable](#disable-user) | websocket | Disable user |
| [user:getDataForSocketSwitch](#get-data-for-socket-switch) | websocket | Get data for socket switch |
| [user:initPubSubChannel](#init-user-pub-sub-channel) | websocket | Init user pub sub channel |
| [user:subscribeToPubSubChannel](#subscribe-to-user-pub-sub-channel) | websocket | Subscribe to user pub sub channel |
| [user:sendToPubSubChannel](#send-to-user-pub-sub-channel) | websocket | Send to user pub sub channel |
| [user:setZAddress](#set-user-z-address) | websocket | Set user z address |
| [user:listZAddresses](#list-user-z-addresses) | websocket | List user z addresses |
| [user:cleanupIdentityCustodyByAdmin](#cleanup-user-identity-custody-by-admin) | websocket | Cleanup user identity custody by admin |
| [user:createBadge](#create-badge) | websocket | Create badge |
| [user:deleteBadge](#delete-badge) | websocket | Delete badge |
| [user:updateBadge](#update-badge) | websocket | Update badge |
| [user:listBadges](#list-badges) | websocket | List badges |
| [user:listBadgesAssignedToUser](#list-badges-assigned-to-user) | websocket | List badges assigned to user |
| [user:update](#user-updated-event) | websocketEvent | User updated event |
| [user:settingsUpdated](#user-settings-updated-event) | websocketEvent | User settings updated event |
| [user:avatarUpdated](#user-avatar-updated-event) | websocketEvent | User avatar updated event |
| [user:linkedToSocialAccount](#on-user-linked-to-social-account) | websocketEvent | On user linked to social account |
| [user:unlinkedFromSocialAccount](#on-user-unlinked-from-social-account) | websocketEvent | On user unlinked from social account |
| [user:publicRoomCountUpdated](#user-public-room-count-updated-event) | websocketEvent | User public room count updated event |
| [user:contactCountUpdated](#user-contact-count-updated-event) | websocketEvent | User contact count updated event |
| [user:newInvitationsCountUpdated](#user-new-invitations-count-updated-event) | websocketEvent | User new invitations count updated event |
| [user:pendingRequestCountUpdated](#user-pending-request-count-updated-event) | websocketEvent | User pending request count updated event |
| [user:newNotificationsCountUpdated](#user-new-notifications-count-updated-event) | websocketEvent | User new notifications count updated event |
| [user:idealMatchCountUpdated](#user-ideal-match-count-updated-event) | websocketEvent | User ideal match count updated event |
| [user:communityCountUpdated](#user-community-count-updated-event) | websocketEvent | User community count updated event |
| [user:followersCountUpdated](#user-followers-count-updated-event) | websocketEvent | User followers count updated event |
| [user:avatar3DChanged](#user-avatar-3-d-changed-event) | websocketEvent | User avatar 3 d changed event |
| [user:socketSwitchEvent](#socket-switch-event) | websocketEvent | Socket switch event |
| [user:onPubSubChannelEvent](#on-user-pub-sub-channel-event) | websocketEvent | On user pub sub channel event |
| [user:setSocketRoute](#set-route-for-user-socket) | websocketEvent | Set route for user socket |

### Info

**Method:** jsonRpc

**HTTP Method:** POST

**Path:** /api/v0/rpc/user.info

**Headers:**

X-Session-Id: sessionToken

**Request:**

**Response:**

### Plugin permissions

**Method:** jsonRpc

**HTTP Method:** POST

**Path:** /api/v0/rpc/user.pluginPermissions

**Description:** Endpoint returns user permissions that are used by plugin page.

**Headers:**

X-Session-Id: sessionToken

X-Network-Id: networkId

**Request:**

**Response:**

### Set socket route

**Method:** jsonRpc

**HTTP Method:** POST

**Path:** /api/v0/rpc/user.setSocketRoute

**Headers:**

X-Session-Id: sessionToken

X-Network-Id: networkId

**Request:**

**Response:**

### Edit user profile

**Method:** websocket

**Endpoint:** user:editProfile

**Request:**

**Response:**

### Change user email

**Method:** websocket

**Endpoint:** user:changeEmail

**Request:**

**Response:**

### Change user phone

**Method:** websocket

**Endpoint:** user:changePhone

**Request:**

**Response:**

### Change user password

**Method:** websocket

**Endpoint:** user:changePassword

**Request:**

**Response:**

### Change user avatar

**Method:** websocket

**Endpoint:** user:changeAvatar

**Request:**

**Response:**

### Change user avatar 3 d

**Method:** websocket

**Endpoint:** user:changeAvatar3D

**Request:**

**Response:**

### Get RPM avatar token

**Method:** websocket

**Endpoint:** user:getRPMAvatarToken

**Request:**

**Response:**

### Change user company info

**Method:** websocket

**Endpoint:** user:changeCompanyInfo

**Request:**

**Response:**

### Device settings

**Method:** websocket

**Endpoint:** user:deviceSettings

**Request:**

**Response:**

### Get user timezone

**Method:** websocket

**Endpoint:** user:getTimezone

**Request:**

**Response:**

### Set user network state

**Method:** websocket

**Endpoint:** user:setNetworkState

**Request:**

**Response:**

### Set user email settings

**Method:** websocket

**Endpoint:** user:setEmailSettings

**Description:** Api sets user email preferences.

If ignoreNewTextchatMessage set to true, user will not receive emails about new textchat messages.

**Request:**

**Response:**

### Set user navigation settings

**Method:** websocket

**Endpoint:** user:setNavigationSettings

**Description:** Api sets user navigation settings.

navigationMode could be one of the following:

* 0 - classic
* 1 - advanced
* 2 - pro

joystickSettings could be one of the following:

* 0 - left
* 1 - right
* 2 - two joysticks

helperButtonAppearance could be one of the following:

* 0 - default (show buttons by now, may be use network settings in future)
* 1 - show
* 2 - hide

**Request:**

**Response:**

### Set user collision settings

**Method:** websocket

**Endpoint:** user:setCollisionSettings

**Request:**

**Response:**

### Merge users by email

**Method:** websocket

**Endpoint:** user:mergeByEmail

**Request:**

**Response:**

### Merge users by facebook

**Method:** websocket

**Endpoint:** user:mergeByFacebook

**Request:**

**Response:**

### Set user is not new

**Method:** websocket

**Endpoint:** user:setUserIsNotNew

**Description:** Client should call this endpoint once user entered application for the first time.

**Request:**

**Response:**

### Send user email verification token

**Method:** websocket

**Endpoint:** user:sendUserEmailVerificationToken

**Request:**

**Response:**

### Get user params

**Method:** websocket

**Endpoint:** user:getUserParams

**Request:**

**Response:**

### Set user params

**Method:** websocket

**Endpoint:** user:setUserParams

**Request:**

**Response:**

### Get social accounts linked to user

**Method:** websocket

**Endpoint:** user:getLinkedSocialAccounts

**Description:** Api returns list of social accounts linked to user.

**Request:**

**Response:**

### Get social accounts linked to user: deprecated

**Method:** websocket

**Endpoint:** user:getSocialAccounts

**DEPRECATED**

**Description:** Api returns list of social accounts connected to user.

**Request:**

**Response:**

### Unlink social account from user

**Method:** websocket

**Endpoint:** user:unlinkSocialAccount

**Description:** Api unlinks social account.

**Request:**

**Response:**

### List linked persona accounts

**Method:** websocket

**Endpoint:** user:listLinkedPersonaAccounts

**Description:** Api returns list of social accounts linked to user.

**Request:**

**Response:**

### Disable user

**Method:** websocket

**Endpoint:** user:disable

**Description:** Api changes user status to non-active. Disabled users cannot log in to the system, and they are ignored during the search.

**Request:**

**Response:**

### Get data for socket switch

**Method:** websocket

**Endpoint:** user:getDataForSocketSwitch

**Description:** API returns the data that is required for a socket switch. It is recommended to create a new socket connection when switching a network or an account (instead of `network:switch`).

If user wants to change a network, api checks if user is allowed in the network.

If user wants to switch a persona account, api creates a new sessionId for the account.

If user wants to switch to a network with a new session, the `requestNewSessionId` parameter should be provided.

**Request:**

**Response:**

### Init user pub sub channel

**Method:** websocket

**Endpoint:** user:initPubSubChannel

**Description:** Api creates channel that could be used by different user sockets to communicate with each other, and subscribes current socket to it.

**Request:**

**Response:**

### Subscribe to user pub sub channel

**Method:** websocket

**Endpoint:** user:subscribeToPubSubChannel

**Description:** Api subscribes socket to channel that could be used by different user sockets to communicate with each other.

**Request:**

**Response:**

### Send to user pub sub channel

**Method:** websocket

**Endpoint:** user:sendToPubSubChannel

**Description:** Api sends data to pub-sub channel. Other user sockets, that are subscribed to the channel, will receive this data.

**Request:**

**Response:**

### Set user z address

**Method:** websocket

**Endpoint:** user:setZAddress

**Request:**

**Response:**

### List user z addresses

**Method:** websocket

**Endpoint:** user:listZAddresses

**Request:**

**Response:**

### Cleanup user identity custody by admin

**Method:** websocket

**Endpoint:** user:cleanupIdentityCustodyByAdmin

**Description:** Resets a user's identity custody state (Verus identity ownership) back to NotSet. Api is available only for system admins, for testing purposes (e.g. re-running Verus login/provisioning flows against the same test account).

**Request:**

**Response:**

### Create badge

**Method:** websocket

**Endpoint:** user:createBadge

**Request:**

**Response:**

### Delete badge

**Method:** websocket

**Endpoint:** user:deleteBadge

**Request:**

**Response:**

### Update badge

**Method:** websocket

**Endpoint:** user:updateBadge

**Request:**

**Response:**

### List badges

**Method:** websocket

**Endpoint:** user:listBadges

**Request:**

**Response:**

### List badges assigned to user

**Method:** websocket

**Endpoint:** user:listBadgesAssignedToUser

**Request:**

**Response:**

### User updated event

**Event:** user:update

**Data:**

### User settings updated event

**Event:** user:settingsUpdated

**Data:**

### User avatar updated event

**Event:** user:avatarUpdated

**Data:**

### On user linked to social account

**Event:** user:linkedToSocialAccount

**Data:**

### On user unlinked from social account

**Event:** user:unlinkedFromSocialAccount

**Data:**

### User public room count updated event

**Event:** user:publicRoomCountUpdated

**Data:**

### User contact count updated event

**Event:** user:contactCountUpdated

**Data:**

### User new invitations count updated event

**Event:** user:newInvitationsCountUpdated

**Data:**

### User pending request count updated event

**Event:** user:pendingRequestCountUpdated

**Data:**

### User new notifications count updated event

**Event:** user:newNotificationsCountUpdated

**Data:**

### User ideal match count updated event

**Event:** user:idealMatchCountUpdated

**Data:**

### User community count updated event

**Event:** user:communityCountUpdated

**Data:**

### User followers count updated event

**Event:** user:followersCountUpdated

**Data:**

### User avatar 3 d changed event

**Event:** user:avatar3DChanged

**Data:**

### Socket switch event

**Event:** user:socketSwitchEvent

**Description:** Api sends event to user sockets with the same sessionId as current socket. Event is being sent when one of users' session sockets decides switch socket in order to change account or network (and receive new sessionId).

**Data:**

### On user pub sub channel event

**Event:** user:onPubSubChannelEvent

**Description:** Api sends event to user sockets subscribed to channel (except initiator socket).

**Data:**

### Set route for user socket

**Event:** user:setSocketRoute

**Description:** Event contains route, that should be used by client to switch context.

**Data:**
