Register a user
Registers the credential pair, either as an IdentityX client (no `project_id`) or as a client of a project that consumes IdentityX for authn (pass `project_id`). Returns 201 with an empty body — the caller then logs in via `/auth/login`. When the target project has terms of service, the registration is rejected unless `accepted_tos` is true — consent under LGPD art. 8 must be express. Projects without terms ignore the flag. The acceptance is recorded against the current version.
/auth/registerRegisters the credential pair, either as an IdentityX client
(no project_id) or as a client of a project that consumes
IdentityX for authn (pass project_id). Returns 201 with an empty
body — the caller then logs in via /auth/login.
When the target project has terms of service, the registration is
rejected unless accepted_tos is true — consent under LGPD art. 8
must be express. Projects without terms ignore the flag. The
acceptance is recorded against the current version.
Query Parameters
Project to scope the operation to. Omit for IdentityX itself.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request body for /auth/register.
Response Body
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/auth/register" \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com", "password": "S3curePassw0rd!", "accepted_tos": true }'{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 400,
"title": "Validation Failed"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 409,
"title": "Setup Complete"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 500,
"title": "Internal Server Error"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 503,
"title": "Identity Unavailable"
}Set up IdentityX POST
Creates the first account in the system as a super admin and enables authn. Succeeds only once — subsequent calls return 409 ("setup already complete"). Returns the freshly issued token pair (201).
Verify an email address POST
Redeems the single-use JWT carried by a verification email and marks the actor's email as verified. The token is HMAC-signed, purpose-scoped, expires after a short TTL, and is consumed on first use (jti anti-replay). Re-clicking a consumed link on an already-verified account succeeds (idempotent).