Skip to main content

Apply a sparse field patch to up to 100 tasks in a single transaction

POST 

/api/tasks/bulk-update

Apply a sparse field patch to up to 100 tasks in a single transaction. The patch accepts any non-empty subset of status, assigneeId, dueDate, priority and cycleId — at least one field must be present, otherwise the request is rejected with 400. cycleCapacityOverrideReason is a request control, not a task field: supply it only when retrying a CYCLE_CAPACITY_EXCEEDED response. Fields left out are untouched on every selected task. All-or-nothing semantics: if any task in the batch fails validation or update, the whole batch rolls back. Status values are validated per task's project — a status name missing from any selected task's project rejects the batch. cycleId (null detaches) is validated per task against the target cycle's scope arm before anything is written: a partially eligible selection is rejected whole, naming how many tasks failed and which. A completed cycle is frozen in both directions — the batch is rejected if any task would join it or leave one.

Request​

Responses​

Successful response