TasksReorder tasks

Reorder tasks

POST

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

NameTypeRequiredDescription
projectIdstring (uuid)YesThe project the tasks belong to.

Request body

An array of items, each:

NameTypeRequiredDescription
idstring (uuid)YesThe task to move.
orderIndexnumberYesNew sort position among siblings.
parentIdstring (uuid)NoNew 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 recurring series keeps its shape: moving a task into a series row, or a series task out of it, is 400 series_row_locked, and moving a series under a task linked to Azure DevOps is 400 series_parent_synced. A batch over 1,000 items is 400 too_many_items.