---
title: "Create a task"
method: POST
path: "/tasks"
tags: ["tasks"]
---

# Create a task

`POST /tasks`

## Request

- Base URL: `https://api.rhythms.ai`
- URL: `https://api.rhythms.ai/tasks`
- Auth: none required

Creates a task with one owner, optionally attached to an object the caller can see. When source_node_uuid matches an existing task the caller can see, that task is returned with 200 instead of creating a duplicate.

## Request body

- object
  - `title` string, required: Task title
  - `owner_uuid` string, required: Single responsible user UUID
  - `description` string: Task description
  - `due_on` string: Optional due date (YYYY-MM-DD)
  - `status` 'open' | 'in_progress' | 'blocked' | 'done' | 'canceled': Defaults to open
  - `subject_type` 'Okrs::Goal': Type of the object this task is attached to; use with subject_uuid
  - `subject_uuid` string: UUID of the object this task is attached to; the caller must be able to see it
  - `source_node_uuid` string: UUID of the Operating Memory action_item this task was created from; a repeated value returns the existing task
  - `done_when` string: What done looks like, or null to clear (at most 2,000 characters)
  - `depends_on` string: What the task waits on, or null to clear (at most 2,000 characters)
  - `resolution` string: Why the task was closed, with the evidence (at most 2,000 characters); cleared when the task is reopened
  - `proposed` boolean: True for a step suggested from the evidence that nobody has committed to yet; set false once its owner takes it on
  - `sources` object[]: Up to 4 sources the task rests on; replaces the list, and [] clears it
    - `label` string, required
    - `url` string
  - `quick_replies` object[]: Up to 2 chat starters shown with the task; replaces the list, and [] clears it
    - `label` string, required
    - `prompt` string, required

## Other responses

- `400`: Bad Request - Invalid parameters or malformed request
- `401`: Unauthorized - Invalid or missing authentication
- `403`: Forbidden - User lacks permission to access this resource
- `404`: Not Found - Resource does not exist
- `422`: Unprocessable Entity - Invalid request parameters or validation errors
- `429`: Too Many Requests - Rate limit exceeded
- `500`: Internal Server Error - Unexpected server error

## Changes

- **2026-10-29** `3776068254ff`: 6 info
  - added the new optional request property `depends_on`
  - added the new optional request property `done_when`
  - added the new optional request property `proposed`
  - added the new optional request property `quick_replies`
  - …2 more
- **2026-10-15** `7ed8cef9d8e9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rhythms/apis/rhythms-params-in-body/changes/tasks/post.md)

---

[API](https://skmtc.dev/rhythms/apis/rhythms-params-in-body.md) - [All operations](https://skmtc.dev/rhythms/apis/rhythms-params-in-body/llms.txt) - [OpenAPI document](https://skmtc.dev/rhythms/apis/rhythms-params-in-body/revisions/3776068254ff?raw)
