---
title: "PATCH /v1/projects/{projectsId}/locations/{locationsId}/apiHubInstances/{apiHubInstancesId}"
method: PATCH
path: "/v1/projects/{projectsId}/locations/{locationsId}/apiHubInstances/{apiHubInstancesId}"
tags: ["projects"]
---

# PATCH /v1/projects/{projectsId}/locations/{locationsId}/apiHubInstances/{apiHubInstancesId}

`PATCH /v1/projects/{projectsId}/locations/{locationsId}/apiHubInstances/{apiHubInstancesId}`

## Request

- Base URL: `https://apihub.googleapis.com`
- URL: `https://apihub.googleapis.com/v1/projects/{projectsId}/locations/{locationsId}/apiHubInstances/{apiHubInstancesId}`
- Auth: one of:
  - OAuth 2 and OAuth 2
    - Implicit: `https://accounts.google.com/o/oauth2/auth`
    - Scopes: `https://www.googleapis.com/auth/apihub.readwrite`
    - Authorization code: `https://accounts.google.com/o/oauth2/auth`
    - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/apihub.readwrite`
  - OAuth 2 and OAuth 2
    - Implicit: `https://accounts.google.com/o/oauth2/auth`
    - Scopes: `https://www.googleapis.com/auth/cloud-platform`
    - Authorization code: `https://accounts.google.com/o/oauth2/auth`
    - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/cloud-platform`
- TypeScript: <https://skmtc.dev/google/apis/apihub/docs/v1/projects/:projectsId/locations/:locationsId/apiHubInstances/:apiHubInstancesId/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update an Api Hub instance. The following fields in the ApiHubInstance can be updated: * disable_search * vertex_location * agent_registry_sync_config The update_mask should be used to specify the fields being updated.

## Path parameters

- `projectsId` string, required
- `locationsId` string, required
- `apiHubInstancesId` string, required

## Query parameters

- `updateMask` string, google-fieldmask

## Request body

- GoogleCloudApihubV1ApiHubInstance: An ApiHubInstance represents the instance resources of the API Hub. Currently, only one ApiHub instance is allowed for each project.
  - `config` GoogleCloudApihubV1Config: Available configurations to provision an ApiHub Instance.
    - `agentRegistrySyncConfig` GoogleCloudApihubV1AgentRegistrySyncConfig: The configuration for Agent Registry sync.
      - `disabled` boolean: Optional. If true, the MCP data sync to the Agent Registry will be disabled. The default value is false.
    - `cmekKeyName` string: Optional. The Customer Managed Encryption Key (CMEK) used for data encryption. The CMEK name should follow the format of `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`, where the location must match the instance location. If the CMEK is not provided, a GMEK will be created for the instance.
    - `disableSearch` boolean: Optional. If true, the search will be disabled for the instance. The default value is false.
    - `encryptionType` 'ENCRYPTION_TYPE_UNSPECIFIED' | 'GMEK' | 'CMEK': Optional. Encryption type for the region. If the encryption type is CMEK, the cmek_key_name must be provided. If no encryption type is provided, GMEK will be used.
    - `vertexLocation` string: Optional. The name of the Vertex AI location where the data store is stored.
  - `createTime` string, google-datetime: Output only. Creation timestamp.
  - `description` string: Optional. Description of the ApiHub instance.
  - `labels` object: Optional. Instance labels to represent user-provided metadata. Refer to cloud documentation on labels for more details. https://cloud.google.com/compute/docs/labeling-resources
  - `name` string: Identifier. Format: `projects/{project}/locations/{location}/apiHubInstances/{apiHubInstance}`.
  - `state` 'STATE_UNSPECIFIED' | 'INACTIVE' | 'CREATING' | 'ACTIVE' | 'UPDATING' | 'DELETING' | 'FAILED': Output only. The current state of the ApiHub instance.
  - `stateMessage` string: Output only. Extra information about ApiHub instance state. Currently the message would be populated when state is `FAILED`.
  - `updateTime` string, google-datetime: Output only. Last update timestamp.

## Response `200`

Successful response

- GoogleLongrunningOperation: This resource represents a long-running operation that is the result of a network API call.
  - `done` boolean: If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  - `error` GoogleRpcStatus: The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
    - `code` integer: The status code, which should be an enum value of google.rpc.Code.
    - `details` object[]: A list of messages that carry the error details. There is a common set of message types for APIs to use.
    - `message` string: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  - `metadata` object: Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
  - `name` string: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  - `response` object: The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.

## Changes

- **2026-11-08** `09b6c7d2247b`: 4 info
  - the security scope `https://www.googleapis.com/auth/apihub.readwrite` was added to the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/apihub.readwrite` was added to the endpoint's security scheme `Oauth2c`
  - the security scope `https://www.googleapis.com/auth/cloud-platform` was removed from the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/cloud-platform` was removed from the endpoint's security scheme `Oauth2c`

[Operation history](https://skmtc.dev/google/apis/apihub/changes/v1/projects/:projectsId/locations/:locationsId/apiHubInstances/:apiHubInstancesId/patch.md)

---

[API](https://skmtc.dev/google/apis/apihub.md) - [All operations](https://skmtc.dev/google/apis/apihub/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/apihub/revisions/09b6c7d2247b?raw)
