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

  1. Create a report request with POST /v3/reports/reportRequests and reportType=VENDOR_MANAGED_PRICING, reportVersion=v1. Optionally add rowFilters to limit results.
  2. Poll request status with GET /v3/reports/reportRequests/{requestId} until status is READY.
  3. Get the download URL with GET /v3/reports/downloadReport and 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.

HeaderTypeRequiredDescription
WM_SEC.ACCESS_TOKENstringYesAccess token from the Authentication API.
WM_QOS.CORRELATION_IDstringYesUnique ID per request. Use a UUID.
AcceptstringNoapplication/json.
WM_CONSUMER.CHANNEL.TYPEstringNoChannel identifier from onboarding.

Errors

Handle HTTP status codes and error bodies. Common statuses:

StatusMeaning
200Success
400Bad request. Fix parameters or body.
401Unauthorized. Check or refresh token.
404Not found.
429Too many requests. Back off and retry.
500Server 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

NameTypeRequiredDescription
reportTypestringYesMust be VENDOR_MANAGED_PRICING.
reportVersionstringYesUse 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:

  • enumFilter returns rows that match one or more exact values
  • rangeFilter returns 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

NameLocationTypeRequiredDescription
requestIdpathstring (uuid)YesIdentifier from the create response.
reportTypequerystringYesMust be VENDOR_MANAGED_PRICING.
reportVersionquerystringYesUse 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

NameTypeRequiredDescription
reportTypestringYesMust be VENDOR_MANAGED_PRICING.
reportVersionstringYesUse 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

  • rowFilters support enumFilter and rangeFilter types.
  • Filter column names must match exactly as listed in the API.
  • Date values should use ISO 8601 YYYY-MM-DD or 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.