How to Export Users Data with Passwords

I need to migrate all production users from our current Auth0 tenant to our client’s Auth0 tenant.

Could someone guide me on the best approach, especially:

  • How to migrate/export and import user data?

  • How can existing passwords/password hashes be migrated without forcing users to reset passwords?

  • Can we migrate the required Auth0 configurations (connections, applications, APIs, roles, permissions, Actions, etc.)?

  • How can we perform the migration with minimal or zero downtime?

I’d appreciate any guidance or documentation on the recommended approach for a seamless tenant-to-tenant migration.

Hi @meet.khunt,

Welcome to the Auth0 Community!

I understand that you are asking what are the best approaches for migrating users from one tenant to another, so lets examine your questions one by one.

You can export user profiles from your current tenant as a JSON file using the Auth0 management API endpoint GET /api/v2/jobs/users-exports.

Afterwards import those profiles into the target client tenant using the POST /api/v2/jobs/users-imports endpoint or the user import/export extension in your dashboard.

You can check out our documentation on Import and Export User Data and this KB article - Get or Export Users from the Auth0 Tenant.

You can migrate passwords securely using one of two methods:

  • Method 1: Bulk password hash import

    1. Open a high-priority support ticket with Auth0 to request a secure, PGP-encrypted export of your current database’s password hashes.

    2. Format these hashes into Auth0’s specific user schema (supporting algorithms like bcrypt, scrypt, pbkdf2, or sha256).

    3. Upload them via the bulk user import API. Note that password hashes can only be set during the initial user creation import and cannot be added to existing records later.

You can also check - How to Use the Password Hashes Export from Auth0

  • Method 2: Automatic trickle migration
  1. Create a new custom database connection in the client’s tenant and toggle on the “import users to auth0” setting.

  2. Write custom node.js login and getUser scripts that query your original tenant.

  3. When a user logs in, Auth0 verifies their credentials against your old tenant. Once authenticated, Auth0 automatically creates their profile in the client’s tenant and securely hashes/saves their password.

Please see - Understanding Import Mode for Custom Database Connections.

  • Install the official Auth0 Deploy CLI command-line tool.

  • Run a0deploy export from your current tenant to save all applications, APIs, connections, roles, and settings as YAML/JSON configuration files.

  • Run a0deploy import to instantly provision those identical resources on your client’s tenant.

  • Be sure to manually copy sensitive values (like client secrets and third-party API keys) since they are excluded from the export files for security.

  1. Use the Deploy CLI to recreate all Applications, APIs, and Connections on the client’s tenant.

  2. Turn on the Custom Database Connections (Trickle Migration) pointing back to your source database connection.

  3. Update your applications to point their OIDC authorization endpoints to the client’s new Auth0 tenant domain.

  4. Run both tenants concurrently for a set period (e.g., 30 days). Active users will seamlessly transition to the new database upon login.

  5. Bulk export any remaining inactive users, import them to the target tenant (using Option A for their password hashes), and safely disable the Custom Database connection.

For a broader image please also check our documentation regarding - Import and Export User Data.

I hope this helps and if you have further questions please let me know!
Best regards,
Remus

How Can i Export Users Password data as current exported data only returns non password variables only

Hi @meet.khunt,

Yes, that is exactly correct. For security and compliance reasons, any standard bulk export you run yourself (via the API or Dashboard) will strictly return only non-password user attributes.

According to Auth0’s official policy on Migrating Database Users from One Tenant to Another Tenant you must open a support ticket to get your password hashes:

  • Submit a Support Ticket: A tenant administrator must log into the Auth0 Support Center and request a secure export of your database’s user password hashes

  • Plan Requirement: Please note that password hash exports are a security-controlled service and are only available to tenants on a paid subscription tier

I hope this helps!
Best regards,
Remus