Settings

The Settings API manages user preferences organized into seven categories: appearance, notifications, chat, voice, privacy, integrations, and accessibility. Settings are deep-merged on update and fall back to platform defaults when unset. Rate limited to 100 requests per minute.

Get All Settings

GET/api/v2/settingsAuthenticated

Returns all settings for the authenticated user, merged with platform defaults for any unset values.

Request

cURL
400">curl -X 400">GET https:400">class="text-zinc-500">//api.lvng.ai/api/v2/settings \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_JWT_TOKEN"

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"settings": {
    400">class="text-emerald-400">"appearance": {
      400">class="text-emerald-400">"theme": 400">class="text-emerald-400">"system",
      400">class="text-emerald-400">"fontSize": 400">class="text-emerald-400">"medium",
      400">class="text-emerald-400">"compactMode": false,
      400">class="text-emerald-400">"sidebarCollapsed": false,
      400">class="text-emerald-400">"accentColor": 400">class="text-emerald-400">"#6366f1"
    },
    400">class="text-emerald-400">"notifications": {
      400">class="text-emerald-400">"enabled": true,
      400">class="text-emerald-400">"desktop": true,
      400">class="text-emerald-400">"email": true,
      400">class="text-emerald-400">"mentions": true,
      400">class="text-emerald-400">"directMessages": true,
      400">class="text-emerald-400">"workflowUpdates": true,
      400">class="text-emerald-400">"soundEnabled": true,
      400">class="text-emerald-400">"quietHoursEnabled": false,
      400">class="text-emerald-400">"quietHoursStart": 400">class="text-emerald-400">"22:00",
      400">class="text-emerald-400">"quietHoursEnd": 400">class="text-emerald-400">"08:00"
    },
    400">class="text-emerald-400">"chat": {
      400">class="text-emerald-400">"defaultPersonality": 400">class="text-emerald-400">"lvng",
      400">class="text-emerald-400">"streamResponses": true,
      400">class="text-emerald-400">"showTimestamps": true,
      400">class="text-emerald-400">"enterToSend": true,
      400">class="text-emerald-400">"showAvatars": true,
      400">class="text-emerald-400">"messageGrouping": true
    },
    400">class="text-emerald-400">"voice": {
      400">class="text-emerald-400">"autoTranscribe": true,
      400">class="text-emerald-400">"language": 400">class="text-emerald-400">"en-US",
      400">class="text-emerald-400">"saveRecordings": true
    },
    400">class="text-emerald-400">"privacy": {
      400">class="text-emerald-400">"shareAnalytics": true,
      400">class="text-emerald-400">"activityStatus": 400">class="text-emerald-400">"online",
      400">class="text-emerald-400">"readReceipts": true
    },
    400">class="text-emerald-400">"integrations": {
      400">class="text-emerald-400">"connectedPlatforms": [],
      400">class="text-emerald-400">"defaultExportFormat": 400">class="text-emerald-400">"json"
    },
    400">class="text-emerald-400">"accessibility": {
      400">class="text-emerald-400">"reduceMotion": false,
      400">class="text-emerald-400">"highContrast": false,
      400">class="text-emerald-400">"screenReaderOptimized": false,
      400">class="text-emerald-400">"keyboardShortcuts": true
    }
  }
}

Update All Settings

PUT/api/v2/settingsAuthenticated

Deep-merges the provided settings with existing user settings. Only the keys you include are changed; everything else is preserved.

Body Parameters

appearanceobject

Appearance settings (theme, fontSize, compactMode, sidebarCollapsed, accentColor).

notificationsobject

Notification preferences (enabled, desktop, email, mentions, directMessages, workflowUpdates, soundEnabled, quietHoursEnabled, quietHoursStart, quietHoursEnd).

chatobject

Chat behavior (defaultPersonality, streamResponses, showTimestamps, enterToSend, showAvatars, messageGrouping).

voiceobject

Voice settings (autoTranscribe, language, saveRecordings).

privacyobject

Privacy options (shareAnalytics, activityStatus, readReceipts). activityStatus is one of: online, away, dnd, invisible.

integrationsobject

Integration config (connectedPlatforms, defaultExportFormat).

accessibilityobject

Accessibility options (reduceMotion, highContrast, screenReaderOptimized, keyboardShortcuts).

Request

cURL
400">curl -X 400">PUT https:400">class="text-zinc-500">//api.lvng.ai/api/v2/settings \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_JWT_TOKEN" \
  -H 400">class="text-emerald-400">"Content-Type: application/json" \
  -d '{
    400">class="text-emerald-400">"appearance": {
      400">class="text-emerald-400">"theme": 400">class="text-emerald-400">"dark",
      400">class="text-emerald-400">"compactMode": true
    },
    400">class="text-emerald-400">"notifications": {
      400">class="text-emerald-400">"quietHoursEnabled": true,
      400">class="text-emerald-400">"quietHoursStart": 400">class="text-emerald-400">"23:00",
      400">class="text-emerald-400">"quietHoursEnd": 400">class="text-emerald-400">"07:00"
    }
  }'

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"settings": {
    400">class="text-emerald-400">"appearance": {
      400">class="text-emerald-400">"theme": 400">class="text-emerald-400">"dark",
      400">class="text-emerald-400">"fontSize": 400">class="text-emerald-400">"medium",
      400">class="text-emerald-400">"compactMode": true,
      400">class="text-emerald-400">"sidebarCollapsed": false,
      400">class="text-emerald-400">"accentColor": 400">class="text-emerald-400">"#6366f1"
    },
    400">class="text-emerald-400">"notifications": {
      400">class="text-emerald-400">"enabled": true,
      400">class="text-emerald-400">"desktop": true,
      400">class="text-emerald-400">"email": true,
      400">class="text-emerald-400">"mentions": true,
      400">class="text-emerald-400">"directMessages": true,
      400">class="text-emerald-400">"workflowUpdates": true,
      400">class="text-emerald-400">"soundEnabled": true,
      400">class="text-emerald-400">"quietHoursEnabled": true,
      400">class="text-emerald-400">"quietHoursStart": 400">class="text-emerald-400">"23:00",
      400">class="text-emerald-400">"quietHoursEnd": 400">class="text-emerald-400">"07:00"
    },
    400">class="text-emerald-400">"chat": {
      400">class="text-emerald-400">"defaultPersonality": 400">class="text-emerald-400">"lvng",
      400">class="text-emerald-400">"streamResponses": true,
      400">class="text-emerald-400">"showTimestamps": true,
      400">class="text-emerald-400">"enterToSend": true,
      400">class="text-emerald-400">"showAvatars": true,
      400">class="text-emerald-400">"messageGrouping": true
    },
    400">class="text-emerald-400">"voice": {
      400">class="text-emerald-400">"autoTranscribe": true,
      400">class="text-emerald-400">"language": 400">class="text-emerald-400">"en-US",
      400">class="text-emerald-400">"saveRecordings": true
    },
    400">class="text-emerald-400">"privacy": {
      400">class="text-emerald-400">"shareAnalytics": true,
      400">class="text-emerald-400">"activityStatus": 400">class="text-emerald-400">"online",
      400">class="text-emerald-400">"readReceipts": true
    },
    400">class="text-emerald-400">"integrations": {
      400">class="text-emerald-400">"connectedPlatforms": [],
      400">class="text-emerald-400">"defaultExportFormat": 400">class="text-emerald-400">"json"
    },
    400">class="text-emerald-400">"accessibility": {
      400">class="text-emerald-400">"reduceMotion": false,
      400">class="text-emerald-400">"highContrast": false,
      400">class="text-emerald-400">"screenReaderOptimized": false,
      400">class="text-emerald-400">"keyboardShortcuts": true
    }
  }
}

Get Category Settings

GET/api/v2/settings/:categoryAuthenticated

Returns settings for a single category. Returns 400 if the category is invalid.

Path Parameters

categorystringrequired

One of: appearance, notifications, chat, voice, privacy, integrations, accessibility.

Request

cURL
400">curl -X 400">GET https:400">class="text-zinc-500">//api.lvng.ai/api/v2/settings/chat \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_JWT_TOKEN"

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"category": 400">class="text-emerald-400">"chat",
  400">class="text-emerald-400">"settings": {
    400">class="text-emerald-400">"defaultPersonality": 400">class="text-emerald-400">"lvng",
    400">class="text-emerald-400">"streamResponses": true,
    400">class="text-emerald-400">"showTimestamps": true,
    400">class="text-emerald-400">"enterToSend": true,
    400">class="text-emerald-400">"showAvatars": true,
    400">class="text-emerald-400">"messageGrouping": true
  }
}

Update Category Settings

PUT/api/v2/settings/:categoryAuthenticated

Shallow-merges the request body into the specified category. Existing keys within the category that are not in the request body are preserved.

Path Parameters

categorystringrequired

The settings category to update.

Body Parameters

...keysanyrequired

Key-value pairs for the category. Send only the fields you want to change.

Request

cURL
400">curl -X 400">PUT https:400">class="text-zinc-500">//api.lvng.ai/api/v2/settings/notifications \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_JWT_TOKEN" \
  -H 400">class="text-emerald-400">"Content-Type: application/json" \
  -d '{
    400">class="text-emerald-400">"email": false,
    400">class="text-emerald-400">"soundEnabled": false
  }'

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"category": 400">class="text-emerald-400">"notifications",
  400">class="text-emerald-400">"settings": {
    400">class="text-emerald-400">"enabled": true,
    400">class="text-emerald-400">"desktop": true,
    400">class="text-emerald-400">"email": false,
    400">class="text-emerald-400">"mentions": true,
    400">class="text-emerald-400">"directMessages": true,
    400">class="text-emerald-400">"workflowUpdates": true,
    400">class="text-emerald-400">"soundEnabled": false,
    400">class="text-emerald-400">"quietHoursEnabled": false,
    400">class="text-emerald-400">"quietHoursStart": 400">class="text-emerald-400">"22:00",
    400">class="text-emerald-400">"quietHoursEnd": 400">class="text-emerald-400">"08:00"
  }
}

Reset Setting to Default

DELETE/api/v2/settings/:category/:keyAuthenticated

Resets a single setting key back to its platform default value. Returns 400 if the category or key is invalid.

Path Parameters

categorystringrequired

The settings category (e.g. appearance, chat).

keystringrequired

The specific setting key to reset (e.g. theme, streamResponses).

Request

cURL
400">curl -X 400">DELETE https:400">class="text-zinc-500">//api.lvng.ai/api/v2/settings/appearance/theme \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_JWT_TOKEN"

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"category": 400">class="text-emerald-400">"appearance",
  400">class="text-emerald-400">"key": 400">class="text-emerald-400">"theme",
  400">class="text-emerald-400">"value": 400">class="text-emerald-400">"system",
  400">class="text-emerald-400">"message": 400">class="text-emerald-400">"Setting reset to 400">default"
}

Export Settings

POST/api/v2/settings/exportAuthenticated

Exports all user settings as a versioned JSON object. Use this for backups or migrating settings between accounts.

Request

cURL
400">curl -X 400">POST https:400">class="text-zinc-500">//api.lvng.ai/api/v2/settings/400">export \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_JWT_TOKEN"

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"400">export": {
    400">class="text-emerald-400">"version": 400">class="text-emerald-400">"2.0",
    400">class="text-emerald-400">"exportedAt": 400">class="text-emerald-400">"2026-03-19T10:30:00.000Z",
    400">class="text-emerald-400">"settings": {
      400">class="text-emerald-400">"appearance": { 400">class="text-emerald-400">"theme": 400">class="text-emerald-400">"dark", 400">class="text-emerald-400">"fontSize": 400">class="text-emerald-400">"medium", 400">class="text-emerald-400">"compactMode": true, 400">class="text-emerald-400">"sidebarCollapsed": false, 400">class="text-emerald-400">"accentColor": 400">class="text-emerald-400">"#6366f1" },
      400">class="text-emerald-400">"notifications": { 400">class="text-emerald-400">"enabled": true, 400">class="text-emerald-400">"desktop": true, 400">class="text-emerald-400">"email": true, 400">class="text-emerald-400">"mentions": true, 400">class="text-emerald-400">"directMessages": true, 400">class="text-emerald-400">"workflowUpdates": true, 400">class="text-emerald-400">"soundEnabled": true, 400">class="text-emerald-400">"quietHoursEnabled": false, 400">class="text-emerald-400">"quietHoursStart": 400">class="text-emerald-400">"22:00", 400">class="text-emerald-400">"quietHoursEnd": 400">class="text-emerald-400">"08:00" },
      400">class="text-emerald-400">"chat": { 400">class="text-emerald-400">"defaultPersonality": 400">class="text-emerald-400">"lvng", 400">class="text-emerald-400">"streamResponses": true, 400">class="text-emerald-400">"showTimestamps": true, 400">class="text-emerald-400">"enterToSend": true, 400">class="text-emerald-400">"showAvatars": true, 400">class="text-emerald-400">"messageGrouping": true },
      400">class="text-emerald-400">"voice": { 400">class="text-emerald-400">"autoTranscribe": true, 400">class="text-emerald-400">"language": 400">class="text-emerald-400">"en-US", 400">class="text-emerald-400">"saveRecordings": true },
      400">class="text-emerald-400">"privacy": { 400">class="text-emerald-400">"shareAnalytics": true, 400">class="text-emerald-400">"activityStatus": 400">class="text-emerald-400">"online", 400">class="text-emerald-400">"readReceipts": true },
      400">class="text-emerald-400">"integrations": { 400">class="text-emerald-400">"connectedPlatforms": [], 400">class="text-emerald-400">"defaultExportFormat": 400">class="text-emerald-400">"json" },
      400">class="text-emerald-400">"accessibility": { 400">class="text-emerald-400">"reduceMotion": false, 400">class="text-emerald-400">"highContrast": false, 400">class="text-emerald-400">"screenReaderOptimized": false, 400">class="text-emerald-400">"keyboardShortcuts": true }
    }
  }
}

Import Settings

POST/api/v2/settings/importAuthenticated

Imports settings from a previously exported payload. By default merges with existing settings. Set merge to false to replace all settings entirely.

Body Parameters

settingsobjectrequired

The settings object to import, matching the export format structure.

mergeboolean
Default: true

When true (default), imported keys are merged with existing settings. When false, all settings are replaced.

Request

cURL
400">curl -X 400">POST https:400">class="text-zinc-500">//api.lvng.ai/api/v2/settings/400">import \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_JWT_TOKEN" \
  -H 400">class="text-emerald-400">"Content-Type: application/json" \
  -d '{
    400">class="text-emerald-400">"settings": {
      400">class="text-emerald-400">"chat": {
        400">class="text-emerald-400">"defaultPersonality": 400">class="text-emerald-400">"lvng",
        400">class="text-emerald-400">"streamResponses": false,
        400">class="text-emerald-400">"enterToSend": false
      },
      400">class="text-emerald-400">"appearance": {
        400">class="text-emerald-400">"theme": 400">class="text-emerald-400">"light",
        400">class="text-emerald-400">"accentColor": 400">class="text-emerald-400">"#ec4899"
      }
    },
    400">class="text-emerald-400">"merge": true
  }'

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"message": 400">class="text-emerald-400">"Settings merged successfully",
  400">class="text-emerald-400">"settings": {
    400">class="text-emerald-400">"appearance": {
      400">class="text-emerald-400">"theme": 400">class="text-emerald-400">"light",
      400">class="text-emerald-400">"fontSize": 400">class="text-emerald-400">"medium",
      400">class="text-emerald-400">"compactMode": true,
      400">class="text-emerald-400">"sidebarCollapsed": false,
      400">class="text-emerald-400">"accentColor": 400">class="text-emerald-400">"#ec4899"
    },
    400">class="text-emerald-400">"notifications": {
      400">class="text-emerald-400">"enabled": true,
      400">class="text-emerald-400">"desktop": true,
      400">class="text-emerald-400">"email": true,
      400">class="text-emerald-400">"mentions": true,
      400">class="text-emerald-400">"directMessages": true,
      400">class="text-emerald-400">"workflowUpdates": true,
      400">class="text-emerald-400">"soundEnabled": true,
      400">class="text-emerald-400">"quietHoursEnabled": false,
      400">class="text-emerald-400">"quietHoursStart": 400">class="text-emerald-400">"22:00",
      400">class="text-emerald-400">"quietHoursEnd": 400">class="text-emerald-400">"08:00"
    },
    400">class="text-emerald-400">"chat": {
      400">class="text-emerald-400">"defaultPersonality": 400">class="text-emerald-400">"lvng",
      400">class="text-emerald-400">"streamResponses": false,
      400">class="text-emerald-400">"showTimestamps": true,
      400">class="text-emerald-400">"enterToSend": false,
      400">class="text-emerald-400">"showAvatars": true,
      400">class="text-emerald-400">"messageGrouping": true
    },
    400">class="text-emerald-400">"voice": {
      400">class="text-emerald-400">"autoTranscribe": true,
      400">class="text-emerald-400">"language": 400">class="text-emerald-400">"en-US",
      400">class="text-emerald-400">"saveRecordings": true
    },
    400">class="text-emerald-400">"privacy": {
      400">class="text-emerald-400">"shareAnalytics": true,
      400">class="text-emerald-400">"activityStatus": 400">class="text-emerald-400">"online",
      400">class="text-emerald-400">"readReceipts": true
    },
    400">class="text-emerald-400">"integrations": {
      400">class="text-emerald-400">"connectedPlatforms": [],
      400">class="text-emerald-400">"defaultExportFormat": 400">class="text-emerald-400">"json"
    },
    400">class="text-emerald-400">"accessibility": {
      400">class="text-emerald-400">"reduceMotion": false,
      400">class="text-emerald-400">"highContrast": false,
      400">class="text-emerald-400">"screenReaderOptimized": false,
      400">class="text-emerald-400">"keyboardShortcuts": true
    }
  }
}