Skip to content

Create account

POST
/api/auth/signup
curl --request POST \
--url http://localhost:3000/api/auth/signup \
--header 'Content-Type: application/json' \
--data '{ "email": "[email protected]", "password": "example", "firstName": "example", "lastName": "example" }'

Rate-limited to 5 attempts per hour per IP. Duplicate emails return a generic 400 (no account enumeration).

Media type application/json
object
email
required
string format: email
password
required
string
>= 12 characters <= 256 characters
firstName
string
lastName
string
Example generated
{
"email": "[email protected]",
"password": "example",
"firstName": "example",
"lastName": "example"
}

Account created. Sets a session cookie; returns the profile with sessionToken for non-browser clients.

Media type application/json
object
data
object
id
required
string format: uuid
email
required
string format: email
firstName
string
nullable
lastName
string
nullable
avatarUrl
string
nullable
role
required
string
Allowed values: super_admin administrator network_engineer sysadmin it_manager helpdesk procurement auditor read_only
isActive
required
boolean
createdAt
required
string format: date-time
sessionToken
string
Example
{
"data": {
"role": "super_admin"
}
}

Validation error or email already registered (generic message)

Media type application/json
object
error
required
string
Example
{
"error": "Not found"
}

Too many signup attempts

Media type application/json
object
error
required
string
Example
{
"error": "Not found"
}