{
  "name": "Uniphi Key Lab API",
  "version": "0.1.0",
  "base": "/api",
  "endpoints": [
    {
      "method": "POST",
      "path": "/auth/register",
      "desc": "Email+password registration; returns ephemeral session token."
    },
    {
      "method": "POST",
      "path": "/auth/login",
      "desc": "Login; returns session token."
    },
    {
      "method": "POST",
      "path": "/auth/logout",
      "desc": "Invalidate session."
    },
    {
      "method": "POST",
      "path": "/webauthn/register/start",
      "desc": "Begin WebAuthn ceremony; returns PublicKeyCredentialCreationOptions."
    },
    {
      "method": "POST",
      "path": "/webauthn/register/finish",
      "desc": "Finish WebAuthn registration; verifies attestation."
    },
    {
      "method": "POST",
      "path": "/webauthn/auth/start",
      "desc": "Begin WebAuthn authentication; returns PublicKeyCredentialRequestOptions."
    },
    {
      "method": "POST",
      "path": "/webauthn/auth/finish",
      "desc": "Finish WebAuthn authentication; verifies assertion."
    },
    {
      "method": "POST",
      "path": "/otp/seed",
      "desc": "Create TOTP secret; returns otpauth URI."
    },
    {
      "method": "GET",
      "path": "/qr/:payload",
      "desc": "Render QR (PNG) for given payload (server-side)."
    },
    {
      "method": "GET",
      "path": "/vault/list",
      "desc": "List encrypted vault entries for the user."
    },
    {
      "method": "POST",
      "path": "/vault/put",
      "desc": "Create/update an entry (ciphertext blob)."
    },
    {
      "method": "POST",
      "path": "/vault/del",
      "desc": "Delete an entry by id."
    },
    {
      "method": "GET",
      "path": "/health",
      "desc": "Health check."
    }
  ]
}