Copy a model in Vertex AI Model Registry Stay organized with collections Save and categorize content based on your preferences.
Training your AutoML, large models, and custom models inVertex AI to the level you want requires time andexperimentation. If you have a well-performing model that you'd like to use inanother project or location, training a new model isn't the best option. Modeltraining is non-deterministic in nature therefore it's unlikely you'd end upwith an identical model from identical data. Additionally, training a model ineach region or project isn't a foolproof way to maintain cross-region modelbehavior consistency. With Vertex AI Model Registry copy model, you cancopy a model from the Vertex AI Model Registry into a separate location inthe same project or to a different project.
Note: Copy model doesn't support copying AutoML Natural Languageand BigQuery ML models.When performing a model copy, if you don't specify the model version you want tocopy over, the default model version is copied. To learn more about modeldefault or the model alias, seeHow to use model aliases.
Limitations
When you copy a model, not all model information is copied over. The copiedmodel won't retain the following:
- Version aliases.
- The custom model ID. You can specify a new ID once the model is copied.
- Any existing model evaluation.
- Encryption specs. You're required to specify the encryption key when copyingthe model for your target region.
- Deployments and batch inferences.
For cross-project copy, you can't copy custom models that have a third-partycontainer image.
Copy models between projects
Prerequisites
To copy a model across projects, the source model owner needs to first grant themodel export permission to the destination project:
- Select your project from the Google Cloud console.
- Navigate to the IAM & Admin page.
- On the IAM permissions page, clickGrant access and a pop up windowappears to let you add a new principal to the source project.
- Get the per-product, per-project service account (P4SA)
service-{project_number}@gcp-sa-aiplatform.iam.gserviceaccount.comof the destination project. - Add the P4SA of the destination project as a new principal to the sourceproject and assign the Vertex AI Service Agent role to it.
- After clickingSave, the destination project P4SA will have permissionsto export models from the source project.
REST
Before using any of the request data, make the following replacements:
DESTINATION_LOCATION: The region where you want to copy the model to. For example,us-central1DESTINATION_PROJECT_ID: The project ID or project number where you want to copy the model to.SOURCE_PROJECT_ID: Your project ID or project number.SOURCE_LOCATION: The Vertex AI region from which you are copying a model.SOURCE_MODEL_ID: The source of the model ID to copy.VERSION_ID: (Optional) ID of the model version to copy (if not provided the default version is copied)
HTTP method and URL:
POST https://DESTINATION_LOCATION-aiplatform.googleapis.com/v1/projects/DESTINATION_PROJECT_ID/locations/DESTINATION_LOCATION/models:copy
Request JSON body:
{ "sourceModel": "projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/models/SOURCE_MODEL_ID" }To send your request, expand one of these options:
curl (Linux, macOS, or Cloud Shell)
Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list. Save the request body in a file namedrequest.json, and execute the following command:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://DESTINATION_LOCATION-aiplatform.googleapis.com/v1/projects/DESTINATION_PROJECT_ID/locations/DESTINATION_LOCATION/models:copy"
PowerShell (Windows)
Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list. Save the request body in a file namedrequest.json, and execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://DESTINATION_LOCATION-aiplatform.googleapis.com/v1/projects/DESTINATION_PROJECT_ID/locations/DESTINATION_LOCATION/models:copy" | Select-Object -Expand Content
You should receive a JSON response similar to the following:
{ "name": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CopyModelOperationMetadata", "genericMetadata": { "createTime": "2022-07-01T00:10:55.621355Z", "updateTime": "2022-07-01T00:10:55.621355Z" } } }Console
Use the following instructions to copy a models to a different project.
- In the Google Cloud console, go to theVertex AI Model Registry page.Go to Vertex AI Model Registry
- From the Model Registry, select theMore actions menu for the model you want to copy.
- ClickCopy model.
- Choose eitherTo another project orTo another region.
Copy model to a different project
- ChooseTo another project.
- Choose the model version you want to copy.
- Choose the destination project you want to copy to.
- Choose the destination region, for example,
us-central1. - Advanced options: Optional to choose the encryption method, using a Google-owned and Google-managed encryption key or a Cloud KMS key.
Copy models between locations
REST
Before using any of the request data, make the following replacements:
DESTINATION_LOCATION: The region where you are using Vertex AI. For example,us-central1SOURCE_LOCATION: The Vertex AI region from which you will copy the model.PROJECT_ID: Your project ID or project number.MODEL_ID:ID of the model to copy.VERSION_ID: (Optional) ID of the model version to copy (if not provided the default version is copied)
HTTP method and URL:
POST https://DESTINATION_LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:copy
Request JSON body:
{"sourceModel": "projects/PROJECT_ID/locations/SOURCE_LOCATION/models/MODEL_ID[@VERSION_ID]"}To send your request, expand one of these options:
curl (Linux, macOS, or Cloud Shell)
Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list. Save the request body in a file namedrequest.json, and execute the following command:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://DESTINATION_LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:copy"
PowerShell (Windows)
Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list. Save the request body in a file namedrequest.json, and execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://DESTINATION_LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:copy" | Select-Object -Expand Content
You should receive a JSON response similar to the following:
{ "name": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CopyModelOperationMetadata", "genericMetadata": { "createTime": "2022-07-01T00:10:55.621355Z", "updateTime": "2022-07-01T00:10:55.621355Z" } } }Console
With a cross-region copy, you can copy a model over as a new model within the target region, or asa new version of an existing model in that region.
Use the following instructions to copy models.
- In the Google Cloud console, go to theVertex AI Model Registry page.Go to Model Registry
- From the Model Registry, select theMore actions menu for the model you want to copy.
- ClickCopy model
- Choose eitherTo another project orTo another region.
Copy model to a different region
- ChooseTo another region.
- Choose the model version you want to copy.
- Select eitherCopy as new model orCopy as new version.
- Choose the destination region.
- Add the destination model name or model ID. If you copy over a model for the first time, it's assigned the default alias in the new region.
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-12-17 UTC.