# Signup - Step 1: Start email signup process Initiates account registration with email verification. Step 1 of multi-step signup: validates input, checks availability, sends confirmation email. Returns registration hash for tracking signup progress. Username must not be reserved, email must be unique and not blocked. Endpoint: POST /api/v1/accounts/signup Version: 1.0 Security: ## Request fields (application/json): - `username` (string, required) Username of the main user Example: "john_smith" - `displayName` (string, required) Display Name of the main user Example: "John Smith" - `email` (string, required) Accounts' email Example: "email@gmail.com" - `password` (string, required) Account password, enforced by password policy Example: "PassW0rd!" - `inviteCode` (string,null) Optional invite code Example: "abcd-efgh-1234" ## Response 200 fields (application/json): - `hash` (string, required) - `nextStep` (string, required) Shows the current step in the signup flow: * EMAIL – We sent an email to the user with a verification code. The user must enter the code to confirm their email. * PHONE – We sent a text to the user with a verification code. The user must enter the code to confirm their phone number. * CAPTCHA – The user must complete a CAPTCHA verification. * REASON – The user must provide a reason for admins to approve their signup request. * ADMIN – Admins must approve or reject the user's signup request. No action is required from the user. * USER – The final step that creates the account. Most of the time, no action is required from the user. If the account can't be created because the username is already taken, the user can provide a different username at this step. Enum: "EMAIL", "PHONE", "CAPTCHA", "REASON", "ADMIN", "USER" ## Response 400 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation ## Response 403 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation ## Response 409 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation ## Response 500 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation