# Importing and exporting ML packages

> Export an ML package from AI Center and import it into a different tenant or account to migrate models between environments.

You can move your ML models when migrating between tenants or when moving from one account to another.

In order to do this, you first need to download the package you want to migrate and import it into the new environment.

## Downloading ML packages

You can export an already created package and import it in a different or the same environment.

:::note
Base versions of Docker-based models cannot be downloaded since there is no ZIP file available. Once the Docker-based model is trained, the trained version will have a ZIP file available.
:::

Follow these steps to download an already created package:

1. In the **ML Packages** page, select an already created package from the list.
2. In the **Version** tab, select the three-dot **⁝** icon of the package.
3. Select **Download**.

After selecting **Download**, two files will be downloaded:

* A `zip` file containing the package
* A `json` file containing the package metadata, such as name, version, and other information. This information is needed to map the downloaded package to the right one in the new environment.

## Import ML package

Follow these steps to upload a package exported from **UiPath® AI Center**:

1. In the **ML Packages** page, select the **Import ML Package** button. The **Import new package** page is displayed.
2. In the **Upload package** field, add the `zip` file downloaded using the [Downloading ML Packages](https://docs.uipath.com/ai-center/automation-cloud/latest/user-guide/importing-and-exporting-ml-packages#downloading-ml-packages) procedure.
   :::note
   The name of the `zip` file must match the package name.
   :::
3. In the **Upload metadata json** field, add the `json` file downloaded using the [Downloading ML Packages](https://docs.uipath.com/ai-center/automation-cloud/latest/user-guide/importing-and-exporting-ml-packages#downloading-ml-packages) procedure.
4. Select **Create**.

Private packages

* The imported package will have the same name as in the export environment, taken from the metadata file. If a package with the same name already exists, the `version` field from the metadata will be checked next. If the version is the same, a new minor version will be created. For example, if you import a package named `New Package`, version `7`, and you already have a package with the same name, but version `7.3` exists, the new imported package will be version `7.4`. If there is no version, the created package will have the next available major version.
* If the name from the imported package metadata does not exist in the destination environment, the new package name is created in the destination environment.

Public packages

* The imported package will have the same name as in the export environment, taken from the metadata file. If a package with the same name already exists, the `sourcePackageVersion` field from the metadata will be checked next for the `sourcePackageVersion` in the destination environment. After this, the next minor version will be uploaded. Make sure to either change the version in the destination environment, or change the `sourcePackageVersion` field in the metadata file to the available version in the destination environment.
* If the name from the imported package metadata does not exist in the destination environment, the new package name is created in the destination environment.
  :::note
  For the moment there are currently some limitations when importing a package from a different environment:
  * In case of private packages, if the major version of the imported package is different than the already existing one, an error
  is displayed.
  :::
