Update Configuration
curl --request POST \
--url https://api.example.com/api/configs/import \
--header 'Content-Type: application/json' \
--data '
{
"config": {
"version": 123,
"ui": {
"enable_signup": true,
"ENABLE_LOGIN_FORM": true,
"default_locale": "<string>",
"default_models": "<string>",
"default_pinned_models": "<string>",
"model_order_list": [
{}
],
"prompt_suggestions": [
{}
],
"banners": [
{}
]
},
"auth": {
"enable_api_keys": true,
"jwt_expiry": "<string>"
},
"oauth": {
"enable_signup": true,
"merge_accounts_by_email": true
},
"ollama": {
"enable": true,
"base_urls": [
{}
],
"api_configs": {}
},
"openai": {
"enable": true,
"api_keys": [
{}
],
"api_base_urls": [
{}
],
"api_configs": {}
},
"models": {
"base_models_cache": true,
"default_metadata": {},
"default_params": {}
},
"tool_server": {
"connections": [
{}
]
},
"terminal_server": {
"connections": [
{}
]
},
"direct": {
"enable": true
},
"webui": {
"url": "<string>"
},
"user": {
"permissions": {}
},
"folders": {
"enable": true,
"max_file_count": "<string>"
},
"channels": {
"enable": true
},
"notes": {
"enable": true
},
"webhook_url": "<string>"
}
}
'import requests
url = "https://api.example.com/api/configs/import"
payload = { "config": {
"version": 123,
"ui": {
"enable_signup": True,
"ENABLE_LOGIN_FORM": True,
"default_locale": "<string>",
"default_models": "<string>",
"default_pinned_models": "<string>",
"model_order_list": [{}],
"prompt_suggestions": [{}],
"banners": [{}]
},
"auth": {
"enable_api_keys": True,
"jwt_expiry": "<string>"
},
"oauth": {
"enable_signup": True,
"merge_accounts_by_email": True
},
"ollama": {
"enable": True,
"base_urls": [{}],
"api_configs": {}
},
"openai": {
"enable": True,
"api_keys": [{}],
"api_base_urls": [{}],
"api_configs": {}
},
"models": {
"base_models_cache": True,
"default_metadata": {},
"default_params": {}
},
"tool_server": { "connections": [{}] },
"terminal_server": { "connections": [{}] },
"direct": { "enable": True },
"webui": { "url": "<string>" },
"user": { "permissions": {} },
"folders": {
"enable": True,
"max_file_count": "<string>"
},
"channels": { "enable": True },
"notes": { "enable": True },
"webhook_url": "<string>"
} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
config: {
version: 123,
ui: {
enable_signup: true,
ENABLE_LOGIN_FORM: true,
default_locale: '<string>',
default_models: '<string>',
default_pinned_models: '<string>',
model_order_list: [{}],
prompt_suggestions: [{}],
banners: [{}]
},
auth: {enable_api_keys: true, jwt_expiry: '<string>'},
oauth: {enable_signup: true, merge_accounts_by_email: true},
ollama: {enable: true, base_urls: [{}], api_configs: {}},
openai: {enable: true, api_keys: [{}], api_base_urls: [{}], api_configs: {}},
models: {base_models_cache: true, default_metadata: {}, default_params: {}},
tool_server: {connections: [{}]},
terminal_server: {connections: [{}]},
direct: {enable: true},
webui: {url: '<string>'},
user: {permissions: {}},
folders: {enable: true, max_file_count: '<string>'},
channels: {enable: true},
notes: {enable: true},
webhook_url: '<string>'
}
})
};
fetch('https://api.example.com/api/configs/import', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/configs/import",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'config' => [
'version' => 123,
'ui' => [
'enable_signup' => true,
'ENABLE_LOGIN_FORM' => true,
'default_locale' => '<string>',
'default_models' => '<string>',
'default_pinned_models' => '<string>',
'model_order_list' => [
[
]
],
'prompt_suggestions' => [
[
]
],
'banners' => [
[
]
]
],
'auth' => [
'enable_api_keys' => true,
'jwt_expiry' => '<string>'
],
'oauth' => [
'enable_signup' => true,
'merge_accounts_by_email' => true
],
'ollama' => [
'enable' => true,
'base_urls' => [
[
]
],
'api_configs' => [
]
],
'openai' => [
'enable' => true,
'api_keys' => [
[
]
],
'api_base_urls' => [
[
]
],
'api_configs' => [
]
],
'models' => [
'base_models_cache' => true,
'default_metadata' => [
],
'default_params' => [
]
],
'tool_server' => [
'connections' => [
[
]
]
],
'terminal_server' => [
'connections' => [
[
]
]
],
'direct' => [
'enable' => true
],
'webui' => [
'url' => '<string>'
],
'user' => [
'permissions' => [
]
],
'folders' => [
'enable' => true,
'max_file_count' => '<string>'
],
'channels' => [
'enable' => true
],
'notes' => [
'enable' => true
],
'webhook_url' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/configs/import"
payload := strings.NewReader("{\n \"config\": {\n \"version\": 123,\n \"ui\": {\n \"enable_signup\": true,\n \"ENABLE_LOGIN_FORM\": true,\n \"default_locale\": \"<string>\",\n \"default_models\": \"<string>\",\n \"default_pinned_models\": \"<string>\",\n \"model_order_list\": [\n {}\n ],\n \"prompt_suggestions\": [\n {}\n ],\n \"banners\": [\n {}\n ]\n },\n \"auth\": {\n \"enable_api_keys\": true,\n \"jwt_expiry\": \"<string>\"\n },\n \"oauth\": {\n \"enable_signup\": true,\n \"merge_accounts_by_email\": true\n },\n \"ollama\": {\n \"enable\": true,\n \"base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"openai\": {\n \"enable\": true,\n \"api_keys\": [\n {}\n ],\n \"api_base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"models\": {\n \"base_models_cache\": true,\n \"default_metadata\": {},\n \"default_params\": {}\n },\n \"tool_server\": {\n \"connections\": [\n {}\n ]\n },\n \"terminal_server\": {\n \"connections\": [\n {}\n ]\n },\n \"direct\": {\n \"enable\": true\n },\n \"webui\": {\n \"url\": \"<string>\"\n },\n \"user\": {\n \"permissions\": {}\n },\n \"folders\": {\n \"enable\": true,\n \"max_file_count\": \"<string>\"\n },\n \"channels\": {\n \"enable\": true\n },\n \"notes\": {\n \"enable\": true\n },\n \"webhook_url\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/configs/import")
.header("Content-Type", "application/json")
.body("{\n \"config\": {\n \"version\": 123,\n \"ui\": {\n \"enable_signup\": true,\n \"ENABLE_LOGIN_FORM\": true,\n \"default_locale\": \"<string>\",\n \"default_models\": \"<string>\",\n \"default_pinned_models\": \"<string>\",\n \"model_order_list\": [\n {}\n ],\n \"prompt_suggestions\": [\n {}\n ],\n \"banners\": [\n {}\n ]\n },\n \"auth\": {\n \"enable_api_keys\": true,\n \"jwt_expiry\": \"<string>\"\n },\n \"oauth\": {\n \"enable_signup\": true,\n \"merge_accounts_by_email\": true\n },\n \"ollama\": {\n \"enable\": true,\n \"base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"openai\": {\n \"enable\": true,\n \"api_keys\": [\n {}\n ],\n \"api_base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"models\": {\n \"base_models_cache\": true,\n \"default_metadata\": {},\n \"default_params\": {}\n },\n \"tool_server\": {\n \"connections\": [\n {}\n ]\n },\n \"terminal_server\": {\n \"connections\": [\n {}\n ]\n },\n \"direct\": {\n \"enable\": true\n },\n \"webui\": {\n \"url\": \"<string>\"\n },\n \"user\": {\n \"permissions\": {}\n },\n \"folders\": {\n \"enable\": true,\n \"max_file_count\": \"<string>\"\n },\n \"channels\": {\n \"enable\": true\n },\n \"notes\": {\n \"enable\": true\n },\n \"webhook_url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/configs/import")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"config\": {\n \"version\": 123,\n \"ui\": {\n \"enable_signup\": true,\n \"ENABLE_LOGIN_FORM\": true,\n \"default_locale\": \"<string>\",\n \"default_models\": \"<string>\",\n \"default_pinned_models\": \"<string>\",\n \"model_order_list\": [\n {}\n ],\n \"prompt_suggestions\": [\n {}\n ],\n \"banners\": [\n {}\n ]\n },\n \"auth\": {\n \"enable_api_keys\": true,\n \"jwt_expiry\": \"<string>\"\n },\n \"oauth\": {\n \"enable_signup\": true,\n \"merge_accounts_by_email\": true\n },\n \"ollama\": {\n \"enable\": true,\n \"base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"openai\": {\n \"enable\": true,\n \"api_keys\": [\n {}\n ],\n \"api_base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"models\": {\n \"base_models_cache\": true,\n \"default_metadata\": {},\n \"default_params\": {}\n },\n \"tool_server\": {\n \"connections\": [\n {}\n ]\n },\n \"terminal_server\": {\n \"connections\": [\n {}\n ]\n },\n \"direct\": {\n \"enable\": true\n },\n \"webui\": {\n \"url\": \"<string>\"\n },\n \"user\": {\n \"permissions\": {}\n },\n \"folders\": {\n \"enable\": true,\n \"max_file_count\": \"<string>\"\n },\n \"channels\": {\n \"enable\": true\n },\n \"notes\": {\n \"enable\": true\n },\n \"webhook_url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"version": 123,
"ui": {},
"auth": {},
"oauth": {},
"ollama": {},
"openai": {},
"models": {},
"tool_server": {},
"terminal_server": {},
"direct": {},
"webui": {},
"user": {},
"folders": {},
"channels": {},
"notes": {},
"webhook_url": "<string>"
}Configuration
Update Configuration
Import and update the complete system configuration
POST
/
api
/
configs
/
import
Update Configuration
curl --request POST \
--url https://api.example.com/api/configs/import \
--header 'Content-Type: application/json' \
--data '
{
"config": {
"version": 123,
"ui": {
"enable_signup": true,
"ENABLE_LOGIN_FORM": true,
"default_locale": "<string>",
"default_models": "<string>",
"default_pinned_models": "<string>",
"model_order_list": [
{}
],
"prompt_suggestions": [
{}
],
"banners": [
{}
]
},
"auth": {
"enable_api_keys": true,
"jwt_expiry": "<string>"
},
"oauth": {
"enable_signup": true,
"merge_accounts_by_email": true
},
"ollama": {
"enable": true,
"base_urls": [
{}
],
"api_configs": {}
},
"openai": {
"enable": true,
"api_keys": [
{}
],
"api_base_urls": [
{}
],
"api_configs": {}
},
"models": {
"base_models_cache": true,
"default_metadata": {},
"default_params": {}
},
"tool_server": {
"connections": [
{}
]
},
"terminal_server": {
"connections": [
{}
]
},
"direct": {
"enable": true
},
"webui": {
"url": "<string>"
},
"user": {
"permissions": {}
},
"folders": {
"enable": true,
"max_file_count": "<string>"
},
"channels": {
"enable": true
},
"notes": {
"enable": true
},
"webhook_url": "<string>"
}
}
'import requests
url = "https://api.example.com/api/configs/import"
payload = { "config": {
"version": 123,
"ui": {
"enable_signup": True,
"ENABLE_LOGIN_FORM": True,
"default_locale": "<string>",
"default_models": "<string>",
"default_pinned_models": "<string>",
"model_order_list": [{}],
"prompt_suggestions": [{}],
"banners": [{}]
},
"auth": {
"enable_api_keys": True,
"jwt_expiry": "<string>"
},
"oauth": {
"enable_signup": True,
"merge_accounts_by_email": True
},
"ollama": {
"enable": True,
"base_urls": [{}],
"api_configs": {}
},
"openai": {
"enable": True,
"api_keys": [{}],
"api_base_urls": [{}],
"api_configs": {}
},
"models": {
"base_models_cache": True,
"default_metadata": {},
"default_params": {}
},
"tool_server": { "connections": [{}] },
"terminal_server": { "connections": [{}] },
"direct": { "enable": True },
"webui": { "url": "<string>" },
"user": { "permissions": {} },
"folders": {
"enable": True,
"max_file_count": "<string>"
},
"channels": { "enable": True },
"notes": { "enable": True },
"webhook_url": "<string>"
} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
config: {
version: 123,
ui: {
enable_signup: true,
ENABLE_LOGIN_FORM: true,
default_locale: '<string>',
default_models: '<string>',
default_pinned_models: '<string>',
model_order_list: [{}],
prompt_suggestions: [{}],
banners: [{}]
},
auth: {enable_api_keys: true, jwt_expiry: '<string>'},
oauth: {enable_signup: true, merge_accounts_by_email: true},
ollama: {enable: true, base_urls: [{}], api_configs: {}},
openai: {enable: true, api_keys: [{}], api_base_urls: [{}], api_configs: {}},
models: {base_models_cache: true, default_metadata: {}, default_params: {}},
tool_server: {connections: [{}]},
terminal_server: {connections: [{}]},
direct: {enable: true},
webui: {url: '<string>'},
user: {permissions: {}},
folders: {enable: true, max_file_count: '<string>'},
channels: {enable: true},
notes: {enable: true},
webhook_url: '<string>'
}
})
};
fetch('https://api.example.com/api/configs/import', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/configs/import",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'config' => [
'version' => 123,
'ui' => [
'enable_signup' => true,
'ENABLE_LOGIN_FORM' => true,
'default_locale' => '<string>',
'default_models' => '<string>',
'default_pinned_models' => '<string>',
'model_order_list' => [
[
]
],
'prompt_suggestions' => [
[
]
],
'banners' => [
[
]
]
],
'auth' => [
'enable_api_keys' => true,
'jwt_expiry' => '<string>'
],
'oauth' => [
'enable_signup' => true,
'merge_accounts_by_email' => true
],
'ollama' => [
'enable' => true,
'base_urls' => [
[
]
],
'api_configs' => [
]
],
'openai' => [
'enable' => true,
'api_keys' => [
[
]
],
'api_base_urls' => [
[
]
],
'api_configs' => [
]
],
'models' => [
'base_models_cache' => true,
'default_metadata' => [
],
'default_params' => [
]
],
'tool_server' => [
'connections' => [
[
]
]
],
'terminal_server' => [
'connections' => [
[
]
]
],
'direct' => [
'enable' => true
],
'webui' => [
'url' => '<string>'
],
'user' => [
'permissions' => [
]
],
'folders' => [
'enable' => true,
'max_file_count' => '<string>'
],
'channels' => [
'enable' => true
],
'notes' => [
'enable' => true
],
'webhook_url' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/configs/import"
payload := strings.NewReader("{\n \"config\": {\n \"version\": 123,\n \"ui\": {\n \"enable_signup\": true,\n \"ENABLE_LOGIN_FORM\": true,\n \"default_locale\": \"<string>\",\n \"default_models\": \"<string>\",\n \"default_pinned_models\": \"<string>\",\n \"model_order_list\": [\n {}\n ],\n \"prompt_suggestions\": [\n {}\n ],\n \"banners\": [\n {}\n ]\n },\n \"auth\": {\n \"enable_api_keys\": true,\n \"jwt_expiry\": \"<string>\"\n },\n \"oauth\": {\n \"enable_signup\": true,\n \"merge_accounts_by_email\": true\n },\n \"ollama\": {\n \"enable\": true,\n \"base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"openai\": {\n \"enable\": true,\n \"api_keys\": [\n {}\n ],\n \"api_base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"models\": {\n \"base_models_cache\": true,\n \"default_metadata\": {},\n \"default_params\": {}\n },\n \"tool_server\": {\n \"connections\": [\n {}\n ]\n },\n \"terminal_server\": {\n \"connections\": [\n {}\n ]\n },\n \"direct\": {\n \"enable\": true\n },\n \"webui\": {\n \"url\": \"<string>\"\n },\n \"user\": {\n \"permissions\": {}\n },\n \"folders\": {\n \"enable\": true,\n \"max_file_count\": \"<string>\"\n },\n \"channels\": {\n \"enable\": true\n },\n \"notes\": {\n \"enable\": true\n },\n \"webhook_url\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/configs/import")
.header("Content-Type", "application/json")
.body("{\n \"config\": {\n \"version\": 123,\n \"ui\": {\n \"enable_signup\": true,\n \"ENABLE_LOGIN_FORM\": true,\n \"default_locale\": \"<string>\",\n \"default_models\": \"<string>\",\n \"default_pinned_models\": \"<string>\",\n \"model_order_list\": [\n {}\n ],\n \"prompt_suggestions\": [\n {}\n ],\n \"banners\": [\n {}\n ]\n },\n \"auth\": {\n \"enable_api_keys\": true,\n \"jwt_expiry\": \"<string>\"\n },\n \"oauth\": {\n \"enable_signup\": true,\n \"merge_accounts_by_email\": true\n },\n \"ollama\": {\n \"enable\": true,\n \"base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"openai\": {\n \"enable\": true,\n \"api_keys\": [\n {}\n ],\n \"api_base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"models\": {\n \"base_models_cache\": true,\n \"default_metadata\": {},\n \"default_params\": {}\n },\n \"tool_server\": {\n \"connections\": [\n {}\n ]\n },\n \"terminal_server\": {\n \"connections\": [\n {}\n ]\n },\n \"direct\": {\n \"enable\": true\n },\n \"webui\": {\n \"url\": \"<string>\"\n },\n \"user\": {\n \"permissions\": {}\n },\n \"folders\": {\n \"enable\": true,\n \"max_file_count\": \"<string>\"\n },\n \"channels\": {\n \"enable\": true\n },\n \"notes\": {\n \"enable\": true\n },\n \"webhook_url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/configs/import")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"config\": {\n \"version\": 123,\n \"ui\": {\n \"enable_signup\": true,\n \"ENABLE_LOGIN_FORM\": true,\n \"default_locale\": \"<string>\",\n \"default_models\": \"<string>\",\n \"default_pinned_models\": \"<string>\",\n \"model_order_list\": [\n {}\n ],\n \"prompt_suggestions\": [\n {}\n ],\n \"banners\": [\n {}\n ]\n },\n \"auth\": {\n \"enable_api_keys\": true,\n \"jwt_expiry\": \"<string>\"\n },\n \"oauth\": {\n \"enable_signup\": true,\n \"merge_accounts_by_email\": true\n },\n \"ollama\": {\n \"enable\": true,\n \"base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"openai\": {\n \"enable\": true,\n \"api_keys\": [\n {}\n ],\n \"api_base_urls\": [\n {}\n ],\n \"api_configs\": {}\n },\n \"models\": {\n \"base_models_cache\": true,\n \"default_metadata\": {},\n \"default_params\": {}\n },\n \"tool_server\": {\n \"connections\": [\n {}\n ]\n },\n \"terminal_server\": {\n \"connections\": [\n {}\n ]\n },\n \"direct\": {\n \"enable\": true\n },\n \"webui\": {\n \"url\": \"<string>\"\n },\n \"user\": {\n \"permissions\": {}\n },\n \"folders\": {\n \"enable\": true,\n \"max_file_count\": \"<string>\"\n },\n \"channels\": {\n \"enable\": true\n },\n \"notes\": {\n \"enable\": true\n },\n \"webhook_url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"version": 123,
"ui": {},
"auth": {},
"oauth": {},
"ollama": {},
"openai": {},
"models": {},
"tool_server": {},
"terminal_server": {},
"direct": {},
"webui": {},
"user": {},
"folders": {},
"channels": {},
"notes": {},
"webhook_url": "<string>"
}Imports a complete system configuration object, updating all settings atomically. This endpoint allows administrators to restore configurations from backups or apply configuration changes in bulk.
Authentication
Requires admin authentication.Request Body
object
required
Complete configuration object to import. See the response schema from GET /api/configs/export for the full structure.
Show properties
Show properties
integer
Configuration version number
object
UI-related configuration settings
Show properties
Show properties
object
object
object
object
object
object
Terminal server configuration
Show properties
Show properties
array
Array of terminal server connection objects
object
string
Webhook URL for notifications
Response
Returns the updated configuration object in the same format as GET /api/configs/export.integer
Configuration version number
object
UI-related configuration settings (see GET endpoint for full schema)
object
Authentication configuration (see GET endpoint for full schema)
object
OAuth configuration settings (see GET endpoint for full schema)
object
Ollama configuration (see GET endpoint for full schema)
object
OpenAI configuration (see GET endpoint for full schema)
object
Model configuration (see GET endpoint for full schema)
object
Tool server configuration (see GET endpoint for full schema)
object
Terminal server configuration (see GET endpoint for full schema)
object
Direct connection settings (see GET endpoint for full schema)
object
Web UI configuration (see GET endpoint for full schema)
object
User configuration (see GET endpoint for full schema)
object
Folder configuration (see GET endpoint for full schema)
object
Channel configuration (see GET endpoint for full schema)
object
Notes configuration (see GET endpoint for full schema)
string
Webhook URL for notifications
Example Request
{
"config": {
"version": 0,
"ui": {
"enable_signup": false,
"ENABLE_LOGIN_FORM": true,
"default_locale": "en-US",
"default_models": "gpt-4,gpt-3.5-turbo",
"default_pinned_models": "gpt-4",
"model_order_list": [],
"prompt_suggestions": [
{
"title": ["Help me study", "vocabulary for a college entrance exam"],
"content": "Help me study vocabulary: write a sentence for me to fill in the blank, and I'll try to pick the correct option."
}
],
"default_user_role": "user",
"default_group_id": "",
"watermark": "Generated by Open WebUI",
"enable_community_sharing": true,
"enable_message_rating": true,
"enable_user_webhooks": true,
"banners": [
{
"id": "maintenance-notice",
"type": "info",
"title": "Scheduled Maintenance",
"content": "System maintenance scheduled for tonight at 11 PM UTC.",
"dismissible": true,
"timestamp": 1709251200
}
]
},
"auth": {
"enable_api_keys": true,
"api_key": {
"endpoint_restrictions": true,
"allowed_endpoints": "/api/chat,/api/completions"
},
"jwt_expiry": "2w",
"admin": {
"show": true,
"email": "admin@example.com"
}
},
"ollama": {
"enable": true,
"base_urls": ["http://localhost:11434"],
"api_configs": {}
},
"openai": {
"enable": true,
"api_keys": ["sk-..."],
"api_base_urls": ["https://api.openai.com/v1"],
"api_configs": {}
},
"models": {
"base_models_cache": true,
"default_metadata": {},
"default_params": {
"temperature": 0.7,
"top_p": 0.9
}
},
"tool_server": {
"connections": [
{
"url": "https://tools.example.com",
"path": "/openapi.json",
"type": "openapi",
"auth_type": "bearer",
"key": "your-api-key"
}
]
},
"direct": {
"enable": false
},
"webui": {
"url": "https://chat.example.com"
}
}
}
Example Response
{
"version": 0,
"ui": {
"enable_signup": false,
"ENABLE_LOGIN_FORM": true,
"default_locale": "en-US",
"default_models": "gpt-4,gpt-3.5-turbo",
"default_pinned_models": "gpt-4",
"model_order_list": [],
"prompt_suggestions": [
{
"title": ["Help me study", "vocabulary for a college entrance exam"],
"content": "Help me study vocabulary: write a sentence for me to fill in the blank, and I'll try to pick the correct option."
}
],
"default_user_role": "user",
"default_group_id": "",
"watermark": "Generated by Open WebUI",
"enable_community_sharing": true,
"enable_message_rating": true,
"enable_user_webhooks": true,
"banners": [
{
"id": "maintenance-notice",
"type": "info",
"title": "Scheduled Maintenance",
"content": "System maintenance scheduled for tonight at 11 PM UTC.",
"dismissible": true,
"timestamp": 1709251200
}
]
},
"auth": {
"enable_api_keys": true,
"api_key": {
"endpoint_restrictions": true,
"allowed_endpoints": "/api/chat,/api/completions"
},
"jwt_expiry": "2w",
"admin": {
"show": true,
"email": "admin@example.com"
}
},
"ollama": {
"enable": true,
"base_urls": ["http://localhost:11434"],
"api_configs": {}
},
"openai": {
"enable": true,
"api_keys": ["sk-..."],
"api_base_urls": ["https://api.openai.com/v1"],
"api_configs": {}
},
"models": {
"base_models_cache": true,
"default_metadata": {},
"default_params": {
"temperature": 0.7,
"top_p": 0.9
}
},
"tool_server": {
"connections": [
{
"url": "https://tools.example.com",
"path": "/openapi.json",
"type": "openapi",
"auth_type": "bearer",
"key": "your-api-key"
}
]
},
"direct": {
"enable": false
},
"webui": {
"url": "https://chat.example.com"
}
}
Notes
- This endpoint performs a complete configuration replacement. All existing configuration values will be overwritten.
- Partial updates are not supported. To update specific settings, retrieve the current configuration with GET /api/configs/export, modify the desired fields, and POST the complete object back.
- Configuration changes take effect immediately and may affect all users.
- It’s recommended to back up the current configuration before importing a new one.
- Some configuration changes may require a server restart to take full effect.