List a user's linked identities

GET /v1/users/{user_id}/identities · permission users:read

Lists the linked identities of a user (password, social, SAML, OIDC and legacy) in one page, ordered by creation time. The number of identities per user is bounded, so the list has no limit, after, before or order, and list_metadata is always null valued. The external subject of an identity (OIDC sub, SAML NameID), the email address reported by the identity provider and the credential reference are never returned. Passkeys and one-time code methods are authenticators and are listed by GET /v1/users/{user_id}/authenticators.

Request

Parameter In Required Description
user_id path yes User id, prefixed usr_.

Response

200 OK. data holds the identities ordered by creation time; list_metadata is always null valued because the list is not paginated. connection_id is null for password; provider is set only for social.

Identity ids carry the idn_ prefix.

{
  "data": [
    {
      "id": "idn_0a1b2c3d4e5f6g7h8j9k0m1n2q",
      "type": "password",
      "connection_id": null,
      "provider": null,
      "linked_via": "primary",
      "created_at": "2026-01-15T09:30:00Z"
    },
    {
      "id": "idn_0a1b2c3d4e5f6g7h8j9k0m1n2r",
      "type": "social",
      "connection_id": "conn_0a1b2c3d4e5f6g7h8j9k0m1n2s",
      "provider": "google",
      "linked_via": "manual_link",
      "created_at": "2026-02-01T08:00:00Z"
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}

type: password, social, saml, oidc, legacy · linked_via: primary, auto_verified_email, user_confirmed, admin_api, import, jit, auto_domain, invite_proof, manual_link, scim_match

Errors

Every error is an application/problem+json body with a stable code.

HTTP code When
404 not_found The user does not exist in this environment (or the id is malformed).
401 unauthenticated The API key is missing, invalid or revoked.
403 insufficient_permissions The key lacks the users:read permission.
429 rate_limited The rate limit was exceeded; honor Retry-After.
503 service_unavailable A dependency is temporarily unavailable; retry later.

Example

curl https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/identities \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

Personal data

This endpoint carries personal data: linked identities. Personal data in the KeenAuth APIs describes what is stored, how long it is kept and how it is deleted. Do not send special categories of personal data (health, biometric data, religion, political opinions, sexual orientation) in any field.