Vendor Managed Pricing API overview
Overview
Use the Vendor Managed Pricing API to request, check, and download pricing reports. These reports list item costs and retail prices by store, along with supplier and distributor attributes. Access is limited to eligible suppliers and departments.
Use this API to:
- Create a Vendor Managed Pricing report request
- Check the status of a single request
- Retrieve a download URL for a ready report
Base URLs
- Production:
https://api-gateway.walmart.com - Sandbox:
https://sandbox.walmartapis.com
Audience
- First-party suppliers and their solution providers
How it works
- Create a report request with POST
/v3/reports/reportRequestsandreportType=VENDOR_MANAGED_PRICING,reportVersion=v1. Optionally addrowFiltersto limit results. - Poll request status with GET
/v3/reports/reportRequests/{requestId}until status isREADY. - Get the download URL with GET
/v3/reports/downloadReportand save the file before link expiration.
Before you begin
- Obtain API credentials and generate an access token.
- Include Walmart headers on every request.
- Use a unique correlation ID per call.
Authentication & headers
Use the Authentication Management API to obtain WM_SEC.ACCESS_TOKEN. Send the token in the header for each call. Refresh when tokens expire.
| Header | Type | Required | Description |
|---|---|---|---|
WM_SEC.ACCESS_TOKEN | string | Yes | Access token from the Authentication API. |
WM_QOS.CORRELATION_ID | string | Yes | Unique ID per request. Use a UUID. |
Accept | string | No | application/json. |
WM_CONSUMER.CHANNEL.TYPE | string | No | Channel identifier from onboarding. |
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. |
| 404 | Not found. |
| 429 | Too many requests. Back off and retry. |
| 500 | Server error. Retry. |
Endpoints
Create report request
POST /v3/reports/reportRequests
Creates a Vendor Managed Pricing report. Optionally filter rows in the generated report.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
reportType | string | Yes | Must be VENDOR_MANAGED_PRICING. |
reportVersion | string | Yes | Use v1. |
Headers
WM_SEC.ACCESS_TOKEN: <access_token>WM_QOS.CORRELATION_ID: <uuid>Accept: application/json(optional)WM_CONSUMER.CHANNEL.TYPE: <channel>(optional)
Request body (filters)
Use rowFilters to limit results. Two filter types are supported:
enumFilterreturns rows that match one or more exact valuesrangeFilterreturns rows within a numeric or date range
Filterable columns (partial list):
Corporate Retail Price, Cost Effective Date, Cost Amount, Cost Cancel Date, Cost Received Date, Cost Pricing Type Code, Replenishment Item Type, Retail Amount, Retail Cancel Date, Retail Effective Date, Retail Received Date, Retail Pricing Type Code, Store Label Description, Store Number, Store Specific Cost, Store Specific Retail Price, Supplier Cancel Date, Supplier Date Received, Supplier Effective Date, Supplier Vendor Number, Supplier Vendor Department Number, Supplier Vendor Department Sequence, Supply Item Status Code, UPC, Vendor Number, Vendor Name, Walmart Item Number.
{ "rowFilters": [ {"type": "enumFilter", "columnName": "Supply Item Status Code", "values": ["Active", "Inactive"]}, {"type": "rangeFilter", "columnName": "Cost Effective Date", "from": "2025-11-01", "to": "2025-11-03"} ]
}
cURL example
curl -X POST 'https://api-gateway.walmart.com/v3/reports/reportRequests?reportType=VENDOR_MANAGED_PRICING&reportVersion=v1' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 03e1f8b1-1fc6-4f33-abe1-8b0f29c36f3a' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{ "rowFilters": [ {"type":"enumFilter","columnName":"Supply Item Status Code","values":["Active"]}, {"type":"rangeFilter","columnName":"Cost Effective Date","from":"2025-11-01","to":"2025-11-03"} ] }'
Success response
{ "requestId": "4406b7c3-674e-41e4-a18a-5fd6f123479f", "requestStatus": "RECEIVED", "requestSubmissionDate": "2025-11-28T13:34:54Z", "reportType": "VENDOR_MANAGED_PRICING", "reportVersion": "v1"
}
Retrieve details on a single report
GET /v3/reports/reportRequests/{requestId}
Returns 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 | Must be VENDOR_MANAGED_PRICING. |
reportVersion | query | string | Yes | Use v1. |
Headers
WM_SEC.ACCESS_TOKEN: <access_token>WM_QOS.CORRELATION_ID: <uuid>Accept: application/json(optional)WM_CONSUMER.CHANNEL.TYPE: <channel>(optional)
cURL example
curl -X GET 'https://api-gateway.walmart.com/v3/reports/reportRequests/4406b7c3-674e-41e4-a18a-5fd6f123479f?reportType=VENDOR_MANAGED_PRICING&reportVersion=v1' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 03e1f8b1-1fc6-4f33-abe1-8b0f29c36f3a' -H 'Accept: application/json'
Success response (truncated)
{ "requestId": "4406b7c3-674e-41e4-a18a-5fd6f123479f", "requestStatus": "READY", "requestSubmissionDate": "2025-11-28T13:34:54Z", "reportType": "VENDOR_MANAGED_PRICING", "reportVersion": "v1", "reportSummary": "Report summary.", "reportGenerationDate": "2025-11-28T13:41:35Z"
}
Download report URL
GET /v3/reports/downloadReport
Returns the download URL for a generated report.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
reportType | string | Yes | Must be VENDOR_MANAGED_PRICING. |
reportVersion | string | Yes | Use v1. |
Headers
WM_SEC.ACCESS_TOKEN: <access_token>WM_QOS.CORRELATION_ID: <uuid>Accept: application/json(optional)WM_CONSUMER.CHANNEL.TYPE: <channel>(optional)
cURL example
curl -X GET 'https://api-gateway.walmart.com/v3/reports/downloadReport?reportType=VENDOR_MANAGED_PRICING&reportVersion=v1' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 03e1f8b1-1fc6-4f33-abe1-8b0f29c36f3a' -H 'Accept: application/json'
Success response (example)
{ "requestId": "2ae33c9d-fdf7-40e3-1230-9a73fec09adb", "requestStatus": "READY", "requestSubmissionDate": "2025-11-24T04:09:48Z", "reportType": "VENDOR_MANAGED_PRICING", "reportVersion": "v1", "reportGenerationDate": "2025-11-24T04:11:31Z", "downloadURL": "https://marketplace.walmartapis.com/v3/reports/getReport/inventory-dsv-report/InventoryDSVReport_721555_2023-08-241230948.277000.zip?sv=2021-08-06&se=1233-08-28T11%3A13%3A49Z&sr=b&sp=r&sig=...", "downloadURLExpirationTime": "2025-11-28T11:13:49Z"
}
Best practices
- Submit a single request per filter set. Avoid submitting duplicate requests.
- Poll report status with exponential backoff. Do not poll more than once every 30 seconds.
- Download the report promptly. Links expire at the
downloadURLExpirationTime. - Store archived copies in secure storage. Do not share signed URLs.
Data model highlights
rowFilterssupportenumFilterandrangeFiltertypes.- Filter column names must match exactly as listed in the API.
- Date values should use ISO 8601
YYYY-MM-DDor full timestamp forms as shown in examples.
Security and privacy
- Do not include PII in URLs or logs.
- Use HTTPS for all requests.
- Rotate and protect tokens and secrets.
Updated about 5 hours ago
