Platform settings are global infrastructure configuration managed by the platform owner tenant. They store channel provider credentials (email, SMS, push) and other infrastructure settings. Encrypted values are masked in responses. Admin only, platform owner tenant only.
Retrieve platform settings, optionally filtered by category.
Query Parameters
| Parameter | Type | Required | Description |
|---|
category | string | No | Settings category (e.g., email, sms, push). Omit to get all categories |
Response — Single Category
{
"smtp_host": "smtp.sendgrid.net",
"smtp_port": "587",
"smtp_user": "apikey",
"smtp_password": "****",
"from_email": "noreply@kaireonai.com"
}
Response — All Categories
{
"email": {
"smtp_host": "smtp.sendgrid.net",
"smtp_port": "587"
},
"sms": {
"provider": "twilio",
"account_sid": "AC..."
},
"push": {
"provider": "firebase"
}
}
Update platform settings for a category. Admin only, platform owner tenant only.
Request Body
| Field | Type | Required | Description |
|---|
category | string | Yes | Settings category |
settings | array | Yes | Array of setting objects |
settings[].key | string | Yes | Setting key |
settings[].value | string | Yes | Setting value |
settings[].encrypted | boolean | No | Whether to encrypt the value at rest |
settings[].description | string | No | Human-readable description |
Example
curl -X PUT https://playground.kaireonai.com/api/v1/platform-settings \
-H "Content-Type: application/json" \
-H "X-Tenant-Id: default" \
-d '{
"category": "email",
"settings": [
{ "key": "smtp_host", "value": "smtp.sendgrid.net" },
{ "key": "smtp_port", "value": "587" },
{ "key": "smtp_password", "value": "SG.xxx", "encrypted": true }
]
}'
Response
When email, SMS, or push settings are updated, channel providers are automatically reloaded to pick up the new credentials.