OTP-first authentication, user management, sessions, KYC verification, and two-factor authentication. Add secure sign-in to any app in minutes.
Include your API key in the Authorization header. Public endpoints (OTP request, login) don't require a user token. Protected endpoints require both your API key and a user session token.
Rails Auth uses an OTP-first flow. Your app requests an OTP for the user's phone number, the user enters the code, and you verify it to get session tokens.
POST /auth/otp/request with the user's phone number
POST /auth/otp/verify with the code to get tokens
/auth/otp/request
Send OTP to phone number
/auth/otp/verify
Verify OTP and get tokens
/auth/register
Register a new user
/auth/login
Login with credentials
/auth/login/totp
Complete login with 2FA code
/auth/refresh
Refresh an expired access token
/auth/logout
Invalidate the current session
/users/me
Get current user profile
/users/me
Update user profile
/users/me/avatar
Upload user avatar
/users/lookup
Look up user by phone number
/users/me
Delete user account
/users/me/pin
Set a transaction PIN
/users/me/pin/verify
Verify PIN before sensitive actions
/users/me/kyc
Get KYC verification status
/users/me/kyc/submit
Submit identity documents for KYC
/users/me/kyc/{id}
Get specific verification details
/users/me/sessions
List all active sessions
/users/me/sessions/{id}
Revoke a specific session
/users/me/security/sessions/revoke-all
Revoke all sessions (force logout everywhere)
/users/me/security/2fa/setup
Generate TOTP secret and QR code
/users/me/security/2fa/enable
Confirm and enable 2FA
/users/me/security/2fa/verify
Verify a TOTP code
/users/me/security/2fa/disable
Disable 2FA for the user
/users/me/security/2fa/backup-codes/regenerate
Generate new backup codes
/users/me/security
Get security summary (2FA status, password set, etc.)
/users/me/security/password
Set initial password
/users/me/security/password
Change existing password
/users/me/devices
List registered devices
/users/me/devices/{id}
Remove a device
/users/me/devices/{id}/trust
Mark a device as trusted
/recipients
List saved recipients
/recipients
Create a recipient
/recipients/search
Search recipients
/recipients/{id}
Get recipient details
/recipients/{id}
Delete a recipient
Returns the created user object with a session token. The user will receive an OTP to verify their phone number.
All errors follow a standard format.
401
Invalid or missing API key / session token
403
Action not permitted (e.g., KYC required)
404
User or resource not found
422
Validation error (check field-level errors)
429
Rate limit exceeded