---
title: "Ensure a user exists and has accepted the latest Terms of Service"
method: POST
path: "/v1/user/ensure"
tags: ["User"]
---

# Ensure a user exists and has accepted the latest Terms of Service

`POST /v1/user/ensure`

Ensure a user exists and has accepted the latest Terms of Service.

- If the user doesn't exist, create it.
- In all cases, ensure the user has accepted the latest TOS.

## Query parameters

- `flwr_aid` string, required
- `username` string, required

## Response `200`

Successful Response

- UserComplete — Schema for user complete.
  - `flwr_aid` string, nullable
  - `username` string, nullable
  - `tagline` string, nullable
  - `affiliation` string, nullable
  - `location` string, nullable
  - `website` string, nullable
  - `social_links` SocialLinks — Schema for social links.
    - `x` string, nullable
    - `github` string, nullable
    - `linkedin` string, nullable
    - `huggingface` string, nullable
    - `scholar` string, nullable
  - `avatar_url` string, nullable
  - `accepted` boolean, required
  - `accepted_at` string, date-time, nullable
  - `organization_id` integer, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/flower/apis/superlink-api.md) · [All operations](https://skmtc.dev/flower/apis/superlink-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/flower/superlink-api/revisions/adf853ac4f41/schema)
