# Migrate vendor users in bulk Migrate users in bulk to your environment. Provide an array of user objects, each containing email and tenantId. Use the metadata property to store custom information for each user. Endpoint: POST /resources/migrations/v2/local/bulk Security: bearer ## Request fields (application/json): - `users` (array, required) - `users.tenantId` (string, required) The tenant id of the user - `users.name` (string) The name of the user - `users.profilePictureUrl` (string) The profile picture url of the user - `users.passwordHash` (string) The password hash. For SCrypt should include the salt and key seperated by the salt separator - `users.passwordHashType` (string) Enum: "bcrypt", "scrypt", "firebase-scrypt", "pbkdf2", "argon2", "sha256", "sha1" - `users.passwordHashConfig` (string) Stringified JSON Hashing config for the migrated password. For SCrypt should be formatted as { saltSeparator, N, r, p, keyLen }. For FirebaseScrypt should be formatted as { memCost, rounds, saltSeparator, signerKey } - `users.authenticatorAppMfaSecret` (string) The authenticator app MFA secret - `users.phoneNumber` (string) phoneNumber can be used both for login with SMS and for MFA This auto-enrolls the user in MFA, prompting them at first login (regardless of tenant/vendor MFA settings). The required format is an area code + number, no spaces. For example: "+16037184056" The number must be unique - `users.phoneNumberType` (string) Enum: "auth", "mfa" - `users.provider` (string) Enum: "local", "saml", "google", "github", "facebook", "microsoft", "scim2", "slack", "apple" - `users.metadata` (string) Stringified JSON object - `users.roleIds` (array) Role ids of the migrated users. If not provided, the user will be assigned the default roles - `users.vendorMetadata` (string) Extra vendor-only data. stringified JSON object - `users.externalId` (string) The external id of the user - `users.username` (string) The username of the user. If not provided, the email is required. Maximum length is 128 characters. - `users.emails` (array) The emails of the user. If not provided, the username is required - `users.emails.email` (string, required) The email address - `users.emails.primary` (boolean, required) Whether this is the primary email - `users.emails.verified` (boolean, required) Whether this email is verified ## Response 202 fields (application/json): - `migrationId` (string, required)