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
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.
Field Type Description decisionTraceEnabledboolean Enable forensic decision tracing. decisionTraceSampleRatenumber (0-1) Fraction of decisions to trace (e.g., 0.1 = 10%). defaultArbitrationProfileIdstring Default arbitration profile for scoring. holdoutPercentagenumber (0-100) Global holdout percentage for experimentation. enableExperimentsboolean Enable A/B experiment framework. enableBudgetsboolean Enable offer budget enforcement. enableGuardrailsboolean Enable guardrail policy checks. enableJourneysboolean Enable journey orchestration module. enableContentManagementboolean Enable content management module. enableBehavioralMetricsboolean Enable 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. approvalWorkflowEnabledboolean Require approval for production changes. mfaRequiredboolean Require multi-factor authentication. themeenum UI theme: "dark", "light", "system". localestring (max 10) Locale code (e.g., "en-US"). timezonestring (max 50) IANA timezone (e.g., "America/New_York"). mlWorkerobject ML worker configuration (see below).
ML Worker settings
Field Type Description mlWorker.urlstring (URL) ML worker endpoint URL. Empty string to clear. mlWorker.enabledboolean Whether 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
Code Reason 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
Method Minimum role GET adminPUT admin
Settings Learn more about tenant configuration in the platform UI.