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/report

Sample 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 Authorization header (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_ID for each request.
  • Replace WM_SEC.ACCESS_TOKEN with your valid access token obtained through authentication.
  • Replace reportDuration with 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.

string

Result

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.