Sign Off Launch Step
POST/api/launch-plan/steps/:step/sign-off
Signs off a checkpoint step (completion: signoff) with a note, as the calling person. Signing off the go_live checkpoint marks the plan launched.
launch_plan:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
note (required, up to 5000 characters).
choice — required for the fulfillment_cutover_decision checkpoint (the step whose choice_required is true), and refused (422) on every other step: A (SKU routes orders from day 1) or B (phased). It is stored as the profile's fulfillment_cutover (with a profile_changed activity entry) and the plan's steps re-resolve — under B, routing_enabled becomes a sign-off checkpoint.
422 when choice is missing or not A/B on the cutover decision, when the step is not a checkpoint, is marked not needed, is only available on the production account, or still has open dependencies (the message lists them). The beta_signoff checkpoint waits on every step of the validate phase, custom steps included. A sign-off is a person's decision, so personal access tokens get 403. Response: the full launch plan, as returned by Get Launch Plan (\{data, exists: true\}), with dates and health recomputed.
Signing off also clears the step's blocked mark.
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 — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
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.