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,MorL. Sendingeffort_hoursis refused (422 "Effort is now a size: S, M or L.").due_on_override—Y-m-dto 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).
launch_plan:writeGrant 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
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not Found
Response Headers
Unprocessable Content
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.