Skip to main content

POST/bulk_update_price_quantity

This call is used by the seller to update the total ship-to-home quantity of one inventory item, and/or to update the price and/or quantity of one or more offers associated with one inventory item. Up to 25 offers associated with an inventory item may be updated with one bulkUpdatePriceQuantity call. Only one SKU (one product) can be updated per call.

Note: Each listing can be revised up to 250 times in one calendar day. If this revision threshold is reached, the seller will be blocked from revising the item until the next calendar day.
Note: In addition to the authorization header, which is required for all Inventory API calls, this call also requires the Content-Type header. See the HTTP request headers for more information.
The getOffers call can be used to retrieve all offers associated with a SKU. The seller will just pass in the correct SKU value through the sku query parameter. To update an offer, the offerId value is required, and this value is returned in the getOffers call response. It is also useful to know which offers are unpublished and which ones are published. To get this status, look for the status value in the getOffers call response. Offers in the published state are live eBay listings, and these listings will be revised with a successful bulkUpdatePriceQuantity call.

An issue will occur if duplicate offerId values are passed through the same offers container, or if one or more of the specified offers are associated with different products/SKUs.

Note: For multiple-variation listings, it is recommended that the bulkUpdatePriceQuantity call be used to update price and quantity information for each SKU within that multiple-variation listing instead of using createOrReplaceInventoryItem calls to update the price and quantity for each SKU. Just remember that only one SKU (one product variation) can be updated per call.

Input

Resource URI

POST https://api.ebay.com/sell/inventory/v1/bulk_update_price_quantity

This method is supported in Sandbox environment. To access the endpoint, just replace the api.ebay.com root URI with api.sandbox.ebay.com

URI parameters

This method has no URI parameters.

HTTP request headers

All requests made to eBay REST operations require you to provide the Authorization HTTP header for authentication authorization.

The table below shows additional HTTP request headers that are either required, conditionally required, or strongly recommended for this method. Other standard HTTP request headers- opens rest request components page (not in this table) can also be used, but they are optional.

HeaderTypeDescription
Content-TypestringThis header indicates the format of the request body provided by the client. Its value should be set to application/json.

For more information, refer to HTTP request headers.

Occurrence: Required

OAuth scope

This request requires an access token created with the authorization code grant flow, using one or more scopes from the following list (please check your Application Keys page for a list of OAuth scopes available to your application):

https://api.ebay.com/oauth/api_scope/sell.inventory

See OAuth access tokens for more information.

Request payload

Copy complete valid JSON to clipboard

Request fields

Input container/fieldTypeDescription
requestsarray of PriceQuantity

This container is used by the seller to update the total 'ship-to-home' quantity of one or more inventory items (up to 25) and/or to update the price and/or quantity of one or more specific published offers.

Occurrence: Required

requests.offersarray of OfferPriceQuantity

This container is needed if the seller is updating the price and/or quantity of one or more published offers, and a successful call will actually update the active eBay listing with the revised price and/or available quantity.

This call is not designed to work with unpublished offers. For unpublished offers, the seller should use the updateOffer call to update the available quantity and/or price.

If the seller is also using the shipToLocationAvailability container and sku field to update the total 'ship-to-home' quantity of the inventory item, the SKU value associated with the corresponding offerId value(s) must be the same as the corresponding sku value that is passed in, or an error will occur.

Important! A separate (OfferPriceQuantity) node is required for each offer being updated.

Occurrence: Conditional

requests.offers.availableQuantityinteger

This field is used if the seller wants to modify the current quantity of the inventory item that will be available for purchase in the offer (identified by the corresponding offerId value).

This value represents the quantity of the item that is available in the marketplace specified within the offer, not the total quantity available. Because of this, this value should not exceed the value specified in the quantity field of the shipToLocationAvailability container (the total available quantity of the item across all marketplaces).

Note: To ensure that the available quantity allocated to a specific marketplace doesn't exceed the total available stock, the quantity specified on a listing will be the minimum value between this field and the quantity field.
Either the availableQuantity field or the price container is required, but not necessarily both.

Occurrence: Conditional

requests.offers.offerIdstring

This field is the unique identifier of the offer. If an offers container is used to update one or more offers associated to a specific inventory item, the offerId value is required in order to identify the offer to update with a modified price and/or quantity.

The seller can use the getOffers method (passing in the correct SKU value as a query parameter) to retrieve offerId values for offers associated with the SKU.

Occurrence: Conditional

requests.offers.priceAmount

This container is used if the seller wants to modify the current price of the inventory item. The dollar value set here will be the new price of the inventory item in the offer (identified by the corresponding offerId value). Either the availableQuantity field or the price container is required, but not necessarily both.

Occurrence: Conditional

requests.offers.price.currencystring

A three-digit string value representing the type of currency being used. Both the value and currency fields are required/always returned when expressing prices.

See the CurrencyCodeEnum type for the full list of currencies and their corresponding three-digit string values.

Occurrence: Conditional

requests.offers.price.valuestring

A string representation of a dollar value expressed in the currency specified in the currency field. Both the value and currency fields are required/always returned when expressing prices.

Occurrence: Conditional

requests.shipToLocationAvailabilityShipToLocationAvailability

This container is needed if the seller is updating the total 'ship-to-home' quantity for the corresponding inventory item (specified in the sku field). A successful call will update the inventory item record associated with the sku value.

Occurrence: Conditional

requests.shipToLocationAvailability.availabilityDistributionsarray of AvailabilityDistribution

This container is used to set the available quantity of the inventory item at one or more warehouse locations.

This container will be returned if available quantity is set for one or more inventory locations.

Occurrence: Optional

requests.shipToLocationAvailability.availabilityDistributions.fulfillmentTimeTimeDuration

This container is used to indicate the expected fulfillment time if the inventory item is shipped from the warehouse location identified in the corresponding merchantLocationKey field. The fulfillment time is the estimated number of business days after purchase that the buyer can expect the item to be delivered.

This field is optional, and is used by eBay to provide the estimated delivery date to buyers. This field is returned by getInventoryItem and getInventoryItems if set for the inventory item.

Occurrence: Optional

requests.shipToLocationAvailability.availabilityDistributions.fulfillmentTime.unitTimeDurationUnitEnum

This enumeration value indicates the time unit used to specify the fulfillment time, such as BUSINESS_DAY.

Occurrence: Conditional

requests.shipToLocationAvailability.availabilityDistributions.fulfillmentTime.valueinteger

The integer value in this field, along with the time unit in the unit field, will indicate the fulfillment time.

For standard orders that will be shipped, this value will indicate the expected fulfillment time if the inventory item is shipped from the inventory location. If the value of this field is 4, and the value of the unit field is BUSINESS_DAY, then the estimated delivery date after purchase is 4 business days.

Occurrence: Conditional

requests.shipToLocationAvailability.availabilityDistributions.merchantLocationKeystring

The unique identifier of an inventory location where quantity is available for the inventory item. This field is conditionally required to identify the inventory location that has quantity of the inventory item.

Use the getInventoryLocations method to retrieve merchant location keys.

Occurrence: Conditional

requests.shipToLocationAvailability.availabilityDistributions.quantityinteger

The integer value passed into this field indicates the quantity of the inventory item that is available at this inventory location. This field is conditionally required.

Occurrence: Conditional

requests.shipToLocationAvailability.quantityinteger

This container is used to set the total 'ship-to-home' quantity of the inventory item that will be available for purchase through one or more published offers.

This field represents the total quantity of the item that is available for sale across all marketplaces. To update the available quantity allocated to a specific marketplace, use the availableQuantity field in the offer container associated with that marketplace.

Note: To ensure that the available quantity allocated to a specific marketplace doesn't exceed the total available stock, the quantity specified on a listing will be the minimum value between this field and the availableQuantity field.
If an existing inventory item is being updated, and the 'ship-to-home' quantity already exists for the inventory item record, this field should be included again, even if the value is not changing, or the available quantity data will be lost.

Important! This field is not immediately required, but 'ship-to-home' quantity must be set before an offer of the inventory item can be published.

Occurrence: Conditional

requests.skustring

This is the seller-defined SKU value of the inventory item whose total 'ship-to-home' quantity will be updated. This field is only required when the seller is updating the total quantity of an inventory item using the shipToLocationAvailability container. If the seller is updating the price and/or quantity of one or more specific offers, one or more offerId values are used instead, and the sku value is not needed.

If the seller wants to update the price and/or quantity of one or more offers, and also wants to update the total 'ship-to-home' quantity of the corresponding inventory item, the SKU value associated with the offerId value(s) must be the same as the corresponding sku value that is passed in, or an error will occur.

Use the getInventoryItems method to retrieve SKU values.

Max Length: 50

Occurrence: Conditional

Output

HTTP response headers

This call has no response headers.

Response payload

Response fields

Output container/fieldTypeDescription
responsesarray of PriceQuantityResponse

This container will return an HTTP status code, offer ID, and SKU value for each offer/inventory item being updated, as well as an errors and/or warnings container if any errors or warnings are triggered while trying to update those offers/inventory items.

Occurrence: Always

responses.errorsarray of ErrorDetailV3

This array will be returned if there were one or more errors associated with the update to the offer or inventory item record.

Occurrence: Conditional

responses.errors.categorystring

This string value indicates the error category. There are three categories of errors: request errors, application errors, and system errors.

Occurrence: Conditional

responses.errors.domainstring

The name of the domain in which the error or warning occurred.

Occurrence: Conditional

responses.errors.errorIdinteger

A unique code that identifies the particular error or warning that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms.

Occurrence: Conditional

responses.errors.inputRefIdsarray of string

An array of one or more reference IDs which identify the specific request element(s) most closely associated to the error or warning, if any.

Occurrence: Conditional

responses.errors.longMessagestring

A detailed description of the condition that caused the error or warning, and information on what to do to correct the problem.

Occurrence: Conditional

responses.errors.messagestring

A description of the condition that caused the error or warning.

Occurrence: Conditional

responses.errors.outputRefIdsarray of string

An array of one or more reference IDs which identify the specific response element(s) most closely associated to the error or warning, if any.

Occurrence: Conditional

responses.errors.parametersarray of ErrorParameterV3

Various warning and error messages return one or more variables that contain contextual information about the error or waring. This is often the field or value that triggered the error or warning.

Occurrence: Conditional

responses.errors.parameters.namestring

This type contains the name and value of an input parameter that contributed to a specific error or warning condition.

Occurrence: Conditional

responses.errors.parameters.valuestring

This is the actual value that was passed in for the element specified in the name field.

Occurrence: Conditional

responses.errors.subdomainstring

The name of the subdomain in which the error or warning occurred.

Occurrence: Conditional

responses.offerIdstring

The unique identifier of the offer that was updated. This field will not be returned in situations where the seller is only updating the total 'ship-to-home' quantity of an inventory item record.

Occurrence: Conditional

responses.skustring

This is the seller-defined SKU value of the product. This field is returned whether the seller attempted to update an offer with the SKU value or just attempted to update the total 'ship-to-home' quantity of an inventory item record.

Max Length: 50

Occurrence: Always

responses.statusCodeinteger

The value returned in this container will indicate the status of the attempt to update the price and/or quantity of the offer (specified in the corresponding offerId field) or the attempt to update the total 'ship-to-home' quantity of an inventory item (specified in the corresponding sku field). For a completely successful update of an offer or inventory item record, a value of 200 will appear in this field. A user can view the HTTP status codes section for information on other status codes that may be returned with the bulkUpdatePriceQuantity method.

Occurrence: Always

responses.warningsarray of ErrorDetailV3

This array will be returned if there were one or more warnings associated with the update to the offer or inventory item record.

Occurrence: Conditional

responses.warnings.categorystring

This string value indicates the error category. There are three categories of errors: request errors, application errors, and system errors.

Occurrence: Conditional

responses.warnings.domainstring

The name of the domain in which the error or warning occurred.

Occurrence: Conditional

responses.warnings.errorIdinteger

A unique code that identifies the particular error or warning that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms.

Occurrence: Conditional

responses.warnings.inputRefIdsarray of string

An array of one or more reference IDs which identify the specific request element(s) most closely associated to the error or warning, if any.

Occurrence: Conditional

responses.warnings.longMessagestring

A detailed description of the condition that caused the error or warning, and information on what to do to correct the problem.

Occurrence: Conditional

responses.warnings.messagestring

A description of the condition that caused the error or warning.

Occurrence: Conditional

responses.warnings.outputRefIdsarray of string

An array of one or more reference IDs which identify the specific response element(s) most closely associated to the error or warning, if any.

Occurrence: Conditional

responses.warnings.parametersarray of ErrorParameterV3

Various warning and error messages return one or more variables that contain contextual information about the error or waring. This is often the field or value that triggered the error or warning.

Occurrence: Conditional

responses.warnings.parameters.namestring

This type contains the name and value of an input parameter that contributed to a specific error or warning condition.

Occurrence: Conditional

responses.warnings.parameters.valuestring

This is the actual value that was passed in for the element specified in the name field.

Occurrence: Conditional

responses.warnings.subdomainstring

The name of the subdomain in which the error or warning occurred.

Occurrence: Conditional

HTTP status codes

This call can return one of the following HTTP status codes. For an overview of the status codes, see HTTP status codes in Using eBay RESTful APIs.

StatusMeaning
200Success
207Multi-Status
400Bad Request
500Internal Server Error

Error codes

For more on errors, plus the codes of other common errors, see Handling errors.

CodeDomainCategoryMeaning
25001API_INVENTORYAPPLICATIONA system error has occurred. {additionalInfo}
25002API_INVENTORYREQUESTAny User error. {additionalInfo}
25709API_INVENTORYREQUESTInvalid value for {fieldName}. {additionalInfo}
25759API_INVENTORYREQUESTshipToLocationAvailability quantity value should be greater than or equal to auction allocation. Please provide valid quantity or unpublish auction offers of the sku.

Warnings

This call has no warnings.

Samples

New to making API calls? Please see Making a Call.

Note: Identifiers, such as order IDs or user IDs, and personal data in these samples might be anonymized or may no longer be active on eBay. If necessary, substitute current, relevant eBay data in your requests.

Sample 1: Updating Price and Quantity

This call will update the total quantity for one or more SKUs, and the price and/or quantity for one or more offers associated with those SKUs.

Input

This call will update three separate offers related to three distinct SKUs. The total ship-to-home quantity for the G********1 product is specified in the shipToLocationAvailability container. The price and quantity for thee offer associated with this SKU are updated. Similar actions are made for the products identified as G********2 and G********3.

POSThttps://api.ebay.com/sell/inventory/v1/bulk_update_price_quantity

Output

A statusCode field is returned for each offer to indicate if the offer was successfully updated. A statusCode value of 200 indicates that the offers were successfully updated. Notice that all offers were successfully updated and there were no error or warnings for any of the updates.