Update promotional price for a single item
Updates or deletes a promotional price for a single SKU. Set processMode to UPSERT to create or update a promotion, orDELETE to remove one. To remove all promotions for a SKU, set replaceAll to true and send an empty pricing array. The request accepts JSON with one or more pricing entries that define effective and expiration timestamps, price type, price amounts and currency, comparison price, and display placement (cart or checkout).
Note: This page describes an example using only the required parameters and update a promotional price. For a full list of customization options and additional capabilities, refer to the Marketplace Promotions API Reference.
Endpoint
PUT https://marketplace.walmartapis.com/v3/price
Sample request
This sample request updates the price of an item with the specified promotion details.
curl --request PUT \ --url 'https://marketplace.walmartapis.com/v3/price?promo=true' \ --header "WM_SEC.ACCESS_TOKEN: $WM_ACCESS_TOKEN" \ --header "WM_QOS.CORRELATION_ID: $(uuidgen)" \ --header"WM_SVC.NAME: Walmart Marketplace" \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data '
{ "pricing": [ { "currentPriceType": "REDUCED", "currentPrice": { "currency": "USD", "amount": 4 }, "comparisonPrice": { "currency": "USD", "amount": 4 }, "comparisonPriceType": "BASE", "priceDisplayCodes": "CART", "effectiveDate": "2019-11-03T09:49:57.943Z", "expirationDate": "2019-12-03T09:49:57.943Z", "processMode": "UPSERT" } ], "sku": "97964_KFTest"
}
'
import requests url = "https://marketplace.walmartapis.com/v1/order-fulfillment/status"
params = {"orderNumber": "SO123", "orderChannelId": "ORDER_CHANNEL_ID"}
headers = { "Authorization": "Bearer <ACCESS_TOKEN>", "martId": "202", "buId": "0", "Accept": "application/json",
} response = requests.get(url, headers=headers, params=params, timeout=30)
response.raise_for_status()
print(response.json())
const url = new URL("https://marketplace.walmartapis.com/v3/price");
url.searchParams.set("promo", "true"); const res = await fetch(url, { method: "PUT", headers: { "WM_SEC.ACCESS_TOKEN": "<REDACTED>", "WM_QOS.CORRELATION_ID": crypto.randomUUID(), "WM_SVC.NAME": "Walmart Marketplace", "Content-Type": "application/json", "Accept": "application/json" }, body: JSON.stringify({ sku: "97964_KFTest", pricing: [{ currentPrice: { currency: "USD", amount: 4.00 }, currentPriceType: "REDUCED", comparisonPriceType: "BASE", comparisonPrice: { currency: "USD", amount: 4.99 }, priceDisplayCodes: "CART", effectiveDate: "2019-11-03T09:49:57.943Z", expirationDate: "2019-12-03T09:49:57.943Z", processMode: "UPSERT" }] })
}); if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
const data = await res.json();
console.log(res.status, data);
Modify your code
- Use a unique
WM_QOS.CORRELATION_IDfor each request. - Replace
WM_SEC.ACCESS_TOKENwith your valid access token obtained through authentication.
Sample response
This sample response confirms the promotional price update was accepted for the SKU. Changes may take a few minutes to appear on the site.
{ "ItemPriceResponse": { "mart": "WALMART_US", "message": "Price has been updated for the item. It may take up to five minutes for this change to be reflected on the site.", "sku": "97964_KFTest" }
}
Result
On success, this API Returns a 200 OK response along with the SKU and an acknowledgement message.
Updated 41 minutes ago
