Skip to main content

Update Launch Step

PATCH 

/api/launch-plan/steps/:step

Changes a step. Send only the fields to change:

  • owner_user_id — a user on this account, or null to unassign. Anyone given a step who is not yet a plan member is added as a member (no roles, not a watcher) so they receive the weekly digest.
  • size — S, M or L. Sending effort_hours is refused (422 "Effort is now a size: S, M or L.").
  • due_on_override — Y-m-d to pin the due date (it then propagates to the steps before it), or null to go back to the scheduled date.
  • manual_state — not_started | in_progress | done, for steps completed by hand (and data-driven steps that allow a manual tick). 422 for a step that completes from data or a sign-off, and for a production-only step on a staging account ("Available after cutover…", the same rule as sign-off).
  • depends_on — custom steps only; library steps keep their dependencies (422).
Required scope: launch_plan:write

Grant this scope to your token under Settings → Developer → Personal Access Tokens.

Ticking a step done also clears its blocked mark. Through SKU's MCP server an AI assistant may only send manual_state; the other fields are refused there.

The whole request is checked before anything is saved: if any field is refused (422), none of the other fields change. Each change is recorded in the step's activity. Response: the full launch plan, as returned by Get Launch Plan ({data, exists: true}), with dates and health recomputed. 404 for an unknown step or when the account has no plan.

Authentication: Requires Bearer token with the launch_plan:write scope. The user needs the launch_plan.manage permission.

Request​

Responses​

OK

Response Headers
    Content-Type