Migrate to Kinde for user authentication
Get started
Migrate your users from FusionAuth to Kinde. FusionAuth exports user details and password hashes together, so you can import everything in a single step — no separate password import required.
FusionAuth recommends exporting users as part of their offboarding process. There are two ways to produce the NDJSON file Kinde expects:
first_name, mobile_phone, encryption_scheme).firstName, mobilePhone, encryptionScheme).Kinde accepts both naming styles, so use whichever export method suits you. Each line in the file should be a single user object.
Kinde reads the following fields from each user record:
| FusionAuth field | Used for |
|---|---|
id | Stable external identifier — used to match records on re-import |
email | Email identity |
username | Username identity |
mobile_phone / mobilePhone | Phone identity |
first_name / firstName | Given name |
last_name / lastName | Family name |
verified | Whether the identity is verified |
encryption_scheme / encryptionScheme | Password hashing variant |
salt | Password salt (base64) |
factor / iterations | PBKDF2 iteration count |
password | Password hash (base64 derived key) |
Kinde imports FusionAuth password hashes automatically. The following schemes are supported:
salted-pbkdf2-hmac-sha256 (PBKDF2, HMAC-SHA256, 256-bit)salted-pbkdf2-hmac-sha256-512 (PBKDF2, HMAC-SHA256, 512-bit)salted-pbkdf2-hmac-sha512-512 (PBKDF2, HMAC-SHA512, 512-bit)bcryptUsers on an unsupported or custom hashing scheme import successfully but are prompted to reset their password on first sign-in.
Kinde imports the email, username, and phone identities found on each FusionAuth user. Users can have more than one identity — these are listed under the user’s profile in Kinde.
In Kinde, go to Users, then select Import users.
Select FusionAuth.
Follow the on-screen prompts to upload your NDJSON file (49MB or less).
Review any import errors reported after import. Fix the file and re-import to resolve them.
Kinde will not duplicate users with existing identifiers. Records that have already been imported and are unchanged will be ignored on re-import.
See the bulk import guide for more on file formats and post-import handling.
Importing users and passwords together should mean your end users won’t notice anything when they next sign in. However:
If you import a user and they start authenticating via Kinde, a subsequent import with changes — for example, an updated name or a new permission — will update their record in Kinde. We do not recommend making ongoing user updates via import; manage updates via the Kinde admin or API instead.
Kinde does not send notifications or invitations when users are added via import. The goal is a seamless experience that feels like nothing has changed.
If you have changed the sign-in experience — for example, adding multi-factor authentication — consider contacting your users to let them know.
If you need help with your migration, contact Kinde support.