Skip to main content
POST
Moves a work item to another project, optionally in another Space. Sub-items move with it, and every moved item receives a new key in the destination project. The old keys keep resolving, so existing links continue to work.
You need the Move tasks permission in the source Space and Create tasks plus View tasks in the destination. Pass your API key as a Bearer token in the Authorization header.
The status mapping is required and is never guessed. A caller that omits it receives 422 rather than having its work items placed on a column nobody chose.

Path parameters

string
required
UUID of the work item to move.

Request body

string
required
UUID of the destination project.
object
required
Maps every status currently in use anywhere in the work item’s tree to a status in the destination project’s workflow. Keys are the current status ids, values the destination status ids. A status left out, or one that does not belong to the destination workflow, returns 422.
string
required
The work item’s updatedAt at the moment you read it, in ISO 8601. If the item changed since, the request returns 409 instead of overwriting that change.
string[]
required
The work item and every sub-item you expect to move. If the tree changed since you read it, the request returns 409 so you can re-read and confirm.
string
Work item type to use in the destination. It must belong to the destination project. Omit it to use that project’s default workflow.

Response

object
required
The work item’s new location: id, the new key, spaceSlug and projectSlug.
number
required
How many work items were relocated, including sub-items.
number
required
How many custom field values had no counterpart in the destination and were archived.

Status codes

Last modified on July 30, 2026