Create a report schedule
Call this endpoint to create a new schedule that tells Walmart when to generate a report for you. A schedule defines the report type, how often it runs, and optional filters. Use this endpoint when you need reports delivered on a predictable cadence instead of requesting them on demand.
Note: This page shows an example that uses only the required parameters for a basic schedule. For the full list of options and advanced capabilities, refer to the Reports Scheduler API reference.
Endpoint
POST https://marketplace.walmartapis.com/v3/reports/schedules?reportType=ITEM
Note:
reportTypeis required in the query string. AddreportVersionif you need a specific version.
Sample request
This sample request creates an hourly schedule that starts on a future date. It uses the following payload: frequency, repeatsEvery, and an optional scheduleStartDate.
Scheduling workflow
- Choose the
reportType(for example,ITEM,INVENTORY, orBUYBOX). - Select the
frequency(HOURLY,DAILY,WEEKLY,MONTHLY, orYEARLY) andrepeatsEveryinterval. - (Optional) Set
scheduleStartDateif the schedule should start on a future date. - Call POST
/v3/reports/scheduleswith these values to create the schedule.
Note: The time you specify is when Walmart begins generating the report. The file is available for download shortly after generation finishes at the destination URL you configured.
curl -X POST "https://marketplace.walmartapis.com/v3/reports/schedules?reportType=ITEM" \ -H 'WM_SEC.ACCESS_TOKEN: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....' \ -H 'WM_QOS.CORRELATION_ID: b3261d2d-028a-4ef7-8602-633c23200af6' \ -H 'WM_SVC.NAME: Walmart Marketplace' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "frequency": "HOURLY", "repeatsEvery": 1, "scheduleStartDate": "<YYYY-MM-DD>" }'
import requests url = "https://marketplace.walmartapis.com/v3/reports/schedules?reportType=ITEM" payload = { "frequency": "HOURLY", # HOURLY, DAILY, WEEKLY, MONTHLY, or YEARLY "repeatsEvery": 1, # Run every hour "scheduleStartDate": "<YYYY-MM-DD>" # Optional future start date
} headers = { "Authorization": "Bearer <ACCESS_TOKEN>", "WM_SVC.NAME": "Walmart Marketplace", "WM_QOS.CORRELATION_ID": "<CORRELATION_ID>", "Accept": "application/json", "Content-Type": "application/json"
} response = requests.post(url, headers=headers, json=payload)
print("Status code:", response.status_code)
print("Response JSON:", response.json()) Modify your code
- Use a unique
WM_QOS.CORRELATION_IDfor each request. - Replace
WM_SEC.ACCESS_TOKENwith your valid access token obtained through authentication. - Update
reportTypein the query string if you need a different report, such asINVENTORYorBUYBOX. - Change
frequency,repeatsEvery, and other scheduling fields to match your needs.
Sample response
The example below shows a schedule that runs hourly (frequency = HOURLY). For yearly and other variations, refer to the API reference.
{ "scheduleId": "<SCHEDULE_ID>", "requestSubmissionDate": "<ISO_DATE_TIME>", "reportType": "ITEM", "reportVersion": "v2", "scheduleStartDate": "<ISO_DATE_TIME>", "nextScheduledTime": "<ISO_DATE_TIME>", "payload": { "frequency": "HOURLY", "repeatsEvery": 1 }
}
Result
If the request is successful, the API returns a HTTP 200 OK with a JSON body that confirms the schedule and shows the next time Walmart will generate the report.
Keep the returned scheduleId for later calls to view, update, or delete this schedule.
Updated 1 day ago
