Get MFA enrollment summary for an identity
/portal/v1/accounts/{accountSlug}/identities/{id}/mfaReturns an identity's MFA enrollment summary — enrolled factors and recovery-code state — as a server-to-server admin read. MFA factors are a single set per identity across the Account; access is gated by an Environment-scoped membership check. Secret material is redacted in the response. Returns 404 when the identity has no membership in this Environment.
Authentication
AuthorizationJWT access token. Never send alongside X-API-Key: a request carrying both is refused.
identities.viewIdentitiesView end-user identities across the account. Granted through an administrator role in the Admin Workspace; a valid token without it is refused with 403.
Path Parameters
idstring Required Responses
application/json
data *AccountIdentityMfaResponseDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
Errors
When the request can't be completed, the response body includes a stable error code you can branch on.
account.capability_requiredForbiddenThe signed-in user's administrator roles do not grant the capability this endpoint requires.
Ask an account administrator to grant a role carrying the capability named in the Authentication section, then retry.
Returned object
curl -X GET "https://auth.canopy-io.com/portal/v1/accounts/{accountSlug}/identities/value/mfa" \ -H "Authorization: Bearer $CANOPY_TOKEN"
{ "data": { "factors": [ { "id": "00000000-0000-0000-0000-000000000000", "type": "totp", "label": "iPhone 15", "enrolled_at": "2026-04-20T12:00:00.000Z", "last_used_at": "2026-04-20T12:00:00.000Z", "webauthn_rp_id": "acme.com" } ], "recovery_codes_generation": 0, "recovery_codes_remaining": 0, "mfa_admin_reset_at": "2026-04-20T12:00:00.000Z" } }
Tell us how we can improve this guide.