Elenca gli autenticatori di un utente
GET /v1/users/{user_id}/authenticators · autorizzazione users:read
Elenca gli autenticatori (passkey, TOTP, SMS, email e fattori push) di un utente in un'unica pagina, inclusi quelli revocati negli ultimi 90 giorni, ordinati per data di creazione. Il numero di autenticatori per utente è limitato, quindi l'elenco non ha limit, after, before o order, e list_metadata ha sempre valore null. Vengono restituiti solo i metadati: mai chiavi pubbliche, ID delle credenziali, segreti TOTP o codici di recupero.
Ambito dell'organizzazione
Passa org_id per costruire una vista diagnostica dei membri per un amministratore dell'organizzazione. La chiave deve avere anche l'autorizzazione organizations:read; altrimenti la richiesta fallisce con 403 insufficient_permissions prima che venga letto qualsiasi dato. Se l'utente non è membro di quell'organizzazione (nessuna appartenenza invited, active o suspended), la richiesta fallisce con 404 not_found, la stessa risposta di un utente sconosciuto. Se l'utente è membro, vengono mostrate solo la classe di ciascun autenticatore e se è stato registrato l'MFA: sono elencati solo gli autenticatori attivi, mentre label, last_used_at, revoked_at, revoked_by e revoke_reason sono null e synced è false, perché i dettagli del dispositivo della persona al di fuori dell'organizzazione non le competono. L'MFA risulta registrato quando un autenticatore attivo ha il role second_factor o both. Senza org_id la risposta non cambia.
Richiesta
| Parametro | In | Obbligatorio | Descrizione |
|---|---|---|---|
user_id |
path | sì | ID utente, con prefisso usr_. |
org_id |
query | no | ID dell'organizzazione, con prefisso org_. Limita la vista a quell'organizzazione; vedi Ambito dell'organizzazione. Richiede organizations:read. |
Risposta
200 OK. data contiene gli autenticatori ordinati per data di creazione; list_metadata ha sempre valore null perché l'elenco non è paginato. I campi vuoti sono null.
Quando la chiave non ha l'autorizzazione users:read_pii, label viene ridotta alle iniziali (A. L.).
{
"data": [
{
"id": "cred_0a1b2c3d4e5f6g7h8j9k0m1n2p",
"type": "webauthn",
"role": "both",
"label": "Laptop",
"status": "active",
"synced": true,
"created_at": "2026-01-15T09:30:00Z",
"last_used_at": "2026-02-01T08:00:00Z",
"revoked_at": null,
"revoked_by": null,
"revoke_reason": null
}
],
"list_metadata": {
"before": null,
"after": null
}
}
type: webauthn, totp, sms, email, push · role: first_factor, second_factor, both · status: pending, active, revoked, clone_suspected
Errori
Ogni errore è un corpo application/problem+json con un code stabile.
| HTTP | code |
Quando |
|---|---|---|
| 404 | not_found |
L'utente non esiste in questo ambiente (o l'ID non è valido), oppure org_id è presente e l'utente non è membro di quell'organizzazione. |
| 401 | unauthenticated |
La chiave API manca, non è valida o è stata revocata. |
| 403 | insufficient_permissions |
La chiave non ha l'autorizzazione users:read, oppure org_id è presente e la chiave non ha organizations:read. |
| 429 | rate_limited |
È stato superato il limite di richieste; rispetta Retry-After. |
| 503 | service_unavailable |
Una dipendenza non è temporaneamente disponibile; riprova più tardi. |
Esempio
curl https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/authenticators \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
Dati personali
Questo endpoint tratta dati personali: credenziali. Dati personali nelle API di KeenAuth descrive cosa viene memorizzato, per quanto tempo viene conservato e come viene cancellato. Non inviare categorie particolari di dati personali (salute, dati biometrici, religione, opinioni politiche, orientamento sessuale) in nessun campo.