March 2026
API
MFA now works across all login methods
Previously, multi-factor authentication only kicked in through the challenge-based flow. Now it works everywhere, magic links, OTP, WebAuthn, all of it. If a user has MFA enrolled and your app requires it, they’ll get anmfa_required response instead of tokens, regardless of how they signed in.
WebAuthn logins skip MFA by default (it’s already two factors, your device and your face), but you can turn that off per app if you’re feeling strict.
Email OTP
The OTP endpoint used to be phone-only. Now it handles email too. Setemail_auth_type to "otp" on your app and the same /auth/:app_id/otps endpoint accepts email addresses. It figures out what you sent it and does the right thing.
User search got smarter
The users endpoint now supports a?q= parameter. It does fuzzy matching across email, phone, and name using PostgreSQL’s pg_trgm extension. Results come back ranked by relevance.
No more exact-match-only filtering.
Verifications API — new actions
Two new endpoints:DELETE /v1/verify/:app_id/verifications/:id— cancel a verificationPOST /v1/verify/:app_id/verifications/:id/resend— resend it (cancels the old one, creates a fresh one with the same params)
purpose, method, intent, etc.) alongside the legacy format.
MFA status endpoint
New endpoint for the dashboard:Rails 7.1
Upgraded from 7.0 to 7.1. Nothing breaks, everything’s a little faster.Dashboard
Auth settings redesign
The authentication settings page got a full rework. You can now see a visual preview of your login flow, step by step, that updates as you change settings. New options in the settings panel:- Email auth type — switch between magic link and OTP
- MFA policy — disabled, optional, or required
- Allowed MFA methods — pick from TOTP, passkeys, email OTP, SMS OTP, backup codes
- WebAuthn skip MFA — toggle whether passkey logins bypass MFA
- MFA grace period — give users time to set up MFA after you enable it
Challenges page
“User Verification” in the nav is now “Challenges”, because that’s what they are. New full page for browsing, filtering, and creating challenges. You can filter by purpose, method, and status. Each challenge opens in a detail sheet with the full timeline and metadata. You can also create challenges directly from the dashboard now, with a dialog that supports all challenge types and purposes.Redesigned users page
The users list is now a proper table with search, pagination, status badges, and quick actions. You can search across all user fields from one input.User detail page
Completely new user detail view with tabs:- Overview — identity, status, login history, sessions
- Security — MFA enrollments, backup codes status, security events
- Challenges — all challenges for this user, with actions (resend, cancel, deny)