Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kaireonai.com/llms.txt

Use this file to discover all available pages before exploring further.

The Tenant Settings API provides granular control over platform behavior for each tenant. Settings are stored as a JSON object on the tenant record and support partial updates (only changed keys need to be sent).

Base path

/api/v1/tenant-settings

Get tenant settings

GET /api/v1/tenant-settings
Returns the current tenant settings object. If no settings have been configured, returns an empty object.

Response 200

{
  "decisionTraceEnabled": true,
  "decisionTraceSampleRate": 0.1,
  "defaultArbitrationProfileId": "ap_001",
  "holdoutPercentage": 10,
  "enableExperiments": true,
  "enableBudgets": true,
  "enableGuardrails": true,
  "enableJourneys": false,
  "enableContentManagement": true,
  "enableBehavioralMetrics": true,
  "maxOffersPerDecision": 10,
  "defaultChannelTimeout": 5000,
  "retentionDays": 365,
  "approvalWorkflowEnabled": false,
  "mfaRequired": false,
  "theme": "dark",
  "locale": "en-US",
  "timezone": "America/New_York",
  "mlWorker": {
    "url": "https://ml-worker.example.com",
    "enabled": true
  }
}

Update tenant settings

PUT /api/v1/tenant-settings
Partially updates tenant settings. Only the provided keys are changed; all other settings are preserved. Nested objects (e.g., mlWorker) are deep-merged.

Request body

All fields are optional. Only include the settings you want to change.
FieldTypeDescription
decisionTraceEnabledbooleanEnable forensic decision tracing.
decisionTraceSampleRatenumber (0-1)Fraction of decisions to trace (e.g., 0.1 = 10%).
defaultArbitrationProfileIdstringDefault arbitration profile for scoring.
holdoutPercentagenumber (0-100)Global holdout percentage for experimentation.
enableExperimentsbooleanEnable A/B experiment framework.
enableBudgetsbooleanEnable offer budget enforcement.
enableGuardrailsbooleanEnable guardrail policy checks.
enableJourneysbooleanEnable journey orchestration module.
enableContentManagementbooleanEnable content management module.
enableBehavioralMetricsbooleanEnable behavioral metrics tracking.
maxOffersPerDecisioninteger (1-100)Maximum offers returned per Recommend call.
defaultChannelTimeoutinteger (100-60000)Default channel delivery timeout in milliseconds.
retentionDaysinteger (1-3650)Default data retention period in days.
approvalWorkflowEnabledbooleanRequire approval for production changes.
mfaRequiredbooleanRequire multi-factor authentication.
themeenumUI theme: "dark", "light", "system".
localestring (max 10)Locale code (e.g., "en-US").
timezonestring (max 50)IANA timezone (e.g., "America/New_York").
nbaEnabledbooleanKill switch for NBA engine. When false, Recommend API returns offers sorted by priority only (no flow execution). Default: true.
modelMaturityThresholdinteger (0-10000)Minimum interactions before a new offer gets full exposure in scoring. Default: 100.
interactionHistoryRetentionDaysinteger (30-9999)Retention period for raw interaction history records. Default: 730 (~2 years).
summaryRetentionDaysinteger (30-9999)Retention period for aggregated interaction summaries. Default: 2555 (~7 years).
arbitrationInfluencersEnabledbooleanWhen true, past outcomes influence future scoring of related offers by category. Default: true.
mlWorkerobjectML worker configuration (see below).

ML Worker settings

FieldTypeDescription
mlWorker.urlstring (URL)ML worker endpoint URL. Empty string to clear.
mlWorker.enabledbooleanWhether the ML worker integration is active.

Example request

{
  "decisionTraceEnabled": true,
  "decisionTraceSampleRate": 0.05,
  "maxOffersPerDecision": 5
}

Response 200

Returns the full merged settings object after the update.

Error codes

CodeReason
400Validation error (unknown keys rejected via strict mode, invalid value types or ranges).
The schema uses strict validation. Any unrecognized keys in the request body will cause a 400 error. Only the documented fields above are accepted.

Role requirements

MethodMinimum role
GETadmin
PUTadmin

Settings

Learn more about tenant configuration in the platform UI.