# Transition a task

> 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.

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Transition a task"}
>
</Heading>

<MethodEndpoint
  method={"post"}
  path={"/api/v1/tasks/{task_id}/transitions"}
  context={"endpoint"}
>
  
</MethodEndpoint>

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.

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
>
  <Translate id="theme.openapi.request.title">Request</Translate>
</Heading>

<ParamsDetails
  {...require("./transition-task.ParamsDetails.json")}
>
  
</ParamsDetails>

<RequestSchema
  {...require("./transition-task.RequestSchema.json")}
>
  
</RequestSchema>

<StatusCodes
  {...require("./transition-task.StatusCodes.json")}
>
  
</StatusCodes>
