Verify an email address
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).
/auth/verify-emailRedeems 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).
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request body for POST /auth/verify-email.
Response Body
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/auth/verify-email" \ -H "Content-Type: application/json" \ -d '{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." }'{
"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": 500,
"title": "Internal Server Error"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 503,
"title": "Identity Unavailable"
}Register a user POST
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.
Resend the verification email POST
Mints a fresh verification link and emails it to the given address. Always returns 200 — unknown emails and already-verified accounts are silent no-ops, so the endpoint does not leak which emails are registered.