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 <SCHEDULE_ID> for later calls to view, update, or delete this schedule.
Updated 2 days ago
