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 '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_ID for each request.
  • Replace WM_SEC.ACCESS_TOKEN with your valid access token obtained through authentication.
  • Update reportType in the query string if you need a different report, such as INVENTORY or BUYBOX.
  • 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.