Retrieve late shipment reports
Sellers can use this endpoint to download an Excel report of all orders contributing to late shipment metrics for a selected reporting window (default 30 days). Use the report to review which orders are impacting your late shipment performance and prioritize operational fixes.
Call this endpoint to download an Excel file with the orders used to calculate late shipment metrics. (Structure and flow follow your provided markdown template.)
Endpoint
GET https://marketplace.walmartapis.com/v3/insights/performance/lateShipment/reportSample request
The request requires authentication with an API token (WM_SEC.ACCESS_TOKEN), plus the standard Marketplace headers.
The endpoint https://marketplace.walmartapis.com/v3/insights/performance/lateShipment/report specifies that you are requesting a report containing the orders used to calculate late shipment metrics.
curl -X 'GET' \ 'https://marketplace.walmartapis.com/v3/insights/performance/lateShipment/report?reportDuration=30' \ -H 'Accept: application/octet-stream' \ -H 'WM_QOS.CORRELATION_ID: b3261d2d-028a-4ef7-8602-633c23200af6' \ -H 'WM_MARKET: US' \ -H 'WM_SVC.NAME: Walmart Marketplace' \ -H 'WM_SEC.ACCESS_TOKEN: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....' \ -H 'WM_GLOBAL_VERSION: 3.1'import requests url = "https://marketplace.walmartapis.com/v3/insights/performance/lateShipment/report"
params = {"reportDuration": 30} headers = { "Accept": "application/octet-stream", "WM_QOS.CORRELATION_ID": "b3261d2d-028a-4ef7-8602-633c23200af6", "WM_MARKET": "US", "WM_SVC.NAME": "Walmart Marketplace", "WM_SEC.ACCESS_TOKEN": "eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....", "WM_GLOBAL_VERSION": "3.1", # If your integration requires Basic auth for this endpoint, uncomment and set this: # "Authorization": "Basic <base64(ClientID:ClientSecret)>",
} resp = requests.get(url, params=params, headers=headers, timeout=60) # Raise for non-2xx responses
try: resp.raise_for_status()
except requests.HTTPError as e: # Some errors may return a structured payload even if Content-Type isn't JSON. content_type = resp.headers.get("Content-Type", "") print(f"Request failed: HTTP {resp.status_code}, Content-Type: {content_type}") print(resp.text[:2000]) # print first 2k chars for debugging raise # 200 returns the XLSX as binary
out_file = "late_shipment_report.xlsx"
with open(out_file, "wb") as f: f.write(resp.content) print(f"Saved report to {out_file} ({len(resp.content)} bytes)")Note: Your spec also includes a required
Authorizationheader (Basic auth). If your integration requires it for this endpoint, include it in the request as well.
Modify your code
- Use a unique
WM_QOS.CORRELATION_IDfor each request. - Replace
WM_SEC.ACCESS_TOKENwith your valid access token obtained through authentication. - Replace
reportDurationwith the number of days used to calculate the metric. The default value is 30.
Sample response
The following sample response shows the message displayed on successful file download.
stringResult
This call returns 200 OK with Excel file in body of the response.
Rate limits
If you submit too many feeds in a short period of time, you may exceed Walmart’s rate limits and receive HTTP 429 (Too Many Requests) responses. For more details on throttling and best practices, refer to the Rate Limiting Guide.
