Get inventory reconciliation data for WFS item

The Inventory Reconciliation Report API provides a summary of your net inventory movement for a specified time period. Use this endpoint to compare starting and ending quantities for each SKU, and track units sold, lost, returned, and other inventory changes.

The report is updated daily at 7 am PST and includes all transactions as of midnight the previous day. Data is available from January 1, 2022, and can be accessed at a monthly level. For the current month, you can also query by a single GTIN.

Note: As the report is regenerated periodically, we recommend retrieving it no more than once per hour.

Workflow

  1. Get an access token by calling the Token API.
  2. Call GET /v3/report/wfs/inventoryReconciliationReport with the monthYear parameter (format: mm-YYYY).
  3. Optionally add a gtin parameter to filter to a single GTIN (current month only).
  4. Save the returned CSV file to your local system.

For a full list of request parameters and response fields, refer to the Get WFS Inventory Reconciliation Report API reference.

Endpoint

GET https://marketplace.walmartapis.com/v3/report/wfs/inventoryReconciliationReport

Sample request

This sample request retrieves a summary of net inventory changes for your SKUs within the specified month.

curl --request GET \ --url 'https://marketplace.walmartapis.com/v3/report/wfs/inventoryReconciliationReport?monthYear=05-2024' \ --header 'Accept: application/json' \ --header 'Authorization: Basic <base64_encoded_credentials>' \ --header 'WM_SEC.ACCESS_TOKEN: <access_token>' \ --header 'WM_QOS.CORRELATION_ID: <correlation_id>' \ --header 'WM_SVC.NAME: Walmart Marketplace' \ --header 'WM_GLOBAL_VERSION: 3.1' \ --header 'WM_MARKET: us'
import requests url = "https://marketplace.walmartapis.com/v3/report/wfs/inventoryReconciliationReport"
params = { "monthYear": "05-2024"
}
headers = { "Authorization": "Basic <base64_encoded_credentials>", "WM_SEC.ACCESS_TOKEN": "<access_token>", "WM_QOS.CORRELATION_ID": "<correlation_id>", "WM_SVC.NAME": "Walmart Marketplace", "WM_GLOBAL_VERSION": "3.1", "WM_MARKET": "us", "Accept": "application/json"
} response = requests.get(url, headers=headers, params=params) if response.status_code == 200: print("Success!") with open("WFSInventoryReconciliationReport.csv", "wb") as f: f.write(response.content)
else: print(f"Error: {response.status_code}") print(response.text)

This sample request queries a single GTIN for the current month.

curl --request GET \ --url 'https://marketplace.walmartapis.com/v3/report/wfs/inventoryReconciliationReport?monthYear=06-2024&gtin=00012345678905' \ --header 'Accept: application/json' \ --header 'Authorization: Basic <base64_encoded_credentials>' \ --header 'WM_SEC.ACCESS_TOKEN: <access_token>' \ --header 'WM_QOS.CORRELATION_ID: <correlation_id>' \ --header 'WM_SVC.NAME: Walmart Marketplace' \ --header 'WM_GLOBAL_VERSION: 3.1' \ --header 'WM_MARKET: us'
import requests url = "https://marketplace.walmartapis.com/v3/report/wfs/inventoryReconciliationReport"
params = { "monthYear": "06-2024", "gtin": "00012345678905"
}
headers = { "Authorization": "Basic <base64_encoded_credentials>", "WM_SEC.ACCESS_TOKEN": "<access_token>", "WM_QOS.CORRELATION_ID": "<correlation_id>", "WM_SVC.NAME": "Walmart Marketplace", "WM_GLOBAL_VERSION": "3.1", "WM_MARKET": "us", "Accept": "application/json"
} response = requests.get(url, headers=headers, params=params) print(response.status_code)
if response.status_code == 200: with open("WFSInventoryReconciliationReport_gtin.csv", "wb") as f: f.write(response.content)

Modify your code

  • Replace <base64_encoded_credentials> with your Base64-encoded Client ID and Client Secret.
  • Replace <access_token> with a valid access token obtained through authentication.
  • Use a unique <correlation_id> (GUID) for each request.
  • Set monthYear to the desired month in mm-YYYY format (e.g., 05-2024 for May 2024).
  • The gtin parameter is optional and valid only for the current month. Use the 14-digit GTIN with digits only (no spaces or dashes).
  • WM_GLOBAL_VERSION must be set to 3.1.
  • WM_MARKET must be set to us.

Sample response

On success, the API returns a 200 OK response with a CSV file attached. A successful API response includes a Content-Disposition header with the report, for example: attachment; filename=WFSInventoryReconciliationReport_2024-06-15T06_42_13.766Z.csv, where the timestamp indicates when the file was generated.

{ "status": "200", "message": "CSV file returned as attachment", "filename": "WFSInventoryReconciliationReport_2024-06-15T06_42_13.766Z.csv"
}

The CSV file contains inventory reconciliation data for the specified WFS item(s) and time period. Each row provides details for a SKU, including: GTIN, beginning quantity ending quantity, units sold, units returned, units lost, units found, units damaged, and other adjustments

Result

On success, the API returns a 200 OK response with a CSV file as the response body. The file contains inventory reconciliation data for the specified month and optional GTIN filter. The report is generated with a timestamp indicating when it was created.

Rate limit

This endpoint is throttled to 50 calls per minute per seller. Exceeding this limit returns a 429 Too Many Requests response.

For more information, refer to the Rate limiting guide.



Did this page help you?