---
title: "Complete Onboarding"
method: POST
path: "/onboarding"
tags: ["onboarding"]
---

# Complete Onboarding

`POST /onboarding`

## Request

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

Records Terms acceptance and marketing consent for the current user.

Name is not written here — it's seeded at signup by the handle_new_auth_user
trigger from OAuth metadata (Google), or left null for email/password signups.

## Request body

- OnboardingRequest
  - `marketing_opted_in` boolean

## Response `200`

Successful Response

- OnboardingResponse
  - `terms_accepted_at` string, required
  - `terms_version` string, required

## Other responses

- `422`: Validation Error

---

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