---
title: "Duplicate a task"
method: POST
path: "/task/duplicate/{id}"
tags: ["Tasks"]
---

# Duplicate a task

`POST /task/duplicate/{id}`

## Request

- Base URL: `https://cloud.kaneo.app/api`
- URL: `https://cloud.kaneo.app/api/task/duplicate/{id}`
- Auth: HTTP bearer

Copy a task into the same project and column, including custom fields, labels, description assets and same-workspace parent links. Copying parent links also requires task:update. Comments, time entries and child tasks are not copied.

## Path parameters

- `id` string, required

## Request body

- object
  - `title` string

## Response `200`

The duplicated task

- Task
  - `id` string, required
  - `projectId` string, required
  - `position` number, nullable, required: Order within its column, ascending.
  - `number` number, nullable, required: Per-project counter shown as {projectSlug}-{number}.
  - `userId` string, nullable, required: The assignee, if any.
  - `title` string, required
  - `description` string, nullable, required
  - `descriptionDeferred` boolean: True when the list omits a large description; load the task detail or description pages to read it. Do not replace stored text with this null summary.
  - `status` string, required: The slug of the column the task sits in.
  - `priority` string, required: One of: no-priority, low, medium, high, urgent.
  - `startDate` string, date-time, nullable, required
  - `dueDate` string, date-time, nullable, required
  - `recurrence` TaskRecurrence: When a task with this rule moves into a final column, the next task is created with its dates moved forward by one interval from the completed task's due date.
    - `frequency` 'daily' | 'weekly' | 'monthly' | 'yearly', required
    - `interval` integer, required: Repeat every this many days, weeks, months, or years.
    - `weekdays` integer[]: Weekly rules only: the days to repeat on, 0 for Sunday to 6 for Saturday. Without them, a weekly rule repeats on the due date's weekday.
    - `timeZone` string, required: IANA time zone used to keep the next due date on the same local day and time.
  - `createdAt` string, date-time, required
  - `customFields` object[]
    - `fieldId` string, required
    - `value` string, required

## Other responses

- `400`: Invalid task fields or request
- `401`: Unauthorized
- `403`: No access to the project, missing task:create, or missing task:update when copying parent links
- `404`: Task or project not found
- `409`: Task column has reached its capacity
- `429`: The API key exceeded its rate limit or usage quota. Wait the number of seconds in Retry-After before retrying. The X-RateLimit headers are sent only when the rate limit was hit.
- `503`: Unable to copy task attachments

## Changes

- **2026-10-26** `d5856f0c1849`: 4 breaking, 1 warning, 1 info
  - the `recurrence` response's property type changed from `object, null` to no type for status `200`
  - removed the required property `recurrence/frequency` from the response with the `200` status
  - removed the required property `recurrence/interval` from the response with the `200` status
  - removed the required property `recurrence/timeZone` from the response with the `200` status
  - …2 more
- **2026-10-26** `d1d37e98039b`: 1 info
  - added the optional property `recurrence` to the response with the `200` status
- **2026-10-25** `e5d8b29270df`: 1 warning
  - removed the optional property `recurrence` from the response with the `200` status
- **2026-10-18** `f46457f9e217`: 1 info
  - added the optional property `recurrence` to the response with the `200` status
- **2026-10-08** `c7b8a842601b`: 7 breaking, 7 info
  - removed the media type `text/plain` for the response with the status `400`
  - removed the media type `text/plain` for the response with the status `401`
  - removed the media type `text/plain` for the response with the status `403`
  - removed the media type `text/plain` for the response with the status `404`
  - …10 more

[Operation history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/task/duplicate/:id/post.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) - [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usekaneo/apis/kaneo-api/revisions/741a49dfb347?raw)
