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 "Authorization: Bearer <ACCESS_TOKEN>" \ -H "WM_SVC.NAME: Walmart Marketplace" \ -H "WM_QOS.CORRELATION_ID: <CORRELATION_ID>" \ -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
- Replace
<ACCESS_TOKEN>with the OAuth 2.0 access token from your token request. - Update
reportTypein the query string if you need a different report, such asINVENTORYorBUYBOX. - Change
frequency,repeatsEvery, and other scheduling fields to match your needs. - Use your own
<CORRELATION_ID>to trace the call.
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 3 days ago
