---
title: "Signup"
method: POST
path: "/auth/signup"
tags: ["authentication"]
---

# Signup

`POST /auth/signup`

## Request

- Base URL: `https://api.threadchain.pro` (the document declares no server; this is the origin it was published from)
- URL: `https://api.threadchain.pro/auth/signup`
- Auth: none declared

Register a new user.

Brand workspace signups (``account_type=brand``, no team invite) get a
provisional JWT immediately and defer the email OTP until
``POST /brand/me/complete-onboarding``. Other signups still send OTP
first and return ``requires_otp`` without a JWT.

## Request body

- UserCreate
  - `first_name` string, required
  - `last_name` string, required
  - `brand_name` string, nullable
  - `role` string, required
  - `whatsapp` string, nullable
  - `email` string, email, required
  - `password` string, required
  - `organization_name` string, nullable
  - `email_notifications_consent` boolean
  - `account_type` 'manufacturer' | 'brand', nullable
  - `referral_token` string, nullable
  - `invitation_token` string, nullable
  - `country` string, nullable

## Response `200`

Successful Response

- AuthResponse: Signup may require OTP; login returns JWT when credentials are valid.
  - `access_token` string, nullable
  - `token_type` string
  - `requires_otp` boolean
  - `email` string, nullable
  - `verification_email_delivered` boolean, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/threadchain/apis/threadchain-backend.md) - [All operations](https://skmtc.dev/threadchain/apis/threadchain-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/threadchain/apis/threadchain-backend/revisions/8ee288a7e6bd?raw)
