---
title: "Change a schedule, or turn it on or off"
method: PATCH
path: "/v1/schedules/{id}"
---

# Change a schedule, or turn it on or off

`PATCH /v1/schedules/{id}`

## Request

- Base URL: `https://prolevelmax.com`
- URL: `https://prolevelmax.com/v1/schedules/{id}`
- Auth: HTTP bearer

Send only the fields to change. enabled: true turns a paused schedule back on and clears the pause.

## Path parameters

- `id` string, required

## Request body

- ScheduleRequest
  - `scraper` string, required: Source id from discover
  - `input` object, required: Input fields for this source (see inspect)
  - `maxItems` integer, nullable: Per-result sources: most results per run (default 100)
  - `frequency` 'daily' | 'weekly', required
  - `weekday` union: Weekly only: 1 (Monday) to 7 (Sunday), or mon … sun
    - integer
    - 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
  - `time` string, required: HH:MM, 24-hour, Beijing time (UTC+8)
  - `runCap` number, nullable: Most one run may cost, USD. Default: the source's quote for this input
  - `monthlyCap` number, nullable: Optional: most this schedule may spend per calendar month (Beijing time), USD
  - `notifyEmail` boolean: Email the account owner when each run finishes (results count, cost, link to the run)
  - `enabled` boolean
  - `dryRun` boolean: POST only: return a preview and save nothing

## Response `200`

The schedule

- object
  - `schedule` Schedule
    - `id` string
    - `scraper` string
    - `title` string
    - `input` object
    - `inputSummary` string
    - `maxItems` integer, nullable
    - `frequency` 'daily' | 'weekly'
    - `weekday` integer, nullable
    - `time` string
    - `timezone` 'Asia/Shanghai'
    - `scheduleText` string
    - `runCap` number
    - `runCapDisplay` string
    - `monthlyCap` number, nullable
    - `monthlyCapDisplay` string, nullable
    - `spentThisMonth` number
    - `spentThisMonthDisplay` string
    - `enabled` boolean
    - `pausedReason` 'null' | 'off' | 'failures' | 'balance' | 'cap_too_low' | 'source_gone' | 'spend_limit', nullable: Why it is off: turned off by the user, 3 failed runs in a row, balance too low, cap below the source's minimum, the source was removed, or the API key / app that created it reached its spending limit
    - `notifyEmail` boolean
    - `running` boolean
    - `nextRunAt` integer, nullable: Epoch ms; null while off
    - `nextRunBeijing` string, nullable
    - `lastRun` object, nullable
      - `id` string
      - `status` string
      - `at` integer
      - `itemsCount` integer, nullable
      - `chargedDisplay` string, nullable
      - `error` string, nullable
    - `lastSkip` object: Present when the last due run did not start: monthly_cap, retrying or start_failed
      - `reason` string
      - `at` integer
    - `consecutiveFailures` integer
    - `createdAt` integer
    - `updatedAt` integer

## Other responses

- `400`: Error
- `401`: Error
- `404`: Error
- `422`: Error

---

[API](https://skmtc.dev/prolevelmax/apis/prolevelmax-api.md) · [All operations](https://skmtc.dev/prolevelmax/apis/prolevelmax-api/llms.txt) · [OpenAPI document](https://skmtc.dev/prolevelmax/apis/prolevelmax-api/revisions/79eea95313e9?raw)
