Documentation menu
These are pre-release docs from the main branch.

API reference

8 operations in onboarding. Raw spec: openapi.json.

GET/api/v1/onboarding

GET /api/onboarding — the caller's effective onboarding state: the org wizard's per-step flags + live gate checks, and (admin callers only) every active member's user-level onboarding state.

Responses

StatusDescription
200

Security: bearer

POST/api/v1/onboarding/disable

POST /api/onboarding/disable — org-wide master switch (Settings → Onboarding). True disables every onboarding flow org-wide (both the wizard banner and member first-run); false re-enables — state is kept, so flows resume exactly where they were left.

Request body

OnboardingDisableRequest

Responses

StatusDescription
200
403

Security: bearer

POST/api/v1/onboarding/org/steps/{step}/complete

POST /api/onboarding/org/steps/{step}/complete — record server-gated completion. Owner/admin only (the wizard is an owner/admin flow).

Parameters

NameInTypeRequiredDescription
steppathstringYesorg wizard step id

Responses

StatusDescription
200
403
409gate not yet satisfied

Security: bearer

POST/api/v1/onboarding/org/steps/{step}/skip

POST /api/onboarding/org/steps/{step}/skip — owner/admin records the skip choice. `never: true` persists the dismissed flag ("never show this again"); false is the "skip for now" no-op (the step stays pending and resumable).

Parameters

NameInTypeRequiredDescription
steppathstringYesorg wizard step id

Request body

OnboardingSkipRequest

Responses

StatusDescription
200
403

Security: bearer

POST/api/v1/onboarding/reset/org

POST /api/onboarding/reset/org — admin re-run of the org wizard: clears every per-step flag (the flows_disabled switch is untouched on purpose; re-running a disabled family stays silent until re-enabled).

Responses

StatusDescription
200
403

Security: bearer

POST/api/v1/onboarding/reset/user

POST /api/onboarding/reset/user — re-run one member's first-run flow (admin re-trigger) or the CALLER's own. Clears that user's onboarding flags so every step resumes pending.

Request body

OnboardingTriggerRequest

Responses

StatusDescription
200
403

Security: bearer

POST/api/v1/onboarding/user/steps/{step}/complete

POST /api/onboarding/user/steps/{step}/complete — the caller records progress on their OWN first-run flow. Profile/mfa gates are server-verified; orientation/defaults record on click (they are pure UI milestones by design).

Parameters

NameInTypeRequiredDescription
steppathstringYesuser onboarding step id

Responses

StatusDescription
200
403
409gate not yet satisfied

Security: bearer

POST/api/v1/onboarding/user/steps/{step}/skip

POST /api/onboarding/user/steps/{step}/skip — self-scoped skip recording (same never/skip-for-now semantics as the org steps).

Parameters

NameInTypeRequiredDescription
steppathstringYesuser onboarding step id

Request body

OnboardingSkipRequest

Responses

StatusDescription
200

Security: bearer