<!-- source: docs/api/2_capi/user/index.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user -->

# User

The **User** service, introduced in version 4.3, supports basic user CRUD operations and allows iteration over all users in an app. Note that this service is only accessible via Cloud Code.

### API Summary

#### Create Users
* [SysCreateUserEmailPassword](/api/capi/user/syscreateuseremailpassword) - Create a user with an email identity
* [SysCreateUserUniversalId](/api/capi/user/syscreateuseruniversalid) - Create a user with a univeralId identity
* [SysCreateUserExternalAuth](/api/capi/user/syscreateuserexternalauth) - Create a user with an external auth identity 

#### Retreive Users Info
* [SysGetUserInfo](/api/capi/user/sysgetuserinfo) - Retrieves user information for a single profile ID

##### Delete Users
* [SysDeleteUser](/api/capi/user/sysdeleteuser) - Delete a user

#### Paging
* [SysGetPage](/api/capi/user/sysgetpage) - Get a page of users 
* [SysGetPageOffset](/api/capi/user/sysgetpageoffset) - Get the next/prev page of users 

#### Reset Password
* [SysSendPasswordResetEmailWith](/api/capi/user/syssendpasswordresetemail) - Reset the password associated with the users email login
* [SysSendPasswordResetEmailAdvanced](/api/capi/user/syssendpasswordresetemailadvanced) - Reset the password associated with the users email login
* [SysSendPasswordResetEmailWithExpiry](/api/capi/user/syssendpasswordresetemailwithexpiry) - Reset the password associated with the users email login
* [SysSendPasswordResetEmailAdvancedWithExpiry](/api/capi/user/syssendpasswordresetemailadvancedwithexpiry) - Reset the password associated with the users email login _using a custom email template_
* [SysSendPasswordResetUniversalId](/api/capi/user/syssendpasswordresetuniversalid) - Reset users password
* [SysSendPasswordResetUniversalIdAdvanced](/api/capi/user/syssendpasswordresetuniversalidadvanced) - Reset users password using templates
* [SysSendPasswordResetUniversalIdWithExpiry](/api/capi/user/syssendpasswordresetuniversalidwithexpiry) - Reset the password associated with the users universalId login
* [SysSendPasswordResetUniversalIdAdvancedWithExpiry](/api/capi/user/syssendpasswordresetuniversalidadvancedwithexpiry) - Reset the password associated with the users universalId login _using a custom email template_
* [SysSetPasswordUniversalId](/api/capi/user/syssetpassworduniversalid) - Set the password associated with the universal id of the given profile.

#### Self Service Delete Account
* [SysCreateSelfServiceDeletionUrlForUser](/api/capi/user/syscreateselfservicedeletionurlforuser) - Returns self-service delete account URL that can be used to delete the specified user.


---

<!-- source: docs/api/2_capi/user/syscreateselfservicedeletionurlforuser.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syscreateselfservicedeletionurlforuser -->

# SysCreateSelfServiceDeletionUrlForUser

Returns self-service delete account URL that can be used to delete the specified user.

| Service | Operation |
| ------- | --------- |
| user | SYS_CREATE_SELF_SERVICE_DELETION_URL_FOR_USER |

## Method Parameters

Parameter | Description
--------- | -----------
profileId | The profile ID of the target user for whom the delete account URL is intended.

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var profileId = "a-profile-id";
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysCreateSelfServiceDeletionUrlForUser(profileId);
```

**Raw:**

```r
{
    "service":"user",
    "operation":"SYS_CREATE_SELF_SERVICE_DELETION_URL_FOR_USER",
    "data":{
        "profileId":"a-profile-id"
    }
}
```

<details>
<summary>JSON Response</summary>

```json
{
    "data": {
        "url": "https://api.braincloudservers.com/self-service/delete-account?appId=13229&deletionToken=45b66a3b-84b1-4a81-9d18-ff14d9e97f8d&profileId=93293c42-7a8e-47b4-954e-553916193687"
    },
    "status": 200
}
```

</details>


---

<!-- source: docs/api/2_capi/user/syscreateuseremailpassword.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syscreateuseremailpassword -->

# SysCreateUserEmailPassword

Manually creates a new user for the current app. Note that this API is normally used for in an admin app for pre-creating users. Standard, dynamic, on-the-fly authentication is done via the Authentication service.

| Service | Operation |
| ------- | --------- |
| user | SYS_CREATE_USER_EMAIL_PASSWORD |

## Method Parameters

| Parameter              | Description                                                                               |
| ---------------------- | ----------------------------------------------------------------------------------------- |
| externalId             | The email address of the user                                                             |
| password               | The user's initial password (if the password is null, a random one will be generated)     |
| userName               | The display or contact name of the user (stored in player state)                          |
| notificationTemplateId | If specified, the user will be sent an email confirming that the account has been created |

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysCreateUserEmailPassword(
  "bruce@wayneent.com",   // externalId = email
  "R@b1n3gg",             // password
  "Bats",                 // userName
  "d-eb88215a71bb42e44xb5a35d75fcd6193" );
                          // notificationTemplateId

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": {
        "profileId": "0b53155b-1fc8-4916-xxxx-298379efc67a"
    }
}
```

</details>

<details>
<summary>Common Error Code</summary>

### Status Codes

| Code   | Name                     | Description                                                  |
| ------ | ------------------------ | ------------------------------------------------------------ |
| 550022 | INVALID_PASSWORD_CONTENT | The password doesn't meet the minimum password requirements. |

</details>


---

<!-- source: docs/api/2_capi/user/syscreateuserexternalauth.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syscreateuserexternalauth -->

# SysCreateUserExternalAuth

Manually creates a new user for the current app. Note that this API is normally used for in an admin app for pre-creating users. Standard, dynamic, on-the-fly authentication is done via the Authentication service.

| Service | Operation |
| ------- | --------- |
| user | SYS_CREATE_USER_EXTERNAL_AUTH |

## Method Parameters

| Parameter              | Description                                                                               |
| ---------------------- | ----------------------------------------------------------------------------------------- |
| externalId             | The email address of the user                                                             |
| externalAuthType       | The external auth type code                                                               |
| userName               | The display or contact name of the user (stored in player state)                          |
| contactEmail           | The email address of the user                                                             |
| notificationTemplateId | If specified, the user will be sent an email confirming that the account has been created |

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysCreateUserExternalAuth(
  "bruce1970",   // externalId
  "corpdir",     // externalAuthType
  "R@b1n3gg",    // userName
  "Bats",        // contactEmail
  "d-eb88215a71bb42e44xb5a35d75fcd6193" );
                 // notificationTemplateId

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": {
        "profileId": "0b53155b-1fc8-4916-xxxx-298379efc67a"
    }
}
```

</details>


---

<!-- source: docs/api/2_capi/user/syscreateuseruniversalid.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syscreateuseruniversalid -->

# SysCreateUserUniversalId

Manually creates a new user for the current app. Note that this API is normally used for in an admin app for pre-creating users. Standard, dynamic, on-the-fly authentication is done via the Authentication service.

| Service | Operation |
| ------- | --------- |
| user | SYS_CREATE_USER_UNIVERSAL_ID |

## Method Parameters

| Parameter              | Description                                                                               |
| ---------------------- | ----------------------------------------------------------------------------------------- |
| externalId             | The email address of the user                                                             |
| password               | The user's initial password (if the password is null, a random one will be generated)     |
| userName               | The display or contact name of the user (stored in player state)                          |
| contactEmail           | The email address of the user                                                             |
| notificationTemplateId | If specified, the user will be sent an email confirming that the account has been created |

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysCreateUserUniversalId(
  "bruce1970",          // externalId = universalId
  "R@b1n3gg",           // password
  "Bats",               // user's contact / display name
  "bruce@wayneent.com", // contactEmail
  "d-eb88215a71bb42e44xb5a35d75fcd6193" );
                        // notificationTemplateId

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": {
        "profileId": "0b53155b-1fc8-4916-xxxx-298379efc67a"
    }
}
```

</details>

<details>
<summary>Common Error Code</summary>

### Status Codes

| Code   | Name                     | Description                                                  |
| ------ | ------------------------ | ------------------------------------------------------------ |
| 550022 | INVALID_PASSWORD_CONTENT | The password doesn't meet the minimum password requirements. |

</details>


---

<!-- source: docs/api/2_capi/user/sysdeleteuser.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/sysdeleteuser -->

# SysDeleteUser

Delete user with option to also delete user's children.

| Service | Operation |
| ------- | --------- |
| user | SYS_DELETE_USER |

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var profileId = "a-profiled-id";
var optionsJson = {
    "deleteChildren": true
};
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysDeleteUser(profileId, optionsJson);
```

**Raw:**

```r
{
    "service":"user",
    "operation":"SYS_DELETE_USER",
    "data":{
        "profileId":"a-profiled-id",
        "optionsJson":{
            "deleteChildren":true
        }
    }
}
```

<details>
<summary>JSON Response</summary>

```json
{
    "data": {},
    "status": 200
}
```

</details>

## Method Parameters

| Parameter   | Description                                                                                                                  |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
| profileId   | Profile ID of the user.                                                                                                      |
| optionsJson | Additional options, including 'deleteChildren' flag to also delete children of the user. Defaults to false if not specified. |


---

<!-- source: docs/api/2_capi/user/sysgetpage.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/sysgetpage -->

# SysGetPage

Retrieves first page of users from server based on the specified query context.

_Note that for apps with > 10,000 users, it is recommended that `doCount` be set to false for better performance._

## Searchable fields

The `searchCriteria` (and `sortCriteria`) may only reference fields in the app's allowed user search fields list. By default these are:

`profileId`, `playerId`, `playerName`, `emailAddress`, `memberOf`, plus the logical operators `$and`, `$or` and `$nor`.

Field names must match an entry exactly — any other field is rejected with an `INVALID_WHERE` error.

| Service | Operation |
| ------- | --------- |
| user | SYS_GET_PAGE |

## Method Parameters
Parameter | Description
--------- | -----------
context | A context JSON object describing the pagination, searchCriteria and sortCriteria options

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var context = {
  "pagination": {
    "rowsPerPage": 20,
    "pageNumber": 1,
    "doCount": false
  },
  "searchCriteria": {
    "playerName": {
      "$regex": "^Bat"
    }
  },
  "sortCriteria": {
  }
}

var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysGetPage( context );
if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": {
        "context": "eyJzZWFyY2hDcml0ZXJpYSI6eyJnYW1lSWQiOiIyMTc3NCxxx...",
        "results": {
            "count": 1,
            "page": 1,
            "items": [
                {
                    "profileId": "0b53155b-1fc8-4916-XXXX-298379efc67a",
                    "playerName": "Bats",
                    "countryCode": "CA",
                    "timeZoneOffset": -5,
                    "summaryFriendData": {
                        "favColor": "black"
                    },
                    "emailAddress": "bruce@wayneent.com"
                }
            ],
            "moreAfter": false,
            "moreBefore": false
        }
    }
}
```
</details>


---

<!-- source: docs/api/2_capi/user/sysgetpageoffset.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/sysgetpageoffset -->

# SysGetPageOffset

Retrieves next/prev page of users from server based on the specified query context.

| Service | Operation |
| ------- | --------- |
| user | SYS_GET_PAGE_OFFSET |

## Method Parameters
Parameter | Description
--------- | -----------
context | A context JSON object describing the pagination, searchCriteria and sortCriteria options
pageOffset | +1 for next page, -1 for previous page

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var context = "eyJzZWFyY2hDcml0ZXJpYSI6eyJnYW1lSWQiOiIyMTc3NCxxx...";

var userProxy = bridge.getUserServiceProxy();

// Use context from previous sysGetPage calls
var context = getPageResults.data.context;

// +1 to go forward a page, -1 to go back
var postResult = userProxy.sysGetPageOffset( context, 1);
if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": {
        "context": "eyJzZWFyY2hDcml0ZXJpYSI6eyJnYW1lSWQiOiIyMTc3NCxxx...",
        "results": {
            "count": 2,
            "page": 2,
            "items": [
                {
                    "profileId": "0b53155b-1fc8-4916-XXXX-298379efc67a",
                    "playerName": "Bats",
                    "countryCode": "CA",
                    "timeZoneOffset": -5,
                    "summaryFriendData": {
                        "favColor": "black"
                    },
                    "emailAddress": "bruce@wayneent.com"
                }
            ],
            "moreAfter": false,
            "moreBefore": true
        }
    }
}
```
</details>


---

<!-- source: docs/api/2_capi/user/sysgetuserexport.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/sysgetuserexport -->

# SysGetUserExport

Exports user information for a single profile ID.

| Service | Operation |
| ------- | --------- |
| user | SYS_GET_USER_EXPORT |

## Method Parameters

| Parameter   | Description                                                                                                                                                                                                                                                                                                                                                  |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| profileId   | Profile ID of the user                                                                                                                                                                                                                                                                                                                                       |
| optionsJson | Export options as JSON object, `includeEntities` field is required, the `customEntities` field is optional (with `include` and `exclude` options, if `include` specified - only include entities from the owned custom entities specified, if `exclude` specified - included all owned custom entities for this user, except for the specified collections.) |

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var profileId = "82cbbbf2-ee44-4279-b5a0-3e9bf04edf25";
var optionsJson = {
      "includeEntities": true,
      "customEntities": {
        "exclude": ["playerBackups"]
      }
    };
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysGetUserExport(profileId, optionsJson);
if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
}
  "service": "user",
  "operation": "SYS_GET_USER_EXPORT",
  "data": {
    "profileId" : "a-profiled-id",
    "optionsJson": {
      "includeEntities": true,
      "customEntities": {
        "exclude": ["playerBackups"]
      }
    }
  }
}
```

<details>
<summary>JSON Response</summary>

```json
{
    "data": {
        "82cbbbf2-ee44-4279-b5a0-3e9bf04edf25": [
            {
                "appEmailAccounts": [
                    {
                        "emailAddress": "jasonbitheads@gmail.com"
                    }
                ],
                "childEntities": [
                    {
                        "entityId": "77d2e40d-1807-4ebe-bff3-a77a4067e632",
                        "entityType": "address",
                        "version": 1,
                        "data": {
                            "street": "1309 Carling"
                        },
                        "acl": {
                            "other": 0
                        },
                        "createdAt": 1623785645742,
                        "updatedAt": 1623785645742
                    },
                    {
                        "entityId": "3abe124b-2652-4c1c-96b9-f36b39415e09",
                        "entityType": "address1",
                        "version": 1,
                        "data": {
                            "street": "1310 Carling"
                        },
                        "acl": {
                            "other": 0
                        },
                        "createdAt": 1623785660029,
                        "updatedAt": 1623785660029
                    }
                ],
                "credentials": [
                    {
                        "externalId": "jasonbitheads@gmail.com",
                        "authenticationType": "Email",
                        "authSubType": ""
                    }
                ],
                "groups": {
                    "requested": [],
                    "invited": [],
                    "groups": []
                },
                "leaderboardScores": [
                    {
                        "leaderboardId": "aLeaderboardId",
                        "versionId": 31,
                        "score": 10,
                        "data": {
                            "nickname": "batman"
                        },
                        "createdAt": 1634748477272,
                        "updatedAt": 1634748477272
                    },
                    {
                        "leaderboardId": "aLeaderboardId11",
                        "versionId": 31,
                        "score": 10,
                        "data": {
                            "nickname": "batman"
                        },
                        "createdAt": 1634748537457,
                        "updatedAt": 1634748537457
                    }
                ],
                "playerCurrency": {
                    "createdAt": 1623785637325,
                    "updatedAt": 1623785637325,
                    "syncTimestamp": 1623785637325,
                    "items": {}
                },
                "playerProfile": [
                    {
                        "playerName": "",
                        "pictureUrl": null,
                        "platforms": ["IOS"],
                        "home": null,
                        "countryCode": "CA",
                        "languageCode": "en",
                        "timeZoneOffset": -5,
                        "createdAt": 1623785637315,
                        "updatedAt": 1623785637337,
                        "amountSpent": 0,
                        "refundCount": 0,
                        "vcClaimed": 0,
                        "vcPurchased": 0,
                        "summaryFriendData": null,
                        "isTester": false,
                        "ab_testing_id": 95,
                        "loginCount": 1,
                        "lastLogin": 1623785637323,
                        "previousLogin": null,
                        "randomAttribute": 0.3492390588647414,
                        "playerRating": 0,
                        "shieldExpiry": 0,
                        "matchesPlayed": 0,
                        "lastMatch": 0,
                        "activeSessions": ["rgk8kmpguqquakojqmvsh6hco6"],
                        "matchAttackExpiry": null,
                        "matchEnabled": false,
                        "attributes": {},
                        "automatedPromotions": [],
                        "friendProfileIds": [],
                        "emailAddress": "jasonbitheads@gmail.com"
                    }
                ],
                "playerStatistics": {
                    "syncTimestamp": 1623785637334,
                    "statistics": {},
                    "experienceLevel": 0,
                    "experiencePoints": 0,
                    "milestonesStatus": {},
                    "questsStatus": {},
                    "playerAchievements": []
                }
            }
        ]
    },
    "status": 200
}
```

</details>


---

<!-- source: docs/api/2_capi/user/sysgetuserinfo.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/sysgetuserinfo -->

# SysGetUserInfo

Retrieves user information for a single profile ID.

| Service | Operation |
| ------- | --------- |
| user | SYS_GET_USER_INFO |

## Method Parameters
Parameter | Description
--------- | -----------
profileId | Profile ID of the user.

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysGetUserInfo(
  "d296efe9-e5bf-42d1-95ec-fea0527d8276"   // profileId
);   

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "data": {
        "emailAddress": "someemail@somedomain.com",
        "playerName": "email guest1",
        "profileId": "d296efe9-e5bf-42d1-95ec-fea0527d8276",
        "countryCode": "US",
        "timeZoneOffset": -4,
        "summaryFriendData": null
    },
    "status": 200
}
```
</details>


---

<!-- source: docs/api/2_capi/user/syssendpasswordresetemail.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syssendpasswordresetemail -->

# SysSendPasswordResetEmail

Triggers the sending of a password reset email to the specified user. Note that the user must have an email identity attached to their profile.

| Service | Operation |
| ------- | --------- |
| user | SYS_SEND_PASSWORD_RESET_EMAIL |

## Method Parameters
Parameter | Description
--------- | -----------
profileId | The profileId of the user to send the password reset email to

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysSendPasswordResetEmail(
  "aaa-bbb-ccc-ddd"    // profileId
);

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": null
}
```
</details>


---

<!-- source: docs/api/2_capi/user/syssendpasswordresetemailadvanced.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syssendpasswordresetemailadvanced -->

# SysSendPasswordResetEmailAdvanced

Reset users password using templates.

| Service | Operation |
| ------- | --------- |
| user | SYS_SEND_PASSWORD_RESET_EMAIL_ADVANCED |

## Method Parameters
Parameter | Description
--------- | -----------
profileId | Profile Id of the target user to reset password
serviceParams | Set of parameters dependant on the mail service configured

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var serviceParams = {
  "templateId": "template-id-guid",
  "dynamicData": {
    "aKey": "aValue"
  },
  "categories": [
    "category1",
    "category2"
  ]  
};

var postResult = userProxy.sysSendPasswordResetEmailAdvanced(
  "aaa-bbb-ccc-ddd",    // profileId
  serviceParams);       // template Id and any subst parameters

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": null
}
```
</details>


---

<!-- source: docs/api/2_capi/user/syssendpasswordresetemailadvancedwithexpiry.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syssendpasswordresetemailadvancedwithexpiry -->

# SysSendPasswordResetEmailAdvancedWithExpiry

Triggers the sending of a password reset email to the specified user - but allows the dev to override the email template that will be used. _Note that the user must have an email identity attached to their profile._

Example serviceParams (for Sendgrid dynamic templates):
```
{
  "templateId": "template-id-guid",
  "dynamicData": {
    "aKey": "aValue"
  },
  "categories": [
    "category1",
    "category2"
  ]
}
```

| Service | Operation |
| ------- | --------- |
| user | SYS_SEND_PASSWORD_RESET_EMAIL_ADVANCED_WITH_EXPIRY |

## Method Parameters
Parameter | Description
--------- | -----------
profileId | The profileId of the user to send the password reset email to
tokenTtlInMinutes | The time-to-live for the password reset url, in minutes
serviceParams | The service-specific email paramaters

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var tokenTtlInMinutes = 1440;

var serviceParams = {
  "templateId": "template-id-guid",
  "dynamicData": {
    "aKey": "aValue"
  },
  "categories": [
    "category1",
    "category2"
  ]  
};

var postResult = userProxy.sysSendPasswordResetEmailAdvancedWithExpiry(
  "aaa-bbb-ccc-ddd",    // profileId
  tokenTtlInMinutes,    // Number of minutes before the reset URL expires 
  serviceParams);       // template Id and any subst parameters

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": null
}
```
</details>


---

<!-- source: docs/api/2_capi/user/syssendpasswordresetemailwithexpiry.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syssendpasswordresetemailwithexpiry -->

# SysSendPasswordResetEmailWithExpiry

Triggers the sending of a password reset email to the specified user. Note that the user must have an email identity attached to their profile.

| Service | Operation |
| ------- | --------- |
| user | SYS_SEND_PASSWORD_RESET_EMAIL_WITH_EXPIRY |

## Method Parameters
Parameter | Description
--------- | -----------
profileId | The profileId of the user to send the password reset email to
tokenTtlInMinutes | The time-to-live for the password reset url, in minutes.

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysSendPasswordResetEmailWithExpiry(
  "aaa-bbb-ccc-ddd",    // profileId + reset time in minutes
  1440 );               //Number of minutes before the reset URL expires 

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": null
}
```
</details>


---

<!-- source: docs/api/2_capi/user/syssendpasswordresetuniversalid.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syssendpasswordresetuniversalid -->

# SysSendPasswordResetUniversalId

Reset users password.

| Service | Operation |
| ------- | --------- |
| user | SYS_SEND_PASSWORD_RESET_UNIVERSAL_ID |

## Method Parameters
Parameter | Description
--------- | -----------
profileId | The universal Id of the target user to reset password

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysSendPasswordResetUniversalId(
  "aaa-bbb-ccc-ddd"    // profileId
);

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": null
}
```
</details>


---

<!-- source: docs/api/2_capi/user/syssendpasswordresetuniversalidadvanced.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syssendpasswordresetuniversalidadvanced -->

# SysSendPasswordResetUniversalIdAdvanced

Reset users password using templates.

| Service | Operation |
| ------- | --------- |
| user | SYS_SEND_PASSWORD_RESET_UNIVERSAL_ID_ADVANCED |

## Method Parameters
Parameter | Description
--------- | -----------
profileId | The profileId of the user to send the password reset email to
serviceParams | Set of parameters dependant on the mail service configured

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var serviceParams = {
  "templateId": "template-id-guid",
  "dynamicData": {
    "aKey": "aValue"
  },
  "categories": [
    "category1",
    "category2"
  ]  
}

var postResult = userProxy.sysSendPasswordResetUniversalIdAdvanced(
  "aaa-bbb-ccc-ddd",    // profileId
  serviceParams);       // template Id and any subst parameters
  
      

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": null
}
```
</details>


---

<!-- source: docs/api/2_capi/user/syssendpasswordresetuniversalidadvancedwithexpiry.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syssendpasswordresetuniversalidadvancedwithexpiry -->

# SysSendPasswordResetUniversalIdAdvancedWithExpiry

Triggers the sending of a password reset email to the specified user - but allows the dev to override the email template that will be used. _Note that the user must have a universalId identity attached to their profile, and an email address in their contact info._
_

Example serviceParams (for Sendgrid dynamic templates):
```
{
  "templateId": "template-id-guid",
  "dynamicData": {
    "aKey": "aValue"
  },
  "categories": [
    "category1",
    "category2"
  ]
}
```

| Service | Operation |
| ------- | --------- |
| user | SYS_SEND_PASSWORD_RESET_UNIVERSAL_ID_ADVANCED_WITH_EXPIRY |

## Method Parameters
Parameter | Description
--------- | -----------
profileId | The profileId of the user to send the password reset email to
serviceParams | The service-specific email paramaters
tokenTtlInMinutes | The time-to-live for the password reset url, in minutes.

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var serviceParams = {
  "templateId": "template-id-guid",
  "dynamicData": {
    "aKey": "aValue"
  },
  "categories": [
    "category1",
    "category2"
  ]  
}

var postResult = userProxy.sysSendPasswordResetUniversalIdAdvancedWithExpiry(
  "aaa-bbb-ccc-ddd",    // profileId
  1440,                 // TTL of the reset url
  serviceParams);       // template Id and any subst parameters
  
      

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": null
}
```
</details>


---

<!-- source: docs/api/2_capi/user/syssendpasswordresetuniversalidwithexpiry.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syssendpasswordresetuniversalidwithexpiry -->

# SysSendPasswordResetUniversalIdWithExpiry

Triggers the sending of a password reset email to the specified user. Note that the user must have a universalId identity attached to their profile, and an email address in their contact info.

| Service | Operation |
| ------- | --------- |
| user | SYS_SEND_PASSWORD_RESET_UNIVERSAL_ID_WITH_EXPIRY |

## Method Parameters
Parameter | Description
--------- | -----------
profileId | The profileId of the user to send the password reset email to
tokenTtlInMinutes | The time-to-live for the password reset url, in minutes.

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysSendPasswordResetUniversalIdWithExpiry(
  "aaa-bbb-ccc-ddd",    // profileId
  1440 );               // Number of minutes before the reset URL expires 

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": null
}
```
</details>


---

<!-- source: docs/api/2_capi/user/syssetpassworduniversalid.md -->
<!-- url: https://docs.braincloudservers.com/api/capi/user/syssetpassworduniversalid -->

# SysSetPasswordUniversalId

Set the password associated with the universal id of the given profile.

| Service | Operation |
| ------- | --------- |
| user | SYS_SET_PASSWORD_UNIVERSAL_ID |

## Method Parameters
Parameter | Description
--------- | -----------
profileId | Profile ID of the target user to set password
password | New password value

## Usage

**C#:**

```csharp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**C++:**

```cpp
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Obj-C:**

```objectivec
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Java:**

```java
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**JavaScript:**

```javascript
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Dart:**

```dart
// Cloud Code only. To view example, switch to the Cloud Code tab
```

**Roblox:**

```lua
-- N/A
```

**GDScript:**

```gdscript
N/A
```

**Lua:**

```lua
-- Cloud Code only. To view example, switch to the Cloud Code tab
```

**Cloud Code:**

```cfscript
var userProxy = bridge.getUserServiceProxy();

var postResult = userProxy.sysSetPasswordUniversalId(
  "aaa-bbb-ccc-ddd",  // profileId
  "a-password"  // new password
);

if (postResult.status == 200) {
    // Success!
}
```

**Raw:**

```r
// Cloud Code only. To view example, switch to the Cloud Code tab
```

<details>
<summary>JSON Response</summary>

```json
{
    "status": 200,
    "data": null
}
```
</details>

<details>
<summary>Common Error Code</summary>

### Status Codes
Code | Name | Description
---- | ---- | -----------
550022 | INVALID_PASSWORD_CONTENT | The password doesn't meet the minimum password requirements.

</details>


---

<!-- source: docs/api/4_s2s/user/index.md -->
<!-- url: https://docs.braincloudservers.com/api/s2s/user -->

# User

The **User** service, introduced in version 4.3, supports basic user CRUD operations and allows iteration over all users in an app. Note that this service is only accessible via Cloud Code.

### API Summary

#### Create Users
* [SysCreateUserEmailPassword](/api/capi/user/syscreateuseremailpassword) - Create a user with an email identity
* [SysCreateUserUniversalId](/api/capi/user/syscreateuseruniversalid) - Create a user with a univeralId identity
* [SysCreateUserExternalAuth](/api/capi/user/syscreateuserexternalauth) - Create a user with an external auth identity 

#### Retreive Users Info
* [SysGetUserInfo](/api/capi/user/sysgetuserinfo) - Retrieves user information for a single profile ID

##### Delete Users
* [SysDeleteUser](/api/capi/user/sysdeleteuser) - Delete a user

#### Paging
* [SysGetPage](/api/capi/user/sysgetpage) - Get a page of users 
* [SysGetPageOffset](/api/capi/user/sysgetpageoffset) - Get the next/prev page of users 

#### Reset Password
* [SysSendPasswordResetEmailWith](/api/capi/user/syssendpasswordresetemail) - Reset the password associated with the users email login
* [SysSendPasswordResetEmailAdvanced](/api/capi/user/syssendpasswordresetemailadvanced) - Reset the password associated with the users email login
* [SysSendPasswordResetEmailWithExpiry](/api/capi/user/syssendpasswordresetemailwithexpiry) - Reset the password associated with the users email login
* [SysSendPasswordResetEmailAdvancedWithExpiry](/api/capi/user/syssendpasswordresetemailadvancedwithexpiry) - Reset the password associated with the users email login _using a custom email template_
* [SysSendPasswordResetUniversalId](/api/capi/user/syssendpasswordresetuniversalid) - Reset users password
* [SysSendPasswordResetUniversalIdAdvanced](/api/capi/user/syssendpasswordresetuniversalidadvanced) - Reset users password using templates
* [SysSendPasswordResetUniversalIdWithExpiry](/api/capi/user/syssendpasswordresetuniversalidwithexpiry) - Reset the password associated with the users universalId login
* [SysSendPasswordResetUniversalIdAdvancedWithExpiry](/api/capi/user/syssendpasswordresetuniversalidadvancedwithexpiry) - Reset the password associated with the users universalId login _using a custom email template_
* [SysSetPasswordUniversalId](/api/capi/user/syssetpassworduniversalid) - Set the password associated with the universal id of the given profile.

#### Self Service Delete Account
* [SysCreateSelfServiceDeletionUrlForUser](/api/capi/user/syscreateselfservicedeletionurlforuser) - Returns self-service delete account URL that can be used to delete the specified user.

> **Tip:** All the client APIs that the names beigin with <strong>"Sys"</strong> <em>are</em> also available to S2S.
> For the usages of the S2S user APIs (if they are not listed at this section),
> refer to brainCloud client [user](/api/capi/user) APIs.
