GenAuth DocsDocuments
Concepts
User Guide
Development Integration
AgentAuth
Metadata
Development Integration
Multi-tenant (beta)
Console Documentation
Multi-tenant Console
Tenant Console
Saas Application Demo
Concepts
User Guide
Development Integration
AgentAuth
Metadata
Development Integration
Multi-tenant (beta)
Console Documentation
Multi-tenant Console
Tenant Console
Saas Application Demo
Old version
Development Integration
  • API

  • SDK

    • Java

      • Installation and use
      • User authentication module

      • Management module

        • Manage users

          • Get user list
          • Get user information
          • Get user information in batches
          • Create users
          • Create users in batches
          • Modify user information
          • Batch modify user information
          • Delete user
          • Get the user's external identity source
          • Get user role list
          • Get user real-name authentication information
          • Delete user real-name authentication information
          • Get user department list
          • Set user department
          • Get user group list
          • Get user MFA binding information
          • Get the archived user list
          • Force offline users
          • Judge whether the user exists
          • Get user-accessible applications
          • Get user-authorized applications
          • Determine whether the user has a certain role
          • Get the user's login history
          • Get the application that the user has logged in to
          • Get the identity source that the user has logged in to
          • User resignation
          • Batch user resignation
          • Get all resources authorized by the user
          • Check whether a user has a session login status in the application
          • Import user OTP
          • Set user MFA status
          • Get user MFA status
        • Management Roles

        • Manage user groups

        • Manage custom fields

        • Manage Resources and Permissions

        • Manage data resources and permissions

        • Manage Applications

        • Manage Identity Sources

        • Manage security configuration

        • Manage message service

        • Manage Pipeline

        • Manage Webhook

        • Get audit log

        • Manage metering and billing

        • Events
    • Node.js

    • Python

  • Error Codes
  1. Development Integration
  2. /
  3. SDK
  4. /
  5. Java
  6. /
  7. Management module

  8. /
  9. Manage users

  10. /
  11. Get user list

¶ Get/search user list

Update time: 2025-07-23 07:34:21
Edit

This document is automatically generated based on https://github.com/authing/authing-docs-factory and https://api-explorer.genauth.ai V3 API, and is consistent with API parameters and return results. If this document description is incorrect, please refer to V3 API.

This interface is used to obtain user lists, supports fuzzy search, and filters users by user basic fields, user custom fields, user department, user history login application and other dimensions.

¶ Fuzzy search example

Fuzzy search will perform fuzzy search on users from five fields: phone, email, name, username, nickname by default. You can also set options.fuzzySearchOn to determine the scope of the fuzzy matching fields:

{
  "keywords": "xx",
  "options": {
    "fuzzySearchOn": ["address"]
  }
}

¶ Advanced search example

You can use advancedFilter to perform advanced search. Advanced search supports filtering users by user basic information, custom data, department, user source, login application, external identity source information, etc. **These filtering conditions can be combined arbitrarily. **

¶ Filter users with disabled status

User status (status) is a string type, and the optional values ​​are Activated and Suspended:

{
  "advancedFilter": [
    {
      "field": "status",
      "operator": "EQUAL",
      "value": "Suspended"
    }
  ]
}

¶ Filter users whose mailboxes contain @example.com

User mailboxes (email) are string types and can be fuzzy searched:

{
  "advancedFilter": [
    {
      "field": "email",
      "operator": "CONTAINS",
      "value": "@example.com"
    }
  ]
}

¶ Search based on any extended fields of the user

{
  "advancedFilter": [
    {
      "field": "some-custom-key",
      "operator": "EQUAL",
      "value": "some-value"
    }
  ]
}

¶ Filter by number of user logins

Filter users with more than 10 logins:

{
  "advancedFilter": [
    {
      "field": "loginsCount",
      "operator": "GREATER",
      "value": 10
    }
  ]
}

Filter users with 10 to 100 login times:

{
  "advancedFilter": [
    {
      "field": "loginsCount",
      "operator": "BETWEEN",
      "value": [10, 100]
    }
  ]
}

¶ Filter based on the user's last login time

Filter users who have logged in within the last 7 days:

{
  "advancedFilter": [
    {
      "field": "lastLoginTime",
      "operator": "GREATER",
      "value": new Date(Date.now() - 7 * 24 * 60 * 60 * 1000)
    }
  ]
}

Filter users who have logged in within a certain period of time:

{
  "advancedFilter": [
    {
      "field": "lastLogin",
      "operator": "BETWEEN",
      "value": [
        Date.now() - 14 * 24 * 60 * 60 * 1000,
        Date.now() - 7 * 24 * 60 * 60 * 1000
      ]
    }
  ]
}

¶ Filter based on the applications that the user has logged in

Filter users who have logged in to applications appId1 or appId2:

{
  "advancedFilter": [
    {
      "field": "loggedInApps",
      "operator": "IN",
      "value": ["appId1", "appId2"]
    }
  ]
}

¶ Filter by user's department

{
  "advancedFilter": [
    {
      "field": "department",
      "operator": "IN",
      "value": [
        {
          "organizationCode": "steamory",
          "departmentId": "root",
          "departmentIdType": "department_id",
          "includeChildrenDepartments": true
        }
      ]
    }
  ]
}

¶ Method Name

ManagementClient.listUsers

¶ Request Parameters

NameType
Is it required
Default Value
Description
Example Value
keywordsstringNo-Fuzzy search keywordsZhang San
advancedFilterListUsersAdvancedFilterItemDto[]No-Advanced search[{"field":"status","operator":"EQUAL","value":"Activated"}]
searchQueryobjectNo-Use ES query statements to execute search commands{"query":{"bool":{"must":[{"term":{"phone":"18818888888"}}],"must_not":[]}},"sort":["_score",{"created_at":"ASC"}]}
optionsListUsersOptionsDtoNo-Optional{"pagination":{"page":1,"limit":10},"fuzzySearchOn":["phone","email","name","username","nickname","identityNumber"],"withCustomData":true,"withIdentities":true,"withDepartmentIds":true}

¶ Sample Code

package test.management;

import cn.authing.sdk.java.client.ManagementClient;
import cn.authing.sdk.java.dto.ListUsersRequestDto;
import cn.authing.sdk.java.dto.UserPaginatedRespDto;
import cn.authing.sdk.java.model.ManagementClientOptions;
import cn.authing.sdk.java.util.JsonUtils;

public class ListUsersTest {
    // Need to be replaced with your GenAuth Access Key ID
    private static final String ACCESS_KEY_ID = "AUTHING_ACCESS_KEY_ID";
    // Need to be replaced with your GenAuth Access Key Secret
    private static final String ACCESS_KEY_SECRET = "AUTHING_ACCESS_KEY_SECRET";

    public static void main(String[] args) throws Throwable {
        ManagementClientOptions clientOptions = new ManagementClientOptions();
        clientOptions.setAccessKeyId(ACCESS_KEY_ID);
        clientOptions.setAccessKeySecret(ACCESS_KEY_SECRET);
        // If you are a private deployment customer, you need to set the GenAuth service domain name
        // clientOptions.setHost("https://api.your-authing-service.com");

        ManagementClient client = new ManagementClient(clientOptions);

        UserPaginatedRespDto response = client.listUsers(new ListUsersRequestDto());
        System.out.println(JsonUtils.serialize(response));
    }
}

¶ Request Response

Type: UserPaginatedRespDto

NameTypeDescription
statusCodenumberBusiness status code. You can use this status code to determine whether the operation is successful. 200 means success.
messagestringDescription
apiCodenumberSegment error code, through which the specific error type can be obtained (not returned for successful requests). For a detailed list of error codes, see:API Code List (opens new window)
requestIdstringRequest ID. Returned when the request fails.
dataUserPagingDtoResponse data

Example Results:

{
  "statusCode": 200,
  "message": "Operation successful",
  "requestId": "934108e5-9fbf-4d24-8da1-c330328abd6c",
  "data": {
    "list": {
      "userId": "6229ffaxxxxxxxxcade3e3d9",
      "createdAt": "2022-07-03T03:20:30.000Z",
      "updatedAt": "2022-07-03T03:20:30.000Z",
      "status": "Activated",
      "workStatus": "Active",
      "externalId": "10010",
      "email": "test@example.com",
      "phone": "188xxxx8888",
      "phoneCountryCode": "+86",
      "username": "bob",
      "name": "Zhang San",
      "nickname": "Zhang San",
      "photo": "https://files.authing.co/authing-console/default-user-avatar.png",
      "loginsCount": 3,
      "lastLogin": "2022-07-03T03:20:30.000Z",
      "lastIp": "127.0.0.1",
      "gender": "M",
      "emailVerified": true,
      "phoneVerified": true,
      "passwordLastSetAt": "2022-07-03T03:20:30.000Z",
      "birthdate": "2022-06-03",
      "country": "CN",
      "province": "BJ",
      "city": "BJ",
      "address": "Beijing Chaoyang",
      "streetAddress": "xx Street, Chaoyang District, Beijing",
      "postalCode": "438100",
      "company": "steamory",
      "browser": "Mozilla/5.0 (Linux; Android 10; V2001A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/87.0.4280.141 Mobile Safari/537.36 VivoBrowser/10.2.10.0",
      "device": "iOS",
      "givenName": "San",
      "familyName": "Zhang",
      "middleName": "James",
      "profile": "alice",
      "preferredUsername": "alice",
      "website": "https://my-website.com",
      "zoneinfo": "GMT-08:00",
      "locale": "af",
      "formatted": "132, My Street, Kingston, New York 12401.",
      "region": "Xinjiang Uyghur Autonomous Region",
      "userSourceType": "register",
      "passwordSecurityLevel": 1,
      "departmentIds": "[\"624d930c3xxxx5c08dd4986e\",\"624d93102xxxx012f33cd2fe\"]",
      "identities": {
        "identityId": "62299d8b866d2dab79a89dc4",
        "extIdpId": "6076bacxxxxxxxxd80d993b5",
        "provider": "wechat",
        "type": "openid",
        "userIdInIdp": "oj7Nq05R-RRaqak0_YlMLnnIwsvg",
        "accessToken": "57_fK0xgSL_NwVlS-gmUwlMQ2N6AONNIOAYxxxx",
        "refreshToken": "57_IZFu91Ak1Wg6DRytZFFIOd3upNF5lH7vPxxxxx",
        "originConnIds": "[\"605492ac41xxxxe0362f0707\"]"
      },
      "identityNumber": "420421xxxxxxxx1234",
      "customData": {
        "school": "Beijing University",
        "age": 22
      },
      "statusChangedAt": "2022-07-03T03:20:30.000Z"
    }
  }
}

¶ Data Structure

¶ ListUsersAdvancedFilterItemDto

NameType
Is it required
Description
Example Value
fieldstringYesUser fields specified for advanced search:
- id: User ID
- phone: Phone number
- email: Email address
- username: User name
- externalId: User ID in the external system
- name: Name
- status: User status, optional values ​​are Activated and Suspended
- gender: User gender, optional values ​​are M (male), F (female) and U (unknown)
- birthdate: Date of Birth
- givenName: First Name
- familyName: Last Name
- preferredUsername: Preferred Username
- profile: Profile
- country: Country
- province: Province
- zoneinfo: Time Zone
- website: Personal website
- address: address
- streetAddress: street address
- company: company
- postalCode: postal code
- formatted: formatted address
- signedUp: registration time
- locale: language information
- lastLogin: last login time, as timestamp type
- loginsCount: number of logins, as numeric type
- lastLoginApp: last logged in application ID
- userSource: user source, see the example for specific usage
- department: user department, see the example for specific usage
- loggedInApps: applications that have been logged in, see the example for specific usage
- identity: user external identity source information, see the example for specific usage
- ... Other custom fields
nickname
operatorstringYesOperator, optional values ​​are:
- EQUAL: all equal, applicable to all equal matching of numbers and strings
- NOT_EQUAL: not equal, applicable to matching of numbers and strings
- CONTAINS: string contains
- NOT_CONTAINS: string does not contain
- IS_NULL: empty
- NOT_NULL: not empty
- IN: an element in an array
- GREATER: greater than or equal to, applicable to comparison of numbers and date type data
- LESSER: less than or equal to, applicable to comparison of numbers and date type data
- BETWEEN: between something, applicable to comparison of numbers and date type data
EQUAL
valueobjectNoSearch value, different field may correspond to different value types, see the example for detail.test

¶ ListUsersOptionsDto

NameType
Is it required
Description
Example Value
paginationNoPagination configuration Nested Type: PaginationDto.{"page":1,"limit":10}
sortarrayNoSorting settings, you can set multiple items to be sorted according to multiple fields Nested Type: SortingDto.[{"field":"createdAt","direction":"desc"},{"field":"loginsCount","direction":"desc"}]
fuzzySearchOnarrayNoUser fields for fuzzy search matching, optional values ​​are:
- phone: User phone number, cannot contain phone number area code, included by default
- email: User email address, included by default
- name: User Name, included by default
- username: User name, included by default
- nickname: User nickname, included by default
- id: User ID
- company: Company
- givenName: First name
- familyName: Last name
- middleName: Middle name
- preferredUsername: Preferred Username
- profile: Personal profile
- website: Personal website
- address: address
- formatted: formatted address
- streetAddress: street address
- postalCode: postal code
withCustomDatabooleanNoYes No Get custom datatrue
withPostbooleanNoYes No Get department informationtrue
withIdentitiesbooleanNoYes No Get identitiestrue
withDepartmentIdsbooleanNoYes No Get department ID listtrue
flatCustomDatabooleanNoYes No Flatten extension fields

¶ PaginationDto

NameType
Is it required
Description
Example Value
pagenumberNoCurrent page number, starting from 11
limitnumberNoThe maximum number of pages per page cannot exceed 50, and the default value is 1010

¶ SortingDto

NameType
Is it required
Description
Example Value
fieldstringYesThe field to be sorted. Optional values ​​are:
- createdAt: creation time
- updatedAt: modification time
- email: email address
- phone: phone number
- username: username
- externalId: external ID
- status: public account status
- statusChangedAt: status change time
- passwordLastSetAt: password change time
- loginsCount: number of logins
- gender: gender
- lastLogin: last login time
- userSourceType: public account registration source
- lastMfaTime: last MFA authentication time
- passwordSecurityLevel: password security level
- phoneCountryCode: mobile area code
- lastIp: The IP used for the last login
createdAt
orderstringYesSorting order:
- desc: Sort by descending order from largest to smallest.
- asc: Sort by ascending order from smallest to largest.
desc

¶ UserPagingDto

NameType
Is it required
Description
Example Value
totalCountnumberYesTotal number of records
listarrayYesData List Nested Type:UserDto。

¶ UserDto

NameType
Is it required
Description
Example Value
userIdstringYesThe unique identifier of the user, which can be user ID, user name, email, phone number, externalId, or ID in an external identity source. For details, see the description of the userIdType field. The default is user id.6229ffaxxxxxxxxcade3e3d9
createdAtstringyescreation time2022-07-03T03:20:30.000Z
updatedAtstringyesupdate time2022-07-03T03:20:30.000Z
statusstringyescurrent status of the account:
- Activated: normal status
- Suspended: deactivated
- Deactivated: disabled
- Resigned: resigned
- Archived: archived
Suspended
workStatusstringyescurrent work status of the accountClosed
externalIdstringnothird-party external ID10010
emailstringnoemail address, case insensitivetest@example.com
phonestringNoPhone number without area code. If it is a foreign phone number, specify the area code in the phoneCountryCode parameter.188xxxx8888
phoneCountryCodestringNoMobile phone area code. This field is optional for mainland China mobile phone numbers. The GenAuth SMS service does not yet support international mobile phone numbers. You need to configure the corresponding international SMS service in the GenAuth console. For a complete list of mobile phone area codes, please refer to https://en.wikipedia.org/wiki/List_of_country_calling_codes.+86
usernamestringNoUsername, unique in the user poolbob
namestringNoUser's real name, not uniqueZhang San
nicknamestringNoNicknameZhang San
photostringNoAvatar linkhttps://files.authing.co/authing-console/default-user-avatar.png
loginsCountnumberNoTotal number of historical logins3
lastLoginstringNoLast login time2022-07-03T03:20:30.000Z
lastIpstringNoLast login IP127.0.0.1
genderstringYesGender:
- M: Male, male
- F: Female, female
- U: unknown, unknown
M
emailVerifiedbooleanyesEmail verifiedtrue
phoneVerifiedbooleanyesPhone number verifiedtrue
passwordLastSetAtstringnoUser's last password change time2022-07-03T03:20:30.000Z
birthdatestringNoDate of birth2022-06-03
countrystringNoCountryCN
provincestringNoProvinceBJ
citystringNoCityBJ
addressstringNoAddressBeijing Chaoyang
streetAddressstringNoStreet addressBeijing Chaoyang District xxx Street
postalCodestringNoPostal code438100
companystringNoCompanysteamory
browserstringNoLast browser used for login UAMozilla/5.0 (Linux; Android 10; V2001A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/87.0.4280.141 Mobile Safari/537.36 VivoBrowser/10.2.10.0
devicestringNoThe device used when logging in last timeiOS
givenNamestringnofirst namexxx
familyNamestringnolast namexxx
middleNamestringnomiddle nameJames
profilestringnoPreferred Usernamealice
preferredUsernamestringnoPreferred Usernamealice
websitestringnoUser personal websitehttps://my-website.com
zoneinfostringnoUser time zone informationGMT-08:00
localestringnoLocaleaf
formattedstringnoFull standard address132, My Street, Kingston, New York 12401.
regionstringnoUser locationXinjiang Uyghur Autonomous Region
userSourceTypestringyesSource type:
- excel: via excel Import
- register: User self-registration
- adminCreated: Manual creation by the administrator (including creating users using the management API)
- syncTask: Sync task in the sync center
excel
userSourceIdstringNoApplication ID or sync task ID
lastLoginAppstringNoID of the application that the user last logged in to
mainDepartmentIdstringNoID of the user's main department
lastMfaTimestringNoTime when the user last performed MFA authentication
passwordSecurityLevelnumberNoUser password security strength level1
resetPasswordOnNextLoginbooleanNoRequire password reset on next login
registerSourcearrayNoRegistration method
departmentIdsarrayNoList of department IDs to which the user belongs["624d930c3xxxx5c08dd4986e","624d93102xxxx012f33cd2fe"]
identitiesarrayNoExternal identity source nested Type: IdentityDto.
identityNumberstringNoUser ID number420421xxxxxxxx1234
customDataobjectNoUser's extended field data{"school":"Beijing University","age":22}
postIdListarrayNoUser-associated department ID
statusChangedAtstringNoUser status last modified time2022-07-03T03:20:30.000Z
tenantIdstringNoUser tenant ID

¶ IdentityDto

NameType
Is it required
Description
Example Value
identityIdstringYesIdentity source ID62299d8b866d2dab79a89dc4
extIdpIdstringYesIdentity source connection ID6076bacxxxxxxxxd80d993b5
providerstringYesExternal identity source Type:
- wechat: WeChat
- qq: QQ
- wechatwork: WeChat for Business
- dingtalk: DingTalk
- weibo: Weibo
- github: GitHub
- alipay: Alipay
- baidu: Baidu
- lark: Feishu
- welink: Welink
- yidun: NetEase Yidun
- qingcloud: Qingyun
- google: Google
- gitlab: GitLab
- gitee: Gitee
- twitter: Twitter
- facebook: Facebook
- slack: Slack
- linkedin: Linkedin
- instagram: Instagram
- oidc: OIDC-type enterprise identity source
- oauth2: OAuth2-type enterprise identity source
- saml: SAML-type enterprise identity source
- ldap: LDAP-type enterprise identity source
- ad: AD-type enterprise identity source
- cas: CAS-type enterprise identity source
- azure-ad: Azure AD-type enterprise identity source
oidc
typestringYesIdentity type, such as unionid, openid, primaryopenid
userIdInIdpstringYesID in the external identity sourceoj7Nq05R-RRaqak0_YlMLnnIwsvg
userInfoInIdpobjectYesUser's identity information in idp
accessTokenstringNoAccess Token in the external identity source (this parameter is only returned when the user actively obtains it, and the management side interface will not return it).57_fK0xgSL_NwVlS-gmUwlMQ2N6AONNIOAYxxxx
refreshTokenstringNoRefresh Token in the external identity source (this parameter is only returned when the user actively obtains it, and the management side interface will not return it).57_IZFu91Ak1Wg6DRytZFFIOd3upNF5lH7vPxxxxx
originConnIdsarrayYesList of identity origin connection IDs that the identity comes from["605492ac41xxxxe0362f0707"]
Previous article: Events Next article: Get user information
  • Method Name
  • Request Parameters
  • Sample Code
  • Request Response
  • Data Structure

User identity management

Integrated third-party login
Customized authentication process

Enterprise internal management

Single sign-on
Multi-factor authentication
Permission management

Developer

Development Documentation
GitHub (opens new window)

Company

official@genauth.ai
16th Floor, Building B, Beichen Century Center, Chaoyang District, Beijing (Total)
Room 406, 4th Floor, Block B, No. 200, Tianfu Fifth Street, High-tech Zone, Chengdu (Branch)

© Beijing Steamory Technology Co., Ltd.