Read a customer's two-factor state
GEThttps://api.evora.cx/api/developer-api/users/{userId}/2fa
Requires scopeusers:read
Whether the customer has enrolled a second factor, when they did, how many single-use backup codes they have left, and whether their second factor is currently locked out after repeated wrong codes.
Never returns the shared secret or the backup codes themselves — the codes are stored hashed and the secret is not retrievable after enrolment.
Path parameters
| userIdrequired string (uuid) | End-user UUID. |
Responses
200Two-factor state.
json
{ "enabled": true, "enrolled_at": "2026-08-21T14:20:55.243Z", "backup_codes_remaining": 8, "locked_until": null }
404User not found, or not yours.
json
{ "error": "User not found" }
More in Users
- GETLook up a customer by username
- GETList customers
- POSTCreate a customer
- GETGet a customer
- PUTUpdate a customer
- DELETEDelete a customer
- POSTMint a password-reset token
- POSTConsume a reset token and set the new password
- POSTBan a customer
- POSTUnban a customer
- POSTReset a customer's HWID
- DELETEReset a customer's two-factor authentication
- POSTReset a customer's device binding
- POSTMint a one-time SDK login token (panel SSO)
- POSTRedeem a license key on a customer's behalf
- POSTBulk customer actions
Base URL https://api.evora.cx/api/developer-api · full spec at developer-api.yaml · back to the docs