Update inventory in bulk
Call the Feeds endpoint to update the inventory of multiple SKUs in a single API call.
Note: These POST endpoints are throttled—if you submit too many feeds too quickly, you might hit Walmart’s rate limits and receive
HTTP 429
responses.Calls are limited to 10 calls per hour, with a max file size of 5 MB per call, and 30 minutes to process each call. To learn more about throttling, refer to the Marketplace throttling documentation.
There are two types of feeds available:
- Bulk item inventory update
Use this feed to update the inventory of multiple items at one fulfillment center (ship node). Specifying the ship node is optional. - MultiNode bulk inventory update
Use this feed to update the inventory of multiple items across multiple fulfillment centers. In this feed, ship nodes are mandatory in the request body. If you don't provide the ship nodes, the feed errors out.
Once you submit a feed, you receive a feed ID in the response. You can then use the Feed Status API or the All Feed Statuses API to monitor the progress of your submission, including line-item level statuses.
Note: This page describes examples using only the required parameters and inputs for bulk inventory updates. For a full list of customization options and additional capabilities, refer to the Marketplace Inventory API reference.
Bulk item inventory update
Endpoint
POST https://marketplace.walmartapis.com/v3/feeds?feedType=inventory
Sample feed file
This file defines two SKUs with the corresponding inventory quantities and an available date. Values such as SKU numbers, quantity amounts, and dates are placeholders that can be replaced with your actual data.
{ "InventoryHeader": { "version": "1.4" }, "Inventory": [ { "sku": "SKU_012345", "quantity": { "unit": "EACH", "amount": 10 }, "inventoryAvailableDate": "YYYY-MM-DD" }, { "sku": "SKU_678901", "quantity": { "unit": "EACH", "amount": 20 }, "inventoryAvailableDate": "YYYY-MM-DD" } ]
}
Sample request
This sample request updates the inventory for multiple SKUs at a single fulfillment center. The JSON payload includes an InventoryHeader
that specifies the version and an Inventory
array that lists each SKU along with its quantity and the date when the inventory becomes available. This basic example uses only the required fields to demonstrate the core functionality. If no ship node is provided, the update applies to the seller's default virtual node.
curl -X POST "https://marketplace.walmartapis.com/v3/feeds?feedType=inventory" \ -H "Authorization: Basic <Base64EncodedConsumerKey:ConsumerSecret>" \ -H "WM_SVC.NAME: Walmart Marketplace" \ -H "WM_QOS.CORRELATION_ID: 1234567890" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -F "file=@/path/to/your/BulkInventoryFeed.json"
import requests url = "https://marketplace.walmartapis.com/v3/feeds"
params = { "feedType": "inventory"
} headers = { "Authorization": "Basic <Base64EncodedConsumerKey:ConsumerSecret>", "WM_SVC.NAME": "Walmart Marketplace", "WM_QOS.CORRELATION_ID": "1234567890", "Accept": "application/json"
} files = { "file": ("BulkInventoryFeed.json", open("/path/to/your/BulkInventoryFeed.json", "rb"), "application/json")
} response = requests.post(url, headers=headers, params=params, files=files)
print("Status code:", response.status_code)
print("Response JSON:", response.json())
Modify your code
- Replace
/path/to/your/inventoryFeed.json
with the actual file path to your JSON feed. - Insert your actual Base64-encoded credentials in the Authorization header.
- Use your own unique
WM_QOS.CORRELATION_ID
if needed.
Sample response
This sample response confirms that the bulk inventory update feed was successfully submitted. It returns a feed ID that uniquely identifies the submission.
{ "feedId": "012345689abcdefg"
}
MultiNode bulk inventory update
This feed enables you to update the inventory of multiple items across multiple fulfillment centers. In this feed, you must specify the ship node for each item in the request body. Failure to include the ship node will cause the feed to error out.
Endpoint
POST https://marketplace.walmartapis.com/v3/feeds?feedType=MP_INVENTORY
Sample feed file
This file updates the inventory for multiple SKUs across multiple fulfillment centers. The JSON payload contains an inventoryHeader
with the version and an inventory
array that lists each SKU. For each SKU, a shipNodes array is provided. Each entry in the shipNodes array includes the required quantity information for a specific ship node.
{ "inventoryHeader": { "version": "1.5" }, "inventory": [ { "sku": "SKU_012345", "shipNodes": [ { "shipNode": "SHIP_NODE_012345", "quantity": { "unit": "EACH", "amount": 100 } } ] }, { "sku": "SKU_678901", "shipNodes": [ { "shipNode": "SHIP_NODE_012345", "quantity": { "unit": "EACH", "amount": 21 } } ] }, { "sku": "SKU_234567", "shipNodes": [ { "shipNode": "SHIP_NODE_012345", "quantity": { "unit": "EACH", "amount": 13 } }, { "shipNode": "SHIP_NODE_345678", "quantity": { "unit": "EACH", "amount": 12 } } ] } ]
}
Sample request
This sample request shows how to update inventory for multiple SKUs across several fulfillment centers using the MultiNode bulk inventory update feed. The JSON payload includes an inventoryHeader
with the version and an inventory
array. Each SKU entry lists one or more ship nodes, each with the required quantity information. All ship nodes are mandatory in this feed.
curl -X POST "https://marketplace.walmartapis.com/v3/feeds?feedType=MP_INVENTORY" \ -H "Authorization: Basic <Base64EncodedConsumerKey:ConsumerSecret>" \ -H "WM_SVC.NAME: Walmart Marketplace" \ -H "WM_QOS.CORRELATION_ID: 1234567890" \ -H "Accept: application/json" \ -H "Content-Type: multipart/form-data" \ -F "file=@/path/to/your/MultiNodeBulkInventoryFeed.json"
import requests url = "https://marketplace.walmartapis.com/v3/feeds"
params = { "feedType": "MP_INVENTORY"
} headers = { "Authorization": "Basic <Base64EncodedConsumerKey:ConsumerSecret>", "WM_SVC.NAME": "Walmart Marketplace", "WM_QOS.CORRELATION_ID": "1234567890", "Accept": "application/json"
} files = { "file": ("MultiNodeBulkInventoryFeed.json", open("/path/to/your/MultiNodeBulkInventoryFeed.json", "rb"), "application/json")
} response = requests.post(url, headers=headers, params=params, files=files)
print("Status code:", response.status_code)
print("Response JSON:", response.json())
Modify your code
Replace path/to/your/MultiNodeBulkInventoryFeed.json
with the actual file path to your JSON feed.
Sample response
This sample response confirms that the multi-node inventory update feed was successfully submitted by returning a unique feed ID.
{ "feedId": "012345689"
}
Result
After you submit a feed using either feed type, you will receive a response containing a feed ID.
You can use this feed ID with the Feed Status API or All Feed Statuses API to monitor the progress of your submission and see the line-item status for each inventory update.
Updated 8 days ago