Skip to content

Create users in batches

This document is automatically generated based on https://github.com/authing/authing-docs-factory based on 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.

To create users in batches, one of the email, mobile number, and username must be included. The email, mobile number, username, and externalId are unique in the user pool. This interface will create users as an administrator, so there is no need to perform security checks such as mobile number verification code verification.

Method name

ManagementClient.createUsersBatch

Request parameters

| Name | Type | Required | Default value | Description | Sample value | | ------- | -------------------------------------------------------- | -------------------------------------- | ------------------------------------ | ----------------------------------- | -------------------------- ... | [{"status":"Activated","email":"test@example.com","username":"bob","name":"xxxx","nickname":"xxxx","password":"passw0rd","photo":"https://files.authing.co/authing-console/default-user-avatar.png","gender":"M","birthdate":"2022-06-03","country":"CN","province":"BJ","city":"BJ","address":"xxxxxxx","streetAddress":"xxx street","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":"xx","familyName":"xx","middleName":"James","profile":"alice","pr eferredUsername":"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"}] | | options | <a CreateUserOptionsDto | No | - | Optional parameters | {"autoGeneratePassword":true,"resetPasswordOnFirstLogin":true,"passwordEncryptType":"none"} | ## Sample code

ts
import { ManagementClient, Models } from "authing-node-sdk";

// Initialize ManagementClient
const managementClient = new ManagementClient({
  // Need to be replaced with your GenAuth Access Key ID
  accessKeyId: "GEN_AUTH_ACCESS_KEY_ID",
  // Need to be replaced with your GenAuth Access Key Secret
  accessKeySecret: "GEN_AUTH_ACCESS_KEY_SECRET",
  // If it is a private deployment customer, you need to set the GenAuth service domain name
  // host: 'https://api.your-authing-service.com'
});

(async () => {
  const result = await managementClient.createUsersBatch({
    list: [
      {
        status: Models.CreateUserInfoDto.status.ACTIVATED,
        // Replace mobile phone number, email address and other information
        email: "test-batch@example.com",
        phone: "18812349999",
        phoneCountryCode: "+86",
        username: "bob-batch",
        name: "xxxx",
        nickname: "xxxx",
        photo:
          "https://files.authing.co/authing-console/default-user-avatar.png",
        gender: Models.CreateUserInfoDto.gender.M,
        birthdate: "2022-06-03",
        country: "CN",
        province: "BJ",
        city: "BJ",
        address: "xxxxxxx",
        streetAddress: "xxx street",
        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: "xx",
        familyName: "xx",

        otp: {
          secret: "HZ2F6J3AGNAVSOTV",
          recoveryCode: "b471-8ec0-874a-087f-bccb-cd54",
        },
        customData: {
          school: "xxx",
          age: 22,
        },
      },
    ],
  });

  console.log(JSON.stringify(result, null, 2));
})();

Request response

Type: UserListRespDto

NameTypeDescription
statusCodenumberBusiness status code, which can be used to determine whether the operation is successful. 200 means success.
messagestringDescription
apiCodenumberSegmented error code, which can be used to get the specific error type (successful request does not return). For a detailed list of error codes, see: API Code List
requestIdstringRequest ID. Returned when the request fails.
dataarrayuser list

Sample result:

json
{
  "statusCode": 200,
  "message": "Operation successful",
  "requestId": "934108e5-9fbf-4d24-8da1-c330328abd6c",
  "data": {
    "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": "xxxx",
    "nickname": "xxxx",
    "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": "xxxxxxx",
    "streetAddress": "Beijing Chaoyang District xxx Street",
    "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": "xx",
    "familyName": "xx",
    "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": "Peking University", "age": 22 },
    "statusChangedAt": "2022-07-03T03:20:30.000Z"
  }
}

Data structure### CreateUserInfoDto

NameTypeIs it requiredDescriptionExample value
statusstringNoCurrent status of the accountSuspended
emailstringNoEmail address, case insensitivetest@example.com
phonestringNoThe phone number without the 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 mobile phone numbers in mainland China. 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. Complete mobile phone area code The list can be found at https://en.wikipedia.org/wiki/List_of_country_calling_codes.+86
usernamestringNoUsername, unique within the user poolbob
externalIdstringNoThird-party External ID10010
namestringNoUser's real name, not uniqueZhang San
nicknamestringNoNicknameZhang San
photostringNoAvatar Linkhttps://files.authing.co/authing-console/default-user-avatar.png
genderstringNoGenderM
emailVerifiedbooleanNoEmail verifiedtrue
phoneVerifiedbooleanNoPhone number verifiedtrue
birthdatestringNoDate of birth2022-06-03
countrystringNoCountryCN
provincestringNoProvinceBJ
citystringNoCityBJ
addressstringNoAddressBeijing Chaoyang
streetAddressstringNoStreet addressBeijing Chaoyang District xxx Street
postalCodestringNoPostal code438100
companystringNoCompanysteamory
browserstringnoThe browser used when logging in lastMozilla/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 lastiOS
givenNamestringnoFirst Namexx
familyNamestringnoLast Namexx
middleNamestringnoMiddle NameJames
profilestringnoPreferred Usernamealice
preferredUsernamestringnoPreferred Usernamealice
websitestringnoUser's personal websitehttps://my-website.com
zoneinfostringnoUser time zone informationGMT-08:00
localestringnoLocaleaf
formattedstringnoFull standard address132, My Street, Kingston, New York 12401.
regionstringnoUser regionXinjiang Uyghur Autonomous Region
passwordstringNoUser password, the default is plain text. We use the HTTPS protocol to securely transmit passwords, which can ensure security to a certain extent. If you need a higher level of security, we also support RSA256 and SM2 to encrypt passwords. See the passwordEncryptType parameter for details.passw0rd
saltstringNoSalt for encrypting user passwordsdgisaeieruur
tenantIdsarrayNoTenant ID["63f867961cxxxx41e7ccb582","63bea7828f4xxxxbfa80df93"]
otpNoUser's OTP authenticator Nested type: <a CreateUserOtpDto.{"recoveryCode":"b471-8ec0-874a-087f-bccb-cd54","secret":"HZ2F6J3AGNAVSOTV"}
departmentIdsarrayNoList of department IDs to which the user belongs["624d930c3xxxx5c08dd4986e","624d93102xxxx012f33cd2fe"]
customDataobjectNoCustom data. The key in the passed object must first be defined in the user pool for the relevant custom fields{"school":"Peking University","age":22}
metadataSourceobjectNoData object data. The key in the passed object must first be defined in the user pool for the relevant custom fields{"school":"Peking University","age":22}
identitiesarrayNoThird-party identity source (it is recommended to call the binding interface for binding) Nested type: <a CreateIdentityDto.[{"extIdpId":"6076bacxxxxxxxxd80d993b5","provider":"wechat","type":"openid","userIdInIdp":"oj7Nq05R-RRaqak0_YlMLnnIwsvg"}]
identityNumberstringNoUser ID number420421xxxxxxxx1234

CreateUserOtpDto

NameTypeIs it required?DescriptionSample value
secretstringYesOTP keyHZ2F6J3AGNAVSOTV
recoveryCodestringNoOTP Recovery Codeb471-8ec0-874a-087f-bccb-cd54

CreateIdentityDto

NameTypeIs it requiredDescriptionExample value
extIdpIdstringyesIdentity source connection ID6076bacxxxxxxxxd80d993b5
providerstringyesExternal identity source type:
- wechat: WeChat
- qq: QQ
- wechatwork: WeChat Work
- 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 of 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 returned only when the user actively obtains it, and the management interface will not return it).57_fK0xgSL_NwVlS-gmUwlMQ2N6AONNIOAYxxxx
refreshTokenstringNoRefresh Token in the external identity source (this parameter is returned only when the user actively obtains it, and the management interface will not return it).57_IZFu91Ak1Wg6DRytZFFIOd3upNF5lH7vPxxxxx
originConnIdsarrayyesList of identity origin connection IDs from which the identity comes["605492ac41xxxxe0362f0707"]

CreateUserOptionsDto

nametypeIs it requiredDescriptionSample value
keepPasswordbooleannoThis parameter is usually set when migrating old user data to GenAuth. When this switch is turned on, the password field will be written directly to the GenAuth database, and GenAuth will not encrypt this field again. If your password is not stored in plain text, you should keep it turned on and write a password function to calculate it.
autoGeneratePasswordbooleannoWhether to automatically generate a password
resetPasswordOnFirstLoginbooleannoWhether to force users to reset their passwords on the first login
departmentIdTypestringnoThe type of the parent department ID used in this calldepartment_id
sendNotificationnoOptions for sending email and phone number when resetting passwords Nested type: <a SendCreateAccountNotificationDto.{"sendEmailNotification":true,"sendPhoneNotification":true}
passwordEncryptTypestringnoPassword encryption type, supports encryption using RSA256 and the national encryption SM2 algorithm. The default is none, which means no encryption.
- none: Do not encrypt the password and use plain text for transmission.
- rsa: Use the RSA256 algorithm to encrypt the password. You need to use the RSA public key of the GenAuth service for encryption. Please read the Introduction section to learn how to obtain the RSA256 public key of the GenAuth service.
- sm2: Use the National Secret SM2 Algorithm to encrypt the password. You need to use the SM2 public key of the GenAuth service for encryption. Please read the Introduction section to learn how to obtain the SM2 public key of the GenAuth service.
sm2

SendCreateAccountNotificationDto

NameTypeRequiredDescriptionSample value
sendEmailNotificationbooleanNoWhether to send email notification after account creation
sendPhoneNotificationbooleanNoWhether to send SMS notification after account creation
appIdstringNoWhen sending login address, the specified application id will send the login address of this application to the user's email or mobile phone number. The default is the login address of the user pool application panel.appid1

UserDto

NameTypeIs it required?DescriptionSample value
userIdstringYesThe unique identifier of the user, which can be user ID, user name, email address, mobile phone number, externalId, or ID in the 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
phonestringnoMobile number, without area code. If the phone number is from abroad, specify the area code in the phoneCountryCode parameter.188xxxx8888
phoneCountryCodestringNoArea code of the phone number. This parameter is optional for phone numbers in mainland China. The GenAuth SMS service does not yet support international phone numbers. You need to configure the corresponding international SMS service in the GenAuth console. For a complete list of area codes, see https://en.wikipedia.org/wiki/List_of_country_calling_codes.+86
usernamestringNoUser name, unique in the user poolbob
namestringNoUser's real name, not uniqueZhang San
nicknamestringNoNicknameZhang San
photostringNoAvatar URLhttps://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 modification 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 login browser 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
devicestringnoLast login deviceiOS
givenNamestringnoFirst nameSan
familyNamestringnoLast nameZhang
middleNamestringnomiddle nameJames
profilestringnoPreferred Usernamealice
preferredUsernamestringnoPreferred Usernamealice
websitestringnoUser's personal websitehttps://my-website.com
zoneinfostringNoUser time zone informationGMT-08:00
localestringNoLocaleaf
formattedstringNoFull standard address132, My Street, Kingston, New York 12401.
regionstringNoUser's regionXinjiang Uyghur Autonomous Region
userSourceTypestringYesSource type:
- excel: Imported via excel
- register: User self-registration
- adminCreated: Manual creation by the administrator backend (including creating users using the management API)
- syncTask: Synchronization task in the synchronization center
excel
userSourceIdstringNoApplication ID or synchronization task ID
lastLoginAppstringNoApplication ID of the user's last login
mainDepartmentIdstringNoUser's main department ID
lastMfaTimestringNoThe time 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: <a IdentityDto.
identityNumberstringNoUser ID number420421xxxxxxxx1234
customDataobjectNoUser's extended field data{"school":"Peking University","age":22}
postIdListarrayNoUser's associated department ID
statusChangedAtstringNoUser status last modified time2022-07-03T03:20:30.000Z
tenantIdstringNoUser tenant ID

IdentityDto

NameTypeIs it requiredDescriptionSample value
identityIdstringyesIdentity source ID62299d8b866d2dab79a89dc4
extIdpIdstringyesIdentity source connection ID6076bacxxxxxxxxd80d993b5
providerstringyesExternal identity source type:
- wechat: WeChat
- qq: QQ
- wechatwork: WeChat Work
- 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 will not be returned by the management side interface).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 interface will not return it).57_IZFu91Ak1Wg6DRytZFFIOd3upNF5lH7vPxxxxx
originConnIdsarrayyesIdentity source connection ID list from which the identity comes["605492ac41xxxxe0362f0707"]

Agent infrastructure for identity, memory, and web action.