Skip to main content

POST /api/v1/auth/register

Register a new user account. Creates a user, a personal playground tenant, and a default API key. Auto-verifies the email — no separate verification email is sent on the playground build. Rate limited to 5 requests per IP per hour.

Request Body

Response

Always returns the same generic message regardless of whether the email already exists, to prevent email enumeration.

GET /api/v1/auth/verify

Verify a user’s email address via the link sent during registration. Redirects to the login page.

Query Parameters

Redirect Outcomes


POST /api/v1/auth/mfa

Manage multi-factor authentication (TOTP, RFC 6238). Supports setup, enable, verify, and disable actions.
Enforcement status. The MFA endpoints described below are implemented and functional — secrets are encrypted at rest, backup codes are one-way hashed, verification is timing-safe and rate-limited. Session-level enforcement in middleware is staged but not yet active: session.mfaVerified is hardcoded to false today, so a successful verify call does not yet gate protected routes at the middleware layer. Wiring the verify response into the session is the remaining work. Callers that want to require MFA can check the verified response themselves until enforcement ships.

Request Body

Actions

setup — Generate a TOTP secret and backup codes. MFA is not yet active.
enable — Verify a TOTP token to activate MFA. Returns fresh backup codes.
Store backup codes securely. They are only shown at setup/enable time and cannot be retrieved later.
verify — Verify a TOTP token or backup code during login. Rate limited to 3 attempts per 60 seconds.
disable — Disable MFA (requires valid TOTP token).

API Keys

POST /api/v1/api-keys

Generate a new API key. Admin only.
Keys are data-plane-only by default: a key minted without scopes can call POST /recommend, POST /respond, POST /respond/bulk, and POST /capture, but gets 403 on management endpoints. Management access requires a key minted with the control-plane scope — keep such keys internal and never embed them in client apps. Full scope model: API Keys.

Response

The full API key is only returned at creation time. Store it immediately — it cannot be retrieved later.

GET /api/v1/api-keys

List active API keys (prefix only, never the full key). Admin only.

DELETE /api/v1/api-keys

Revoke an API key (soft delete). Admin only.

SSO

GET /api/v1/sso

Get SSO configuration for the tenant. Sensitive fields are redacted. Admin only.

POST /api/v1/sso

Configure SSO or get an auth URL.

SSO Configuration Fields


Roles

See also: Authentication