Registrations
No authentication needed. Submits registration details to create a tenant account; the agreement must be accepted and verified email or phone needs a code.
registrationsUser accountsAuthentication: No auth1 endpointsRegister
POST
/api/v2/registrationsAuthentication: No auth
Request body application/json
| Field | Type | Required | Description |
|---|---|---|---|
| accept_agreement | boolean | Required | Must be true |
| string | — | ||
| email_code | string | — | Code sent to the email (POST /verify-codes, purpose=bind); required when the email must be verified |
| password | string | Required | Login password, 8 to 128 characters |
| phone | string | — | Phone number |
| phone_code | string | — | Code sent to the phone number (POST /verify-codes, purpose=bind); required when the phone number must be verified |
| username | string | — | Required if registration info demands it, otherwise generated automatically. Must not look like a phone number (all digits) |
Registrations object
| Field | Type | Required | Description |
|---|---|---|---|
| accept_agreement | boolean | Required | Must be true |
| balance_cents | integer | — | Account balance in cents, same as balance_cents of GET /users/{user_id}/account (0 when there is no account). Only present in the GET /users list, not in single-user responses |
| certified | boolean | — | Whether real-name verification has passed |
| client_ip | string | — | Source IP of this request, derived the same way as the login IP allowlist check (what the allowlist compares is what is shown). Only present in GET /me and PUT /me |
| created_at | string | — | Created at |
| delegated_session | boolean | — | Whether the current session was issued by superadmin sign-in or switch-to-user (if so, password, email, phone, login allowlist, login verification and real-name are read-only). Only present in GET /me and PUT /me |
| string | — | ||
| email_code | string | — | Code sent to the email (POST /verify-codes, purpose=bind); required when the email must be verified |
| enabled | boolean | — | Whether enabled |
| id | integer | — | Record ID |
| login_ip_allow | string[] | — | Login IP allowlist (IPs or CIDRs); empty means no restriction |
| login_verify | LoginVerify | — | Second-factor login: none means not required; email / sms also require an email/SMS code at login (the platform must allow it and the address must be bound) |
| password | string | Required | Login password, 8 to 128 characters |
| phone | string | — | Phone number |
| phone_code | string | — | Code sent to the phone number (POST /verify-codes, purpose=bind); required when the phone number must be verified |
| role | string | — | Account role: admin or tenant |
| totp_enabled | boolean | — | Whether TOTP is enabled |
| totp_recovery_left | integer | — | Number of unused TOTP recovery codes. Only present in GET /me and PUT /me when TOTP is enabled |
| updated_at | string | — | Updated at |
| username | string | — | Required if registration info demands it, otherwise generated automatically. Must not look like a phone number (all digits) |