Account & Profile

Manage user accounts and profiles

Account & Profile API

Manage authenticated user accounts and profile information.


Get Account {#get-account}

Retrieve the authenticated user's complete account information.

Endpoint

GET /api/v1/account

Authentication

Required - Must include valid session token

Response

{
  "id": "account-id-123",
  "created": "2024-01-01T00:00:00Z",
  "modified": "2024-01-01T00:00:00Z",
  "display_name": "DragonSlayer42",
  "email": "user@example.com",
  "status": "active",
  "metadata": {
    "season": "PRIMORDIAL",
    "age": "30",
    "credMetadata": {
      "credential-id": {
        "credId": "credential-id",
        "deviceName": "My iPhone 15",
        "userAgent": "Mozilla/5.0...",
        "platform": "iOS",
        "createdAt": "2024-01-01T00:00:00Z"
      }
    }
  },
  "credentials": []
}

Response Fields

FieldTypeDescription
idstringUnique account identifier
createdtimestampAccount creation date
modifiedtimestampLast modification date
display_namestringUser's display name
emailstringUser's email address
statusstringAccount status
metadataobjectAccount metadata including season, age, and WebAuthn credentials
credentialsarrayArray of WebAuthn credentials

Update Profile {#update-profile}

Update the authenticated user's profile information.

Endpoint

PUT /api/v1/profile

Authentication

Required - Must include valid session token

Request Body

{
  "display_name": "NewDisplayName"
}

Request Fields

FieldTypeRequiredDescription
display_namestringYesNew display name (must be unique, case-insensitive)

Success Response

{
  "id": "account-id-123",
  "created": 1704067200,
  "modified": 1704153600,
  "display_name": "NewDisplayName",
  "email": "user@example.com",
  "status": "active"
}

Validation Failure Response

If the display name is already taken:

{
  "validDisplayName": false
}

Notes

  • Display name uniqueness check is case-insensitive
  • Display name is trimmed of whitespace before validation
  • Updates the modified timestamp when successful