Method: projects.locations.models.upload

Uploads a Model artifact into Vertex AI.

HTTP request

POST https://{service-endpoint}/v1/{parent}/models:upload

Where {service-endpoint} is one of the supported service endpoints.

Path parameters



Required. The resource name of the Location into which to upload the Model. Format: projects/{project}/locations/{location}

Request body

The request body contains data with the following structure:

JSON representation
  "parentModel": string,
  "modelId": string,
  "model": {
    object (Model)
  "serviceAccount": string


Optional. The resource name of the model into which to upload the version. Only specify this field when uploading a new version.



Optional. The id to use for the uploaded Model, which will become the final component of the model resource name.

This value may be up to 63 characters, and valid characters are [a-z0-9_-]. The first character cannot be a number or hyphen.


object (Model)

Required. The Model to create.



Optional. The user-provided custom service account to use to do the model upload. If empty, Vertex AI service Agent will be used to access resources needed to upload the model. This account must belong to the target project where the model is uploaded to, i.e., the project specified in the parent field of this request and have necessary read permissions (to Google Cloud Storage, Artifact Registry, etc.).

Response body

If successful, the response body contains an instance of Operation.

Authorization scopes

Requires the following OAuth scope:


For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • aiplatform.models.upload

For more information, see the IAM documentation.