---
updatedAt: 2026-07-09T21:27:20.000Z
---

# 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](/us-marketplace/reference/post_v3-reports-schedules).

## Endpoint

```text
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
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>"
         }'
```
```python
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.

```json
{
  "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 future calls to view, update, or delete this schedule.