account | DynamicAccount | Yes | - | Select the Merchant Center account that owns the product inputs. |
update_type | string or SelectableOption | Yes | - | Choose whether to update a single product or many at once. Options: single or bulk. |
data_source_id | string or SelectItem | Yes | - | Primary or supplemental API data source ID containing the product inputs. Only API data sources support ProductInput writes. Applies to every row in bulk mode. |
product_input_id | string or SelectItem | No | - | Product input identifier, usually contentLanguagefeedLabelofferId, for example enUSsku123. Use Google’s unpadded base64url form when an identifier component contains /, %, or ~. Required for single mode. |
update_mask | string | No | - | Optional Google FieldMask of ProductInput fields to update. Product attribute masks can only name top-level attributes; custom attributes use the customAttributes. prefix. A masked field omitted from product_input is deleted. If omitted, Google updates all populated fields. Full replacement with * is not supported. |
product_input | object or string | No | - | Official Google Merchant API ProductInput patch body as an object or JSON string. Use Google’s REST camelCase field names exactly. The resource name is set from account and product_input_id. An empty object is valid when deleting every field in update_mask. Note: Google hard-limits updates to twice per day per product. Required for single mode. |
structured_data | array (also accepts a comma-separated string) | No | - | Use only when update_type is bulk. A list of up to 200 rows, each with product_input_id (required), product_input (the official ProductInput patch body), and an optional update_mask. Note: Google hard-limits updates to twice per day per product. |
return_detailed_results | boolean | No | False | Bulk mode only. If true, returns per-row results and does not raise on partial failures. |