---
title: "Sign up a new user"
method: POST
path: "/users"
tags: ["User"]
---

# Sign up a new user

`POST /users`

Register a new dashboard user. Sends a 6-digit verification code by email and returns a JWT plus the
created (still unconfirmed) user. `email`, `name` and `turnstileToken` are required in practice; a
`name` containing a URL is rejected as spam. Rate limited to 30 requests per hour per IP.

## Request body

- CreateUserDto
  - `openAIAdsConsent` boolean
  - `openAIAdsClickRef` string
  - `openAIAdsBrowserRef` string
  - `name` string
  - `email` string
  - `referral` string
  - `utm_source` string, nullable
  - `utm_medium` string, nullable
  - `utm_term` string, nullable
  - `utm_content` string, nullable
  - `utm_campaign` string, nullable
  - `onboardingFlow` string
  - `turnstileToken` string
  - `gaClientId` string
  - `gaSessionId` string
  - `gaSessionIds` RecordStringString — Construct a type with a set of properties K of type T

## Response `200`

Ok

- unknown

## Changes

- **2026-09-08** `32d207564285` — 1 info
  - added the new optional request property `gaSessionIds`
- **2026-09-07** `0c8bdd6f534e` — 3 info
  - added the new optional request property `openAIAdsBrowserRef`
  - added the new optional request property `openAIAdsClickRef`
  - added the new optional request property `openAIAdsConsent`
- **2026-08-06** `f8b993058fc0` — 1 warning
  - removed the request property `password`

[Change history](https://skmtc.dev/gleap/apis/gleap-server/changes/users/post.md)

---

[API](https://skmtc.dev/gleap/apis/gleap-server.md) · [All operations](https://skmtc.dev/gleap/apis/gleap-server/llms.txt) · [OpenAPI document](https://skmtc.dev/gleap/apis/gleap-server/revisions/0a92e15c9803?raw)
