---
title: "Update a task"
method: PATCH
path: "/tasks/{task_id}"
tags: ["Tasks"]
---

# Update a task

`PATCH /tasks/{task_id}`

Updates a task's name, schemas, prompt, or storage configuration. Only the fields you include in the request body are updated.

## Path parameters

- `task_id` string, required

## Request body

- UpdateTaskRequest — Request body for updating a task. Only include fields you want to change.
  - `name` string, nullable — Updated display name.
  - `input_schema` unknown
  - `output_schema` unknown
  - `prompt` string, nullable — Updated agent instructions.
  - `storage` unknown
  - `settings` object — Task-level settings. Supports `timeout_seconds` and `sensitive`. When included, `settings` replaces the task's settings as a whole, so send every key you want to keep.
    - `timeout_seconds` integer — Maximum wall-clock time, in seconds, that a single run of this task may execute before Deck stops it and the run fails with a `timeout` error. Must be a positive integer. The maximum you can set is determined by your plan (see https://deck.co/pricing); the overall ceiling is 28800 seconds (8 hours). If omitted, the task uses your plan's default timeout. A value above your plan's maximum is rejected when the task is updated with a `422` `timeout_exceeds_plan_max` error.
    - `sensitive` boolean — Marks the task as sensitive. When `true`, the Console hides the live browser view, agent reasoning, and screenshots for this task's runs. Must be a boolean; any other value is rejected with a `422` `invalid_field_value` error.

## Response `200`

OK

- UpdateTaskResponse — A task object. Tasks are defined actions an agent can perform.
  - `id` string, required — Unique identifier for the task, prefixed with `task_`.
  - `object` string, required — Always `task`.
  - `name` string, required — Display name for the task.
  - `prompt` string, nullable, required — Instructions for the agent describing what this task should do.
  - `status` string, required — Task status: `learning`, `test`, or `live`.
  - `agent_id` string, required — The agent this task belongs to. Prefixed with `agt_`.
  - `input_schema` unknown, required
  - `output_schema` unknown, required
  - `storage` unknown, required
  - `settings` unknown, required
  - `created_at` string, date-time, required — ISO 8601 timestamp of when the resource was created.
  - `updated_at` string, date-time, required — ISO 8601 timestamp of when the resource was last updated.
  - `request_id` string, required — Unique identifier for the API request. Include this when contacting support.

## Other responses

- `400` — Bad request — validation error or malformed input.
- `401` — Unauthorized.
- `403` — Forbidden.
- `404` — Not found — the requested resource does not exist.
- `409` — Conflict — the request is valid but cannot be completed in the current state.
- `422` — Unprocessable content — the request body is understood but contains invalid values.
- `429` — Too many requests or session concurrency exceeded. Retry with backoff; honor Retry-After and RateLimit headers when present.
- `500` — Internal server error.

---

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