Skip to main content

Migrate from Auth0 to ZITADEL

Migrating users from Auth0 to ZITADEL requires the following steps:

  • Request and download hashed passwords
  • Export all user data
  • Run migration tool to merge Auth0 users and passwords
  • Import users and password hashes to ZITADEL

Export hashed passwords

Auth0 does not export hashed passwords as part of the bulk user export. You must create a support ticket to download password hashes and password-related information. Please also refer to the Auth0 guide on how to Export Data.


You can also import users into ZITADEL with an verified email but without the passwords. Users will be prompted to create a new password after they login for the first time after migration.

  1. Go to and click on Open Ticket
  2. Issue Type: I have a question regarding my Auth0 account
  3. What can we help you with?: I would like to obtain an export of my tenant password hashes
  4. Fill out the form: Request password hashes as bcrypt
  5. Submit ticket

You will receive a JSON file including the password hashes. See this community post for more information about the contents and format.

Export all user data

Create a bulk user export from the Auth0 Management API. You will receive a newline-delimited JSON with the requested user data.

This is an example request, we have included the user id, the email and the name of the user. Make sure to export the users in a json format.

curl --request POST \
--url $AUTH0_DOMAIN/api/v2/jobs/users-exports \
--header 'authorization: Bearer $TOKEN' \
--header 'content-type: application/json' \
--data '{
"connection_id": "$CONNECTION_ID",
"format": "json",
"fields": [
{"name": "user_id"},
{"name": "email"},
{"name": "name"},

Run Migration Tool

We have developed a tool that combines your exported user data with their corresponding passwords to generate the import request body for ZITADEL.

  1. Download the latest release of
  2. Execute the binary with the following flags:
    ./zitadel-tools migrate auth0 --org=<organisation id> --users=./users.json --passwords=./passwords.json --output=./importBody.json
    Use the Organization ID from your ZITADEL instance where you like to add the users.
  3. You will now get a new file importBody.json which contains the body for the request to the import of ZITADEL

Import users and password hashes to ZITADEL

Copy the content from the importBody.json file created in the last step. You can now follow the instructions described in the Migrate Users guide to import users to ZITADEL.