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: reportType is required in the query string. Add reportVersion if 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

  1. Choose the reportType (for example, ITEM, INVENTORY, or BUYBOX).
  2. Select the frequency (HOURLY, DAILY, WEEKLY, MONTHLY, or YEARLY) and repeatsEvery interval.
  3. (Optional) Set scheduleStartDate if the schedule should start on a future date.
  4. Call POST /v3/reports/schedules with 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

  1. Replace <ACCESS_TOKEN> with the OAuth 2.0 access token from your token request.
  2. Update reportType in the query string if you need a different report, such as INVENTORY or BUYBOX.
  3. Change frequency, repeatsEvery, and other scheduling fields to match your needs.
  4. 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.