Reorder tasks
Applies a batch of order/reparent instructions in one call. This is the only endpoint that can change a task’s parentId — Update task can’t reparent.
On success the API returns 200 OK with the count of tasks updated.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string (uuid) | Yes | The project the tasks belong to. |
Request body
An array of items, each:
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The task to move. |
orderIndex | number | Yes | New sort position among siblings. |
parentId | string (uuid) | No | New parent. Omit to keep the current parent. |
The batch validates as a whole before anything is applied: a self-parent, a parent in another project, or a hierarchy cycle rejects the entire batch with 400 invalid_parent — nothing partially applies. A batch over 1,000 items is 400 too_many_items.