Skip to content

Register the first (admin) user — disabled once any user exists

POST
/api/auth/register
curl --request POST \
--url https://example.com/api/auth/register \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "email": "hello@example.com", "password": "example", "name": "example" }'
Media typeapplication/json
object
email
required
string format: email
/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/
password
required
string
>= 8 characters
name
string
Examplegenerated
{
"email": "hello@example.com",
"password": "example",
"name": "example"
}

Bad request — malformed input or failed validation.

Media typeapplication/json
object
code

Stable, machine-readable error code. Always present on the wire.

string
Allowed values: VALIDATION_ERROR READONLY_FIELD UNAUTHORIZED FORBIDDEN_SCOPE FORBIDDEN_ROLE NOT_FOUND CONFLICT IDEMPOTENCY_KEY_REUSED RATE_LIMITED SERVICE_UNAVAILABLE INTERNAL
message

Human-readable error message. Always present on the wire.

string
field

Field name when the error is tied to a specific input (e.g. validation).

string
hint

Optional, human-friendly hint for resolving the error.

string
requestId

Server-assigned request ID; quote this when reporting issues.

string
key
additional properties
any
Example
{
"code": "READONLY_FIELD",
"message": "Field \"exposedPorts\" is read-only and cannot be set via PATCH.",
"field": "exposedPorts",
"hint": "Exposed ports are discovered from the running container. Change the ports mapping in the compose file at composePath and redeploy.",
"requestId": "req_01H0…"
}

Forbidden — token scope or role does not permit this operation.

Media typeapplication/json
object
code

Stable, machine-readable error code. Always present on the wire.

string
Allowed values: VALIDATION_ERROR READONLY_FIELD UNAUTHORIZED FORBIDDEN_SCOPE FORBIDDEN_ROLE NOT_FOUND CONFLICT IDEMPOTENCY_KEY_REUSED RATE_LIMITED SERVICE_UNAVAILABLE INTERNAL
message

Human-readable error message. Always present on the wire.

string
field

Field name when the error is tied to a specific input (e.g. validation).

string
hint

Optional, human-friendly hint for resolving the error.

string
requestId

Server-assigned request ID; quote this when reporting issues.

string
key
additional properties
any
Example
{
"code": "READONLY_FIELD",
"message": "Field \"exposedPorts\" is read-only and cannot be set via PATCH.",
"field": "exposedPorts",
"hint": "Exposed ports are discovered from the running container. Change the ports mapping in the compose file at composePath and redeploy.",
"requestId": "req_01H0…"
}