DSV Inventory API overview
Overview
Use the Drop Ship Vendor (DSV) Inventory Management API to retrieve and update inventory for items on Walmart.com. Keeping accurate inventory improves customer experience and sales performance.
Use this API to:
- Get the inventory for a single item at one ship node
- Get the inventory for a single item across ship nodes
- Update inventory for a single item at one ship node
- Submit bulk inventory updates with a feed and track processing
- Request and download inventory visibility reports
Base URLs
- Production:
https://api-gateway.walmart.com - Sandbox:
https://sandbox.walmartapis.com
Audience
- DSV suppliers and their solution providers
How it works
- Sync inventory in real time for one item using
GET /v3/inventoryorGET /v3/inventories/{id}. - Update inventory for one item and ship node with
PUT /v3/inventory/updateusinggtin,availabilityCode, andquantity. - Bulk update inventory across many items and nodes using a
DSV_INVENTORYfeed withPOST /v3/feeds. - Track feed status with
GET /v3/feeds/{feedId}. UsenextCursorfor pagination. - Request visibility reports with
POST /v3/reports, poll status withGET /v3/reports/reportRequests/{requestId}, and download usingGET /v3/reports/downloadReport.
Before you begin
- Obtain API credentials and generate an access token.
- Include Walmart headers on every request.
- Use a unique correlation ID per call.
Required headers
| Header | Type | Required | Description |
|---|---|---|---|
WM_SEC.ACCESS_TOKEN | string | Yes | Access token from the Token API. |
WM_QOS.CORRELATION_ID | string | Yes | Unique ID per request. Use a UUID. |
WM_SVC.NAME | string | Yes | Your Walmart service name. |
Accept | string | Yes | application/json (some endpoints also support application/xml). |
WM_CONSUMER.CHANNEL.TYPE | string | No | Channel identifier from onboarding. |
When sending a body, include
Content-Type: application/json.
Authentication
Use the Token API to obtain WM_SEC.ACCESS_TOKEN. Send the token in the header for each call. Refresh tokens when they expire.
Environments
- Sandbox is for development and validation. It uses the same paths and headers.
- Production returns live inventory and feed status data.
Rate limits and retries
Rate limits are not specified in this spec. Handle throttling responses such as 429 Too Many Requests and retry with exponential backoff. Avoid aggressive polling of feed and report status.
Errors
Handle HTTP status codes and error bodies. Common statuses:
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request. Fix parameters or body. |
| 401 | Unauthorized. Check or refresh token. |
| 403 | Forbidden. Insufficient permissions. |
| 404 | Not found. |
| 409 | Conflict. |
| 429 | Too many requests. Back off and retry. |
| 500 | Server error. Retry. |
| 503 | Service unavailable. Retry. |
Endpoints
Retrieve inventory for a single item at one ship node
GET /v3/inventory
Returns the inventory for a single item at a single ship node.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
sku | string | Conditional | Your SKU. Required if gtin is not provided. |
gtin | string | Conditional | GTIN‑14. Left‑pad with zeros to 14 digits. Required if sku is not provided. |
shipNode | string | Yes | Facility identifier for the node to query. |
cURL example
curl -X GET 'https://api-gateway.walmart.com/v3/inventory?gtin=00012947218283&shipNode=123456701' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 16338294-795c-44eb-97cd-37967f8532e5' -H 'WM_SVC.NAME: <YOUR_SERVICE_NAME>' -H 'Accept: application/json'
Success response (truncated)
{ "sku": "RG-IRAE-79VD", "gtin": "00012947218283", "quantity": {"unit": "EACH", "amount": 23}
}
Retrieve inventory for a single item across ship nodes
GET /v3/inventories/{id}
Returns inventory for an item across multiple ship nodes, or for a specified node.
Path and query
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes | Item identifier value. Use sku or gtin per productIdType. |
productIdType | query | string | Yes | sku or gtin. |
shipNode | query | string | No | Limit to a specific facility. |
cURL example
curl -X GET 'https://api-gateway.walmart.com/v3/inventories/00012947218283?productIdType=gtin' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 16338294-795c-44eb-97cd-37967f8532e5' -H 'WM_SVC.NAME: <YOUR_SERVICE_NAME>' -H 'Accept: application/json'
Success response (truncated)
{ "sku": "RG-IRAE-79VD", "gtin": "00012947218283", "nodes": [ { "shipNode": "123456701", "inputQty": {"unit": "EACH", "amount": 214}, "availToSellQty": {"unit": "EACH", "amount": 21}, "reservedQty": {"unit": "EACH", "amount": 24} } ]
}
Update inventory for a single item at one ship node
PUT /v3/inventory/update
Updates inventory for an item identified by GTIN at a single ship node.
Query parameter
| Name | Type | Required | Description |
|---|---|---|---|
shipNode | string | Yes | Facility identifier where the update applies. |
Request body
{ "gtin": "00012947218283", "availabilityCode": "AC", "quantity": {"unit": "EACH", "amount": 23}
}
Availability codes
| Code | Use |
|---|---|
AA | Infinite inventory. Quantity not required. |
AC | Standard inventory updates. |
cURL example
curl -X PUT 'https://api-gateway.walmart.com/v3/inventory/update?shipNode=123456701' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 16338294-795c-44eb-97cd-37967f8532e5' -H 'WM_SVC.NAME: <YOUR_SERVICE_NAME>' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{ "gtin": "00012947218283", "availabilityCode": "AC", "quantity": {"unit": "EACH", "amount": 23} }'
Success response (truncated)
{ "sku": "RG-IRAE-79VD", "gtin": "00012947218283", "quantity": {"unit": "EACH", "amount": 23}
}
Update inventory for items in bulk (feed)
POST /v3/feeds?feedType=DSV_INVENTORY
Submits a DSV inventory feed to update inventory across multiple items and ship nodes.
Query parameter
| Name | Type | Required | Description |
|---|---|---|---|
feedType | string | Yes | Must be DSV_INVENTORY. JSON only. |
Request body (schema excerpt)
{ "InventoryFeedHeader": { "version": "5.0.20240905-15_39_48-api", "feedType": "DSV_INVENTORY", "feedDate": "2024-12-30T13:03:33.000Z", "locale": "en", "businessUnit": "WALMART_US" }, "Inventory": [ { "productId": "00097531246801", "shipNode": "123456701", "availabilityCode": "AC", "quantity": 100 }, { "productId": "00097531246801", "shipNode": "123456702", "availabilityCode": "AA" } ]
}
Availability codes
AAinfinite inventoryACstandard inventory
Pre‑order support
Provide inTransitInventory when inventory is not on hand but is in transit for pre‑order items.
cURL example
curl -X POST 'https://api-gateway.walmart.com/v3/feeds?feedType=DSV_INVENTORY' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 16338294-795c-44eb-97cd-37967f8532e5' -H 'WM_SVC.NAME: <YOUR_SERVICE_NAME>' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{ "InventoryFeedHeader": {"feedType": "DSV_INVENTORY", "version": "5.0.20240905-15_39_48-api", "businessUnit": "WALMART_US", "locale": "en", "feedDate": "2024-12-30T13:03:33.000Z"}, "Inventory": [ {"productId": "01234567891011", "shipNode": "123456701", "availabilityCode": "AA"}, {"productId": "01234567891011", "shipNode": "123456702", "availabilityCode": "AC", "quantity": 11} ] }'
Success response
{ "feedId": "991B8779687C4D5DBC06DF18DB167192@AQkBAQA" }
Single feed status
GET /v3/feeds/{feedId}
Returns processing details for one feed. Use nextCursor to paginate item details.
Path and query
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
feedId | path | string | Yes | Identifier from the feed submission response. |
includeDetails | query | string | No | Include item details when true. |
nextCursor | query | string | No | Cursor for the next page of item details. Preferred. |
offset | query | string | No | Deprecated pagination. Use only for feeds with fewer than 1,000 records. |
limit | query | string | No | Number of item detail records to return. Max 100. |
cURL example
curl -X GET 'https://api-gateway.walmart.com/v3/feeds/76E2D1549C3140C886C1D7F33B7345B6@AWYBCgA?includeDetails=true&limit=50' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 16338294-795c-44eb-97cd-37967f8532e5' -H 'WM_SVC.NAME: <YOUR_SERVICE_NAME>' -H 'Accept: application/json'
Success response (truncated)
{ "feedId": "85CF30246B87483BA2290B8300750C47@AVABBgA", "activityId": "13CBADE2", "feedStatus": "PROCESSED", "itemsReceived": 20, "itemsSucceeded": 10, "itemsFailed": 5, "nextCursor": "AoE9MDAw...", "itemDetails": {"itemIngestionStatus": []}
}
Create inventory visibility report request
POST /v3/reports
Creates a request for a DSV inventory report.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
reportType | string | Yes | Must be DSV_INVENTORY. |
reportVersion | string | Yes | Must be v1. |
Request body (filters)
{ "rowFilters": [ {"type": "enumFilter", "columnName": "Published Status", "values": ["UNPUBLISHED"]} ]
}
cURL example
curl -X POST 'https://api-gateway.walmart.com/v3/reports?reportType=DSV_INVENTORY&reportVersion=v1' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 16338294-795c-44eb-97cd-37967f8532e5' -H 'WM_SVC.NAME: <YOUR_SERVICE_NAME>' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"rowFilters":[{"type":"enumFilter","columnName":"Published Status","values":["UNPUBLISHED"]}]}'
Success response
{ "requestId": "4406b7c3-674e-41e4-a18a-5fd6f123479f", "requestStatus": "RECEIVED", "requestSubmissionDate": "2023-08-28T13:34:54Z", "reportType": "DSV_INVENTORY", "reportVersion": "v1"
}
Retrieve report request status
GET /v3/reports/reportRequests/{requestId}
Returns the status and details for a single report request created in the last 30 days.
Path and query
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
requestId | path | string (uuid) | Yes | Identifier from the create response. |
reportType | query | string | Yes | DSV_INVENTORY (and other supported values if applicable). |
reportVersion | query | string | Yes | v1. |
cURL example
curl -X GET 'https://api-gateway.walmart.com/v3/reports/reportRequests/4406b7c3-674e-41e4-a18a-5fd6f123479f?reportType=DSV_INVENTORY&reportVersion=v1' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 16338294-795c-44eb-97cd-37967f8532e5' -H 'WM_SVC.NAME: <YOUR_SERVICE_NAME>' -H 'Accept: application/json'
Success response (truncated)
{ "requestId": "4406b7c3-674e-41e4-a18a-5fd6f123479f", "requestStatus": "READY", "reportType": "DSV_INVENTORY", "reportVersion": "v1"
}
Download report URL
GET /v3/reports/downloadReport
Returns the download URL for a ready report.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
requestId | string (uuid) | Yes | Identifier from the create response. |
cURL example
curl -X GET 'https://api-gateway.walmart.com/v3/reports/downloadReport?requestId=4406b7c3-674e-41e4-a18a-5fd6f123479f' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 16338294-795c-44eb-97cd-37967f8532e5' -H 'WM_SVC.NAME: <YOUR_SERVICE_NAME>' -H 'Accept: application/json'
Success response (example)
{ "requestId": "2ae33c9d-fdf7-40e3-1230-9a73fec09adb", "requestStatus": "READY", "reportType": "DSV_INVENTORY", "reportVersion": "v1", "downloadURL": "https://marketplace.walmartapis.com/v3/reports/getReport/inventory-dsv-report/InventoryDSVReport_721555_2025-08-241230948.277000.zip?sv=2025-08-24&se=1233-08-28T11%3A13%3A49Z&sr=b&sp=r&sig=...", "downloadURLExpirationTime": "2025-08-28T11:13:49Z"
}
Data model highlights
- GTIN values must be 14 digits. Left‑pad with zeros if shorter.
- Availability codes:
AAinfinite inventory,ACstandard inventory. - Feed pagination prefers
nextCursor. Offset is deprecated for large feeds. - Pre‑order items can use
inTransitInventorywith an expected availability date.
Best practices
- Send one ship node per record. Use separate records for other nodes.
- Avoid duplicate
(productId, shipNode)entries in the same feed. - Validate GTIN format and numeric types before submission.
- For polling, start with a longer interval and increase only if needed.
- Download reports promptly. Links can expire.
Security and privacy
- Do not include PII in URLs or logs.
- Use HTTPS for all requests.
- Rotate and protect tokens and secrets.
Updated 1 day ago
