# List users (paginated)

Retrieve a paginated list of a client's users as credential-free UserResponse records.

Endpoint: GET /payless4messaging-service/WhatsApp/api/v1/users/page
Version: 3.0.0
Security: apikeyAuth

## Query parameters:

  - `clientRef` (string, required)
    Your unique client reference identifier.
    Example: "Growthpoint"

  - `page` (integer, required)
    Zero-based page index.

  - `size` (integer, required)
    Number of records per page.
    Example: 10

  - `searchString` (string)
    Optional search filter.
    Example: "alice"

## Response 200 fields (application/json):

  - `content` (array)

  - `content.id` (string)
    Example: "b2c3d4e5-f6a7-8901-b2c3-d4e5f6a78901"

  - `content.email` (string)
    Example: "alice.smith@example.com"

  - `content.firstName` (string)
    Example: "Alice"

  - `content.lastName` (string)
    Example: "Smith"

  - `content.role` (string)
    Platform authority — for example admin or client.
    Example: "client"

  - `content.liveChatRole` (string)
    Role within the live-chat team.
    Enum: "Agent", "Supervisor"

  - `content.primaryEmailAddress` (string)
    Example: "alice@example.com"

  - `content.mobileNumber` (string)
    Example: "+27123456789"

  - `content.clientRef` (string)
    Example: "Growthpoint"

  - `content.clientId` (string)
    ID of the client this user belongs to.
    Example: "c1d2e3f4-a5b6-7890-c1d2-e3f4a5b67890"

  - `content.countryTimezone` (string)
    IANA timezone for the user, inherited from their client.
    Example: "Africa/Johannesburg"

  - `content.popiaComplianceEnabled` (boolean)
    Whether POPIA compliance is enabled for the user's client.

  - `content.disabled` (boolean)

  - `content.deleted` (boolean)

  - `content.ticketCount` (integer)

  - `content.resetPasswordEmailSent` (boolean)
    Whether a password-reset email has been sent to the user.

  - `content.emailVerified` (boolean)
    Whether the user has verified their email address.

  - `content.lastSeen` (string)
    Example: "2026-01-15T10:30:00Z"

  - `content.agentChatLimit` (integer)
    Example: 5

  - `content.availabilityStatus` (boolean)
    Whether the user is currently available for live-chat assignment.
    Example: true

  - `content.initialPassword` (boolean)
    true while the user still has a system-generated temporary password and must set their own on next login.

  - `content.tempAccount` (boolean)

  - `content.tempPasswordValid` (boolean)
    Whether the user's temporary password is still valid (not yet expired or replaced).

  - `content.validToken` (boolean)
    Whether the user currently holds a valid session token.
    Example: true

  - `content.avatar` (string)
    Example: "https://example.com/avatars/alice.png"

  - `content.shouldGetNotifications` (boolean)
    Example: true

  - `content.applicationKey` (string)
    Example: "app-key-123"

  - `content.applicationClientId` (string)
    Example: "app-client-123"

  - `content.userId` (string)
    Example: "ext-user-123"

  - `content.allowedSharedInbox` (boolean)
    Example: true

  - `content.allowedUnassignedInbox` (boolean)

  - `content.assignmentMessage` (string)
    Example: "Hi, I'm Alice and I'll be assisting you today."

  - `totalElements` (integer)
    Example: 100

  - `totalPages` (integer)
    Example: 10

## Response 401 fields (application/json):

  - `status` (string)
    Example: "ERROR"

  - `message` (string)
    Example: "Unauthorized user"

  - `requestId` (string)
    Example: "c3a1f8e2-4b6d-11ee-be56-0242ac120002"

  - `timestamp` (string)
    Example: "2026-01-15T10:30:00Z"


