Privy identity state for an account
Live identity-provider state for one account beside enforcer's own row: the account's stored email/phone and their verified flags, the VERIFIED contacts Privy holds right now, whether they still agree, and the live passkey MFA posture. email_matches_account is the field to read first — a Privy-linked address that has drifted from accounts.email sends every login code to an inbox the user no longer reads, and nothing else in the database exposes that. Both match fields are null (never false) when either side is blank, since "Privy holds no email" is a different problem from "the emails disagree"; both values ship in the body so a null always explains itself. privy is null for an account with no Privy user (native/SSO tenants), which is a fact about the tenant, not a fault. A Privy read that fails refuses the whole response rather than serving it with the provider half silently missing.
Request
- Base URL: https://api.instruxi.dev/api/v1/enforcer
- URL: https://api.instruxi.dev/api/v1/enforcer/admin/users/{account_id}/identity
- Auth: one of:
- API key in header Authorization
- API key in header X-API-Key
Path parameters
account id
Query parameters
tenant_id assertion — 404s when it does not match the account's tenant
Response
OK
Example response
{
"data": {
"auth_provider": "privy",
"passkey_mfa": {
"credentials": 1,
"factor_advertised": true,
"passkeys": [
{
"authenticator_name": "Google Password Manager"
}
],
"state": "enrolled"
},
"privy": {
"email": "velvia@example.com",
"phone": "+15108675310"
},
"privy_user_id": "did:privy:clx0…"
},
"success": true
}Changes
No recorded changes to this operation across all 1 revision of this API.