---
title: "Get Wizard State"
method: GET
path: "/api/v1/onboarding/wizard/state"
tags: ["onboarding"]
---

# Get Wizard State

`GET /api/v1/onboarding/wizard/state`

## Request

- Base URL: `https://api.nudgelink.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nudgelink.co/api/v1/onboarding/wizard/state`
- Auth: HTTP bearer

Return the user's current wizard step.

If ``Client.onboarding_state`` is NULL (user pre-dates the wizard
or has never opened it) the response is derived from data shape so
the UI can drop them on the right step without a backfill.

## Response `200`

Successful Response

- WizardStateOut: Response shape for the wizard endpoints. Mirrors :class:`app.services.onboarding_wizard.WizardState` but declared here so FastAPI can generate the OpenAPI schema without importing the dataclass.
  - `step` string, required
  - `completed_at` string, nullable
  - `first_discovery_run_id` string, nullable
  - `skipped` object
  - `source` string, required
  - `first_campaign_id` string, nullable
  - `all_steps` string[]

---

[API](https://skmtc.dev/nudgelink/apis/nudgelink-api.md) · [All operations](https://skmtc.dev/nudgelink/apis/nudgelink-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nudgelink/apis/nudgelink-api/revisions/baa46e6db986?raw)
