Transition a task
POST/api/v1/tasks/:task_id/transitions
Fires a named transition on a task. The transition must exist in the workflow and be valid from the task's current state; its guard must pass. This is the single path every state change routes through. A transition declaring requires_approval does not move the task — it parks a pending ApprovalItem and returns the task with pending_transition set; the move applies only when the approval is approved.
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 409
- 413
- 429
- 500
The task after the transition
The transition does not exist, is not valid, or its guard rejected the move
Unauthorized
Forbidden
Task not found
A concurrent transition made this one invalid, the task is closed, or the idempotency key names a different request
REQUEST_REJECTED — the request body is over the size the body parser accepts
QUOTA_EXCEEDED — a requests quota on the calling API key or its project is spent for the window; Retry-After says when it reopens
Response Headers
Seconds until the quota window admits a request again
Unexpected server error — INTERNAL_ERROR, with the raw message never forwarded