# Method: accounts.productInputs.patch

- [HTTP request](https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs/patch#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs/patch#body.PATH_PARAMETERS)
- [Query parameters](https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs/patch#body.QUERY_PARAMETERS)
- [Request body](https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs/patch#body.request_body)
- [Response body](https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs/patch#body.response_body)
- [Authorization scopes](https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs/patch#body.aspect)
- [Try it!](https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs/patch#try-it)

Updates the existing product input in your Merchant Center account. The name of the product input to update is taken from the `name` field within the `ProductInput` resource.

After inserting, updating, or deleting a product input, it may take several minutes before the processed product can be retrieved.

### HTTP request

`PATCH https://merchantapi.googleapis.com/products/v1/{productInput.name=accounts/*/productInputs/*}`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `productInput.name` | `string` Identifier. The name of the product. Format: `accounts/{account}/productInputs/{productinput}` The {productinput} segment is a unique identifier for the product. This identifier must be unique within a merchant account and generally follows the structure: `contentLanguage~feedLabel~offerId`. Example: `en~US~sku123` For legacy local products, the structure is: `local~contentLanguage~feedLabel~offerId`. Example: `local~en~US~sku123` The format of the {productinput} segment in the URL is automatically detected by the server, supporting two options: 1. **Encoded Format** : The `{productinput}` segment is an unpadded base64url encoded string (RFC 4648 Section 5). The decoded string must result in the `contentLanguage~feedLabel~offerId` structure. This encoding MUST be used if any part of the product identifier (like `offerId`) contains characters such as `/`, `%`, or `~`. - Example: To represent the product ID `en~US~sku/123`, the `{productinput}` segment must be the unpadded base64url encoding of this string, which is `ZW5-VVN-c2t1LzEyMw`. The full resource name for the product would be `accounts/123/productInputs/ZW5-VVN-c2t1LzEyMw`. 2. **Plain Format** : The `{productinput}` segment is the tilde-separated string `contentLanguage~feedLabel~offerId`. This format is suitable only when `contentLanguage`, `feedLabel`, and `offerId` do not contain URL-problematic characters like `/`, `%`, or `~`. We recommend using the **Encoded Format** for all product IDs to ensure correct parsing, especially those containing special characters. The presence of tilde (`~`) characters in the `{productinput}` segment is used to differentiate between the two formats. |

### Query parameters

| Parameters ||
|---|---|
| `updateMask` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#field-mask` format)`` Optional. The list of product attributes to be updated. If the update mask is omitted, then it is treated as implied field mask equivalent to all fields that are populated (have a non-empty value). Attributes specified in the update mask without a value specified in the body will be deleted from the product. Update mask can only be specified for top level fields in attributes and custom attributes. To specify the update mask for custom attributes you need to add the `custom_attribute.` prefix. Providing special "\*" value for full product replacement is not supported. |
| `dataSource` | `string` Required. The primary or supplemental product data source where `dataSource` name identifies the product input to be updated. Only API data sources are supported. Format: `accounts/{account}/dataSources/{datasource}`. For example, `accounts/123456/dataSources/104628`. |

### Request body

The request body contains an instance of `https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs#ProductInput`.

### Response body

If successful, the response body contains an instance of `https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs#ProductInput`.

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/content`

For more information, see the [OAuth 2.0 Overview](https://developers.google.com/identity/protocols/OAuth2).