Hanko · Schema

Hanko User

A Hanko user record returned by the Public and Admin APIs.

AuthenticationPasskeysWebAuthnFIDO2IdentityOAuthSAMLPasswordlessOpen Source

Properties

Name Type Description
id string The ID of the user (deprecated, use user_id).
user_id string The ID of the user.
emails array List of email addresses associated with the user.
username string The username of the user.
passkeys array List of registered passkey (WebAuthn) credentials.
created_at string Timestamp when the user was created.
updated_at string Timestamp when the user was last updated.
View JSON Schema on GitHub

JSON Schema

hanko-user-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/hanko/main/json-schema/hanko-user-schema.json",
  "title": "Hanko User",
  "description": "A Hanko user record returned by the Public and Admin APIs.",
  "type": "object",
  "properties": {
    "id": {
      "description": "The ID of the user (deprecated, use user_id).",
      "type": "string",
      "format": "uuid",
      "deprecated": true
    },
    "user_id": {
      "description": "The ID of the user.",
      "type": "string",
      "format": "uuid",
      "example": "c339547d-e17d-4ba7-8a1d-b3d5a4d17c1c"
    },
    "emails": {
      "type": "array",
      "description": "List of email addresses associated with the user.",
      "items": {
        "$ref": "#/$defs/Email"
      }
    },
    "username": {
      "type": "string",
      "description": "The username of the user.",
      "example": "john_doe_123"
    },
    "passkeys": {
      "type": "array",
      "description": "List of registered passkey (WebAuthn) credentials.",
      "items": {
        "$ref": "#/$defs/WebAuthnCredential"
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the user was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the user was last updated."
    }
  },
  "required": ["user_id", "created_at", "updated_at"],
  "$defs": {
    "Email": {
      "type": "object",
      "properties": {
        "id": { "type": "string", "format": "uuid" },
        "address": { "type": "string", "format": "email" },
        "is_verified": { "type": "boolean" },
        "is_primary": { "type": "boolean" },
        "created_at": { "type": "string", "format": "date-time" },
        "updated_at": { "type": "string", "format": "date-time" }
      },
      "required": ["id", "address", "is_verified", "is_primary"]
    },
    "WebAuthnCredential": {
      "type": "object",
      "properties": {
        "id": { "type": "string", "format": "uuid" },
        "name": { "type": "string" },
        "public_key": { "type": "string" },
        "attestation_type": { "type": "string" },
        "aaguid": { "type": "string" },
        "transports": {
          "type": "array",
          "items": { "type": "string" }
        },
        "backup_eligible": { "type": "boolean" },
        "backup_state": { "type": "boolean" },
        "mfa_only": { "type": "boolean" },
        "created_at": { "type": "string", "format": "date-time" },
        "last_used_at": { "type": "string", "format": "date-time" }
      },
      "required": ["id", "attestation_type", "aaguid", "backup_eligible", "backup_state", "mfa_only"]
    }
  }
}