Register
POST
/api/auth/register
const url = 'https://example.com/api/auth/register';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"accept_terms":false,"business_use":false,"email":"hello@example.com","full_name":"example","organization_name":"example","password":"example","signup_intent":"mcu","username":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/auth/register \ --header 'Content-Type: application/json' \ --data '{ "accept_terms": false, "business_use": false, "email": "hello@example.com", "full_name": "example", "organization_name": "example", "password": "example", "signup_intent": "mcu", "username": "example" }'Register a new user account.
Gated by settings.allow_registration. When False (the default in staging/production), public self-signup is closed — only the seeded admin can create additional users via the admin API.
Does NOT issue a session — the account is unverified until the emailed link is confirmed (POST /auth/verify-email), and login is blocked until then. Immediately logging in an unverified user would just recreate the same confusing half-state this gate exists to avoid.
Request Bodyrequired
Section titled “ Request Bodyrequired ” Media type application/json
RegisterRequest
User registration request
object
accept_terms
Accept Terms
boolean
business_use
Business Use
boolean
email
required
Email
string format: email
password
required
Password
string
username
required
Username
string
Responses
Section titled “ Responses ”Successful Response
Media type application/json
Example generated
exampleValidation Error
Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Example generated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}