Skip to content
Last updated

PERS SDK - v2.3.26 / Exports / UserApi

Class: UserApi

Platform-Agnostic User API Client

Handles user operations using the PERS backend RESTful API. Updated to use new /users endpoints with enhanced security and consistency. Maintains framework UserApiService method compatibility.

Table of contents

Constructors

Methods

Constructors

constructor

new UserApi(apiClient): UserApi

Parameters

NameType
apiClientPersApiClient

Returns

UserApi

Defined in

user/api/user-api.ts:24

Methods

getAllUsersPublicProfiles

getAllUsersPublicProfiles(filter?, options?): Promise<PaginatedResponseDTO<UserPublicProfileDTO>>

PUBLIC: Get all users public profiles with optional filtering Uses new RESTful /users/public endpoint

Parameters

NameTypeDefault value
filternull | { key: string ; value: string }null
options?PaginationOptionsundefined

Returns

Promise<PaginatedResponseDTO<UserPublicProfileDTO>>

Defined in

user/api/user-api.ts:36


getPublicProfileById

getPublicProfileById(id): Promise<UserPublicProfileDTO>

PUBLIC: Get a single user's public profile by ID Uses RESTful /users/public/:id endpoint

Parameters

NameType
idstring

Returns

Promise<UserPublicProfileDTO>

Defined in

user/api/user-api.ts:65


getRemoteUser

getRemoteUser(options?): Promise<UserDTO>

AUTH: Get current authenticated user Uses new RESTful /users/me endpoint

Parameters

NameTypeDescription
options?UserQueryParamsQuery options. Use include to specify relations: 'status' (user status types), 'balances' (token balances)

Returns

Promise<UserDTO>

Defined in

user/api/user-api.ts:79


updateRemoteUser

updateRemoteUser(updateRequest): Promise<UserDTO>

AUTH: Update current authenticated user Uses new RESTful /users/me endpoint

Parameters

NameType
updateRequestUserCreateRequestDTO

Returns

Promise<UserDTO>

Defined in

user/api/user-api.ts:91


createOrUpdateUser

createOrUpdateUser(userData): Promise<UserDTO>

BUSINESS/ADMIN: Create or update user account

Creates a new user or updates an existing one.

  • Business auth: Can create/update single users (requires canManageUsers permission)
  • Admin auth: Can create/update single users or bulk operations

Parameters

NameTypeDescription
userDataUserCreateRequestDTOUser data for creation/update

Returns

Promise<UserDTO>

Created or updated user

Defined in

user/api/user-api.ts:109


createOrUpdateUsers

createOrUpdateUsers(users): Promise<UserDTO[]>

ADMIN: Bulk create or update users

Creates or updates multiple users in a single operation. Requires admin authentication - business auth cannot perform bulk operations.

Parameters

NameTypeDescription
usersUserCreateRequestDTO[]Array of user data for creation/update

Returns

Promise<UserDTO[]>

Array of created/updated users

Defined in

user/api/user-api.ts:122


getAllRemoteUsers

getAllRemoteUsers(options?, search?): Promise<PaginatedResponseDTO<UserDTO>>

ADMIN: Get all remote users with query parameters Uses new RESTful /users endpoint with role-based access Note: Admin users get full data, non-admin users get public profiles only

Parameters

NameTypeDescription
options?PaginationOptionsPagination options (page, limit, sortBy, sortOrder)
search?stringOptional search query to filter users

Returns

Promise<PaginatedResponseDTO<UserDTO>>

Example

// Get users sorted by email
const users = await sdk.users.getAllUsers({ 
  page: 1, 
  limit: 10, 
  sortBy: 'email', 
  sortOrder: SortOrder.ASC 
});

// Search for users
const searchResults = await sdk.users.getAllUsers({ page: 1, limit: 10 }, 'john');

Defined in

user/api/user-api.ts:148


updateUserAsAdmin

updateUserAsAdmin(id, userData): Promise<UserDTO>

ADMIN: Update user as admin Uses new RESTful /users/{id} endpoint

Parameters

NameType
idstring
userDataUserCreateRequestDTO

Returns

Promise<UserDTO>

Defined in

user/api/user-api.ts:162


setUserActiveStatus

setUserActiveStatus(userId, isActive?): Promise<UserDTO>

ADMIN: Set or toggle user active status Uses new consistent /users/{id}/status endpoint Enhanced: Follows RESTful status management pattern across all domains

Parameters

NameTypeDescription
userIdstringUser ID
isActive?booleanOptional explicit status. If provided, sets to this value. If omitted, toggles current status.

Returns

Promise<UserDTO>

Example

// Explicit set
await sdk.users.setUserActiveStatus('user-123', true);   // Activate
await sdk.users.setUserActiveStatus('user-123', false);  // Deactivate

// Toggle (current behavior)
await sdk.users.setUserActiveStatus('user-123');  // Flips current status

Defined in

user/api/user-api.ts:184


getUserByUniqueIdentifier

getUserByUniqueIdentifier(id, options?): Promise<UserDTO>

ADMIN: Get user by unique identifier Uses new RESTful /users/{id} endpoint

Parameters

NameTypeDescription
idstringUser unique identifier (id, email, externalId, accountAddress, etc.)
options?UserQueryParamsQuery options. Use include to specify relations: 'status' (user status types), 'balances' (token balances)

Returns

Promise<UserDTO>

Defined in

user/api/user-api.ts:196


deleteUser

deleteUser(identifier): Promise<{ success: boolean ; message: string }>

ADMIN: Delete user by identifier (soft delete) Uses RESTful /users/{identifier} DELETE endpoint

Soft deletes a user. The user data is retained for 30 days before GDPR anonymization. Use restoreUser() to restore within the grace period.

Parameters

NameTypeDescription
identifierstringUser unique identifier (id, email, externalId, accountAddress, etc.)

Returns

Promise<{ success: boolean ; message: string }>

Promise resolving to success status and message

Defined in

user/api/user-api.ts:214


restoreUser

restoreUser(identifier): Promise<UserDTO>

ADMIN: Restore deleted user by identifier Uses RESTful /users/{identifier}/restore POST endpoint

Restores a soft-deleted user within the 30-day grace period. After GDPR anonymization (30 days), restoration is not possible.

Parameters

NameTypeDescription
identifierstringUser unique identifier (id, email, externalId, accountAddress, etc.)

Returns

Promise<UserDTO>

Promise resolving to restored user data

Defined in

user/api/user-api.ts:228


exportCSV

exportCSV(options?): Promise<Blob>

ADMIN: Export users to CSV

Returns a CSV file with user data for the tenant. Supports date range filtering.

Parameters

NameTypeDescription
options?ObjectExport options (dateFrom, dateTo in ISO format)
options.dateFrom?string-
options.dateTo?string-

Returns

Promise<Blob>

CSV blob

Example

// Export all users
const blob = await sdk.users.exportCSV();

// Export users created in date range
const blob = await sdk.users.exportCSV({
  dateFrom: '2026-01-01',
  dateTo: '2026-05-31'
});

Defined in

user/api/user-api.ts:257