---
title: "Update scheduled task"
method: PUT
path: "/api/scheduled-tasks/{id}"
tags: ["Scheduled Tasks"]
---

# Update scheduled task

`PUT /api/scheduled-tasks/{id}`

Updates task configuration. Same validation rules as creation apply. Requires admin role.

## Path parameters

- `id` integer, required

## Request body

- object
  - `name` string
  - `target_type` 'stack' | 'fleet' | 'system' | 'container'
  - `target_id` string — Stack or container name when target_type is `stack` or `container`.
  - `node_id` integer
  - `action` 'restart' | 'snapshot' | 'prune'
  - `cron_expression` string
  - `enabled` boolean
  - `prune_targets` string[]
  - `target_services` string[]
  - `prune_label_filter` string

## Response `200`

Task updated.

- ScheduledTask
  - `id` integer, required
  - `name` string, required
  - `target_type` 'stack' | 'fleet' | 'system' | 'container', required
  - `target_id` string, nullable — Stack or container name (when target_type is `stack` or `container`).
  - `node_id` integer, nullable — Target node ID (when target_type is `stack` or `container`).
  - `action` 'restart' | 'snapshot' | 'prune', required
  - `cron_expression` string, required — Standard cron expression (5 fields).
  - `enabled` 0 | 1, required
  - `created_by` string, required
  - `created_at` integer, required — Unix timestamp (seconds).
  - `updated_at` integer, required — Unix timestamp (seconds).
  - `last_run_at` integer, nullable
  - `next_run_at` integer, nullable
  - `last_status` string, nullable
  - `last_error` string, nullable
  - `prune_targets` string, nullable — JSON-stringified array of prune targets (containers, images, networks, volumes).
  - `target_services` string, nullable — JSON-stringified array of service names to restart.
  - `prune_label_filter` string, nullable — Docker label filter for prune operations.

## Other responses

- `400` — Validation error.
- `403` — Insufficient permissions or license tier.
- `404` — Resource not found.
- `500` — Internal server error.

## Changes

- **2026-07-03** `c02adce28613` — 1 warning, 1 info
  - added the new `container` enum value to the `target_type` response property for the response status `200`
  - added the new `container` enum value to the request property `target_type`
- **2026-06-04** `d58cf9d6195b` — 4 info
  - removed the `ADMIRAL_REQUIRED` enum value from the `code` response property for the response status `400`
  - removed the `ADMIRAL_REQUIRED` enum value from the `code` response property for the response status `403`
  - removed the `ADMIRAL_REQUIRED` enum value from the `code` response property for the response status `404`
  - removed the `ADMIRAL_REQUIRED` enum value from the `code` response property for the response status `500`
- **2026-04-05** `7464894ea582` — 4 warning, 4 info
  - added the new `PAID_REQUIRED` enum value to the `code` response property for the response status `400`
  - added the new `PAID_REQUIRED` enum value to the `code` response property for the response status `403`
  - added the new `PAID_REQUIRED` enum value to the `code` response property for the response status `404`
  - added the new `PAID_REQUIRED` enum value to the `code` response property for the response status `500`
  - …4 more
- **2026-04-05** `a202861afa64` — 1 info
  - endpoint added
- **2026-04-03** `82927cbcc9f7` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/studio-saelix/apis/sencho-api/changes/api/scheduled-tasks/:id/put.md)

---

[API](https://skmtc.dev/studio-saelix/apis/sencho-api.md) · [All operations](https://skmtc.dev/studio-saelix/apis/sencho-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/studio-saelix/sencho-api/revisions/82aac94c016e/schema)
