---
title: "POST /products/batch"
method: POST
path: "/products/batch"
tags: ["products"]
---

# POST /products/batch

`POST /products/batch`

Retrieves, inserts, and deletes multiple products in a single request.

## Request body

- ProductsCustomBatchRequest
  - `entries` ProductsCustomBatchRequestEntry[] — The request entries to be processed in the batch.
    - `merchantId` string, uint64 — The ID of the managing account.
    - `batchId` integer — An entry ID, unique within the batch request.
    - `updateMask` string, google-fieldmask — The comma-separated list of product attributes to be updated. Example: `"title,salePrice"`. Attributes specified in the update mask without a value specified in the body will be deleted from the product. *You must specify the update mask to delete attributes.* Only top-level product attributes can be updated. If not defined, product attributes with set values will be updated and other attributes will stay unchanged. Only defined if the method is `update`.
    - `product` Product — Required product attributes are primarily defined by the product data specification. See the Product Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect. The following reference documentation lists the field names in the **camelCase** casing style while the Products Data Specification lists the names in the **snake_case** casing style.
      - `promotionIds` string[] — The unique ID of a promotion.
      - `color` string — Color of the item.
      - `isBundle` boolean — Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.
      - `virtualModelLink` string — URL of the 3D model of the item to provide more visuals.
      - `id` string — The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product has one of the 2 forms channel:contentLanguage: targetCountry: offerId or channel:contentLanguage:feedLabel: offerId.
      - `productWeight` ProductWeight
        - `unit` string — Required. The weight unit. Acceptable values are: - "`g`" - "`kg`" - "`oz`" - "`lb`"
        - `value` number, double — Required. The weight represented as a number. The weight can have a maximum precision of four decimal places.
      - `title` string — Title of the item.
      - `gender` string — Target gender of the item.
      - `productWidth` ProductDimension
        - `value` number, double — Required. The length value represented as a number. The value can have a maximum precision of four decimal places.
        - `unit` string — Required. The length units. Acceptable values are: - "`in`" - "`cm`"
      - `excludedDestinations` string[] — The list of [destinations to exclude](//support.google.com/merchants/answer/6324486) for this target (corresponds to cleared check boxes in Merchant Center). Products that are excluded from all destinations for more than 7 days are automatically deleted.
      - `customLabel1` string — Custom label 1 for custom grouping of items in a Shopping campaign.
      - `channel` string — Required. The item's channel (online or local). Acceptable values are: - "`local`" - "`online`"
      - `adult` boolean — Should be set to true if the item is targeted towards adults.
      - `sizeType` string — The cut of the item. Recommended for apparel items.
      - `expirationDate` string — Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
      - `multipack` string, int64 — The number of identical products in a merchant-defined multipack.
      - `transitTimeLabel` string — The transit time label of the product, used to group product in account-level transit time tables.
      - `displayAdsValue` number, double — Offer margin for dynamic remarketing campaigns.
      - `taxCategory` string — The tax category of the product, used to configure detailed tax nexus in account-level tax settings.
      - `productTypes` string[] — Categories of the item (formatted as in product data specification).
      - `shippingHeight` ProductShippingDimension
        - `value` number, double — The dimension of the product used to calculate the shipping cost of the item.
        - `unit` string — The unit of value.
      - `gtin` string — Global Trade Item Number (GTIN) of the item.
      - `mpn` string — Manufacturer Part Number (MPN) of the item.
      - `maximumRetailPrice` Price
        - `value` string — The price represented as a number.
        - `currency` string — The currency of the price.
      - `disclosureDate` string — The date time when an offer becomes visible in search results across Google’s YouTube surfaces, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format. See [Disclosure date](https://support.google.com/merchants/answer/13034208) for more information.
      - `freeShippingThreshold` FreeShippingThreshold[] — Optional. Conditions to be met for a product to have free shipping.
        - `priceThreshold` Price
          - `value` string — The price represented as a number.
          - `currency` string — The currency of the price.
        - `country` string — Required. The [CLDR territory code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) of the country to which an item will ship.
      - `minHandlingTime` string, int64 — Minimal product handling time (in business days).
      - `shoppingAdsExcludedCountries` string[] — List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
      - `shipping` ProductShipping[] — Shipping rules.
        - `postalCode` string — The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
        - `country` string — The CLDR territory code of the country to which an item will ship.
        - `service` string — A free-form description of the service class or delivery speed.
        - `locationGroupName` string — The location where the shipping is applicable, represented by a location group name.
        - `locationId` string, int64 — The numeric ID of a location that the shipping rate applies to as defined in the Google Ads API.
        - `maxHandlingTime` string, int64 — Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it's received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
        - `maxTransitTime` string, int64 — Maximum transit time (inclusive) between when the order has shipped and when it's delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
        - `region` string — The geographic region to which a shipping rate applies.
        - `minTransitTime` string, int64 — Minimum transit time (inclusive) between when the order has shipped and when it's delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it's not required if maxTransitTime is present.
        - `price` Price
          - `value` string — The price represented as a number.
          - `currency` string — The currency of the price.
        - `minHandlingTime` string, int64 — Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it's received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it's not required if maxHandlingTime is present.
      - `mobileLink` string — URL for the mobile-optimized version of your item's landing page.
      - `maxHandlingTime` string, int64 — Maximal product handling time (in business days).
      - `subscriptionCost` ProductSubscriptionCost
        - `periodLength` string, int64 — The number of subscription periods the buyer has to pay.
        - `period` string — The type of subscription period. - "`month`" - "`year`"
        - `amount` Price
          - `value` string — The price represented as a number.
          - `currency` string — The currency of the price.
      - `sellOnGoogleQuantity` string, int64 — The quantity of the product that is available for selling on Google. Supported only for online products.
      - `customLabel3` string — Custom label 3 for custom grouping of items in a Shopping campaign.
      - `price` Price
        - `value` string — The price represented as a number.
        - `currency` string — The currency of the price.
      - `lifestyleImageLinks` string[] — Additional URLs of lifestyle images of the item. Used to explicitly identify images that showcase your item in a real-world context. See the Help Center article for more information.
      - `description` string — Description of the item.
      - `feedLabel` string — Feed label for the item. Either `targetCountry` or `feedLabel` is required. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-).
      - `shippingLabel` string — The shipping label of the product, used to group product in account-level shipping rules.
      - `productHeight` ProductDimension
        - `value` number, double — Required. The length value represented as a number. The value can have a maximum precision of four decimal places.
        - `unit` string — Required. The length units. Acceptable values are: - "`in`" - "`cm`"
      - `shippingLength` ProductShippingDimension
        - `value` number, double — The dimension of the product used to calculate the shipping cost of the item.
        - `unit` string — The unit of value.
      - `shippingWeight` ProductShippingWeight
        - `unit` string — The unit of value.
        - `value` number, double — The weight of the product used to calculate the shipping cost of the item.
      - `contentLanguage` string — Required. The two-letter ISO 639-1 language code for the item.
      - `googleProductCategory` string — Google's category of the item (see [Google product taxonomy](https://support.google.com/merchants/answer/1705911)). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.
      - `displayAdsLink` string — URL directly to your item's landing page for dynamic remarketing campaigns.
      - `externalSellerId` string — Required for multi-seller accounts. Use this attribute if you're a marketplace uploading products for various sellers to your multi-seller account.
      - `linkTemplate` string — URL template for merchant hosted local storefront.
      - `structuredTitle` ProductStructuredTitle — Structured title, for algorithmically (AI)-generated titles. See [title](https://support.google.com/merchants/answer/6324415#Whentouse) for more information.
        - `digitalSourceType` string — Optional. The digital source type. Acceptable values are: - "`trained_algorithmic_media`" - "`default`"
        - `content` string — Required. The title text. Maximum length is 150 characters.
      - `availability` string — Availability status of the item.
      - `condition` string — Condition or state of the item.
      - `sustainabilityIncentives` ProductSustainabilityIncentive[] — Optional. The list of sustainability incentive programs.
        - `amount` Price
          - `value` string — The price represented as a number.
          - `currency` string — The currency of the price.
        - `type` 'TYPE_UNSPECIFIED' | 'EV_TAX_CREDIT' | 'EV_PRICE_DISCOUNT' — Required. Sustainability incentive program.
        - `percentage` number, double — Optional. The percentage of the sale price that the incentive is applied to.
      - `loyaltyPrograms` LoyaltyProgram[] — Optional. A list of loyalty program information that is used to surface loyalty benefits (for example, better pricing, points, etc) to the user of this item.
        - `price` Price
          - `value` string — The price represented as a number.
          - `currency` string — The currency of the price.
        - `memberPriceEffectiveDate` string — Optional. A date range during which the item is eligible for member price. If not specified, the member price is always applicable. The date range is represented by a pair of ISO 8601 dates separated by a space, comma, or slash.
        - `programLabel` string — Required. The label of the loyalty program. This is an internal label that uniquely identifies the relationship between a merchant entity and a loyalty program entity. It must be provided so that system can associate the assets below (for example, price and points) with a merchant. The corresponding program must be linked to the merchant account.
        - `cashbackForFutureUse` Price
          - `value` string — The price represented as a number.
          - `currency` string — The currency of the price.
        - `shippingLabel` string — Optional. The shipping label for the loyalty program. You can use this label to indicate whether this offer has the loyalty shipping benefit. If not specified, the item is not eligible for loyalty shipping for the given loyalty tier.
        - `tierLabel` string — Required. The label of the tier within the loyalty program. Must match one of the labels within the program.
        - `loyaltyPoints` string, int64 — Optional. The amount of loyalty points earned on a purchase.
      - `material` string — The material of which the item is made.
      - `source` string — Output only. The source of the offer, that is, how the offer was created. Acceptable values are: - "`api`" - "`crawl`" - "`feed`"
      - `pause` string — Publication of this item should be temporarily paused. Acceptable values are: - "`ads`"
      - `loyaltyProgram` LoyaltyProgram — Allows the setting up of loyalty program benefits (for example price or points). https://support.google.com/merchants/answer/12922446
        - `price` Price
          - `value` string — The price represented as a number.
          - `currency` string — The currency of the price.
        - `memberPriceEffectiveDate` string — Optional. A date range during which the item is eligible for member price. If not specified, the member price is always applicable. The date range is represented by a pair of ISO 8601 dates separated by a space, comma, or slash.
        - `programLabel` string — Required. The label of the loyalty program. This is an internal label that uniquely identifies the relationship between a merchant entity and a loyalty program entity. It must be provided so that system can associate the assets below (for example, price and points) with a merchant. The corresponding program must be linked to the merchant account.
        - `cashbackForFutureUse` Price
          - `value` string — The price represented as a number.
          - `currency` string — The currency of the price.
        - `shippingLabel` string — Optional. The shipping label for the loyalty program. You can use this label to indicate whether this offer has the loyalty shipping benefit. If not specified, the item is not eligible for loyalty shipping for the given loyalty tier.
        - `tierLabel` string — Required. The label of the tier within the loyalty program. Must match one of the labels within the program.
        - `loyaltyPoints` string, int64 — Optional. The amount of loyalty points earned on a purchase.
      - `displayAdsId` string — An identifier for an item for dynamic remarketing campaigns.
      - `installment` Installment — Details of a monthly installment payment offering. [Learn more](https://support.google.com/merchants/answer/6324474) about installments.
        - `months` string, int64 — The number of installments the buyer has to pay.
        - `downpayment` Price
          - `value` string — The price represented as a number.
          - `currency` string — The currency of the price.
        - `amount` Price
          - `value` string — The price represented as a number.
          - `currency` string — The currency of the price.
        - `creditType` string — Optional. Type of installment payments. Supported values are: - "`finance`" - "`lease`"
      - `productHighlights` string[] — Bullet points describing the most relevant highlights of a product.
      - `customLabel2` string — Custom label 2 for custom grouping of items in a Shopping campaign.
      - `unitPricingBaseMeasure` ProductUnitPricingBaseMeasure
        - `value` string, int64 — The denominator of the unit price.
        - `unit` string — The unit of the denominator.
      - `salePrice` Price
        - `value` string — The price represented as a number.
        - `currency` string — The currency of the price.
      - `ageGroup` string — Target age group of the item.
      - `mobileLinkTemplate` string — URL template for merchant hosted local storefront optimized for mobile devices.
      - `brand` string — Brand of the item.
      - `pickupSla` string — Item store pickup timeline. Acceptable values are: - "`same day`" - "`next day`" - "`2-day`" - "`3-day`" - "`4-day`" - "`5-day`" - "`6-day`" - "`7-day`" - "`multi-week`"
      - `includedDestinations` string[] — The list of [destinations to include](//support.google.com/merchants/answer/7501026) for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.
      - `displayAdsTitle` string — Title of an item for dynamic remarketing campaigns.
      - `targetCountry` string — Required. The CLDR territory code for the item's country of sale.
      - `itemGroupId` string — Shared identifier for all variants of the same product.
      - `pattern` string — The item's pattern (for example, polka dots).
      - `adsRedirect` string — Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
      - `identifierExists` boolean — False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
      - `productLength` ProductDimension
        - `value` number, double — Required. The length value represented as a number. The value can have a maximum precision of four decimal places.
        - `unit` string — Required. The length units. Acceptable values are: - "`in`" - "`cm`"
      - `energyEfficiencyClass` string — The energy efficiency class as defined in EU directive 2010/30/EU.
      - `maxEnergyEfficiencyClass` string — The energy efficiency class as defined in EU directive 2010/30/EU.
      - `kind` string — Identifies what kind of resource this is. Value: the fixed string "`content#product`"
      - `customAttributes` CustomAttribute[] — A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (for example, `{ "name": "size type", "value": "regular" }`). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).
        - `groupValues` CustomAttribute[] — Subattributes within this attribute group. Exactly one of value or groupValues must be provided.
        - `name` string — The name of the attribute. Underscores will be replaced by spaces upon insertion.
        - `value` string — The value of the attribute.
      - `salePriceEffectiveDate` string — Date range during which the item is on sale (see product data specification ).
      - `costOfGoodsSold` Price
        - `value` string — The price represented as a number.
        - `currency` string — The currency of the price.
      - `sizeSystem` string — System in which the size is specified. Recommended for apparel items.
      - `canonicalLink` string — URL for the canonical version of your item's landing page.
      - `structuredDescription` ProductStructuredDescription — Structured description, for algorithmically (AI)-generated descriptions. See [description](https://support.google.com/merchants/answer/6324468#When_to_use) for more information.
        - `digitalSourceType` string — Optional. The digital source type. Acceptable values are: - "`trained_algorithmic_media`" - "`default`"
        - `content` string — Required. The description text. Maximum length is 5000 characters.
      - `customLabel0` string — Custom label 0 for custom grouping of items in a Shopping campaign.
      - `certifications` ProductCertification[] — Product [certification](https://support.google.com/merchants/answer/13528839), introduced for EU energy efficiency labeling compliance using the [EU EPREL](https://eprel.ec.europa.eu/screen/home) database.
        - `certificationAuthority` string — The certification authority, for example "European_Commission". Maximum length is 2000 characters.
        - `certificationCode` string — The certification code, for eaxample "123456". Maximum length is 2000 characters.
        - `certificationName` string — The name of the certification, for example "EPREL". Maximum length is 2000 characters.
        - `certificationValue` string — The certification value (also known as class, level or grade), for example "A+", "C", "gold". Maximum length is 2000 characters.
      - `taxes` ProductTax[] — Tax information.
        - `country` string — The country within which the item is taxed, specified as a CLDR territory code.
        - `taxShip` boolean — Should be set to true if tax is charged on shipping.
        - `region` string — The geographic region to which the tax rate applies.
        - `postalCode` string — The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
        - `rate` number, double — The percentage of tax rate that applies to the item price.
        - `locationId` string, int64 — The numeric ID of a location that the tax rate applies to as defined in the Google Ads API.
      - `additionalImageLinks` string[] — Additional URLs of images of the item.
      - `link` string — URL directly linking to your item's page on your website.
      - `displayAdsSimilarIds` string[] — Advertiser-specified recommendations.
      - `shippingWidth` ProductShippingDimension
        - `value` number, double — The dimension of the product used to calculate the shipping cost of the item.
        - `unit` string — The unit of value.
      - `autoPricingMinPrice` Price
        - `value` string — The price represented as a number.
        - `currency` string — The currency of the price.
      - `offerId` string — Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details. *Note:* Content API methods that operate on products take the REST ID of the product, *not* this identifier.
      - `pickupMethod` string — The pick up option for the item. Acceptable values are: - "`buy`" - "`reserve`" - "`ship to store`" - "`not supported`"
      - `sizes` string[] — Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
      - `adsGrouping` string — Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
      - `cloudExportAdditionalProperties` CloudExportAdditionalProperties[] — Extra fields to export to the Cloud Retail program.
        - `maxValue` number, float — Maximum float value of the given property. For example for a TV product 100.00.
        - `propertyName` string — Name of the given property. For example, "Screen-Resolution" for a TV product. Maximum string size is 256 characters.
        - `minValue` number, float — Minimum float value of the given property. For example for a TV product 1.00.
        - `textValue` string[] — Text value of the given property. For example, "8K(UHD)" could be a text value for a TV product. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order. Maximum string size is 256 characters.
        - `intValue` string[] — Integer values of the given property. For example, 1080 for a screen resolution of a TV product. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order.
        - `floatValue` number[] — Float values of the given property. For example for a TV product 1.2345. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order.
        - `boolValue` boolean — Boolean value of the given property. For example for a TV product, "True" or "False" if the screen is UHD.
        - `unitCode` string — Unit of the given property. For example, "Pixels" for a TV product. Maximum string size is 256 bytes.
      - `additionalSizeType` string — Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
      - `minEnergyEfficiencyClass` string — The energy efficiency class as defined in EU directive 2010/30/EU.
      - `availabilityDate` string — The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
      - `adsLabels` string[] — Similar to ads_grouping, but only works on CPC.
      - `productDetails` ProductProductDetail[] — Technical specification or additional product details.
        - `attributeValue` string — The value of the product detail.
        - `sectionName` string — The section header used to group a set of product details.
        - `attributeName` string — The name of the product detail.
      - `unitPricingMeasure` ProductUnitPricingMeasure
        - `value` number, double — The measure of an item.
        - `unit` string — The unit of the measure.
      - `customLabel4` string — Custom label 4 for custom grouping of items in a Shopping campaign.
      - `imageLink` string — URL of an image of the item.
    - `feedId` string, uint64 — The Content API Supplemental Feed ID. If present then product insertion or deletion applies to a supplemental feed instead of primary Content API feed.
    - `method` string — The method of the batch entry. Acceptable values are: - "`delete`" - "`get`" - "`insert`" - "`update`"
    - `productId` string — The ID of the product to get or mutate. Only defined if the method is `get`, `delete`, or `update`.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/content.md) · [All operations](https://skmtc.net/google/apis/content/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/content/revisions/1033388fc86f/schema)
