---
title: "List schedules with their script, target profiles, timing and next run."
method: GET
path: "/v1/schedules"
---

# List schedules with their script, target profiles, timing and next run.

`GET /v1/schedules`

## Request

- Base URL: `http://127.0.0.1:10108`
- URL: `http://127.0.0.1:10108/v1/schedules`
- Auth: HTTP bearer

Lists every schedule, newest first, with its script, target profiles, timing, whether it is on, and its next run. Nothing is changed and no browser is opened. Use it to find a schedule's id before turning it on or off, or running it now.

## Response `200`

Every schedule, newest first.

- object[]
  - `concurrency` integer, required
  - `createdAt` string, date-time, required
  - `cronExpr` string, nullable, required
  - `dailyHour` integer, nullable, required
  - `dailyMinute` integer, nullable, required
  - `enabled` boolean, required
  - `headless` boolean, required
  - `id` string, uuid, required
  - `intervalMinutes` integer, nullable, required
  - `intervalUnit` 'seconds' | 'minutes', required
  - `lastRunAt` string, date-time, nullable, required
  - `name` string, required
  - `nextRunAt` string, date-time, nullable, required
  - `profileIds` string[], required
  - `runAt` string, date-time, nullable, required
  - `scheduleType` 'interval' | 'daily' | 'weekly' | 'cron' | 'once', required
  - `scriptId` string, nullable, required
  - `staggerMs` integer, required
  - `target` union, required
    - object
      - `kind` 'explicit', required
      - `value` string[], required
    - object
      - `kind` 'filter', required
      - `value` string, uuid, required
  - `updatedAt` string, date-time, required
  - `weeklyDay` integer, nullable, required

## Other responses

- `401`: No bearer token, or not a token this app issued. The body is empty: it never says which.
- `403`: Refused by the plan: it no longer includes the local API (checked on every request), or it does not allow this action (profile or schedule limit, parallel runs). A request whose Host header is not loopback is also 403, with an empty body.
- `500`: Veilus failed: storage could not be read or written, or a task panicked. The message says what failed; retrying rarely helps.

---

[API](https://skmtc.dev/veilus/apis/veilus-local-api.md) · [All operations](https://skmtc.dev/veilus/apis/veilus-local-api/llms.txt) · [OpenAPI document](https://skmtc.dev/veilus/apis/veilus-local-api/revisions/67ac3818f9d2?raw)
