Start TOTP signup.
curl --request POST \ --url https://auth.example.com/api/auth/totp/signup/options \ --header 'Content-Type: application/json' \ --data '{ "email": "user@example.com", "name": "Example User", "label": "Authenticator app", "custom_fields": {} }'Creates a short-lived TOTP enrollment challenge, synthetic pending credential metadata, secret, and otpauth URI for first-code activation. The user and stored credential are created when activation succeeds.
Request Body required
Section titled “Request Body required ”object
object
Tenant invitation token. Checked, and one use reserved for this signup, before the options are returned; applied to the account activation creates.
Proof of the invited email from /api/v1/invitations/email-verification/verify, needed when the tenant requires the email an invitation names to be proved.
Example
{ "email": "user@example.com", "name": "Example User", "label": "Authenticator app", "custom_fields": {}}Responses
Section titled “ Responses ”TOTP signup enrollment options response.
object
object
Base32 TOTP secret shown once during enrollment.
object
Example
{ "credential": { "algorithm": "SHA1", "digits": 6, "status": "pending" }}Error response.
object
Optional browser-side WebAuthn Signal API hint. When unknown_credential is true, clients that just received a WebAuthn credential assertion may call PublicKeyCredential.signalUnknownCredential() for that credential ID.
object
Example generated
{ "error": "example", "error_description": "example", "message": "example", "webauthn_signal": { "unknown_credential": true }}