---
title: "Complete Onboarding"
method: POST
path: "/api/v1/users/me/complete-onboarding"
tags: ["users"]
---

# Complete Onboarding

`POST /api/v1/users/me/complete-onboarding`

## Request

- Base URL: `https://yondry.app` (the document declares no server; this is the origin it was published from)
- URL: `https://yondry.app/api/v1/users/me/complete-onboarding`
- Auth: HTTP bearer

Atomically record all onboarding data and mark onboarding as complete.

Idempotent: safe to call again if onboarding is already done (e.g. user
goes back and re-submits the onboarding flow). Returns 200 in both cases.

## Request body

- UserUpdateOnboarding: POST /users/me/complete-onboarding — all location/radius fields required, sets onboarding_completed = True in one atomic call.
  - `home_lat` number, required
  - `home_lng` number, required
  - `home_address` string, required
  - `home_place_id` string, nullable
  - `default_radius_km` number, required
  - `radius_unit` 'km' | 'miles'
  - `transport_modes` string[]
  - `primary_transport_mode` string, nullable

## Response `200`

Successful Response

- UserResponse: Full user profile response. Exposes both the new field names introduced in the home-settings feature (home_lng, home_address, default_radius_km, radius_unit) AND the legacy names (home_lon, home_label, travel_radius_km) so existing clients and tests are not broken.
  - `id` string, uuid, required
  - `email` string, email, required
  - `is_active` boolean, required
  - `is_verified` boolean, required
  - `display_name` string, nullable
  - `avatar_url` string, nullable
  - `auth_provider` string
  - `onboarding_completed` boolean
  - `home_lat` number, nullable
  - `home_lng` number, nullable
  - `home_address` string, nullable
  - `home_place_id` string, nullable
  - `default_radius_km` number
  - `radius_unit` string
  - `home_lon` number, nullable
  - `home_label` string, nullable
  - `travel_radius_km` number, nullable
  - `transport_modes` string[]
  - `primary_transport_mode` string
  - `location_history_opt_in` boolean
  - `children` ChildOut[]
    - `id` string, uuid, required
    - `age_range` string, required
    - `label` string, nullable, required
  - `created_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

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