updateAiSettings
# updateAiSettings
PATCH
/settings/ai
const url = 'http://localhost:8080/api/v1/settings/ai';const options = { method: 'PATCH', headers: {cookie: 'hs_session=<hs_session>', 'Content-Type': 'application/json'}, body: '{"provider":"openrouter","apiKey":"example","model":"example","fallbackModels":["example"],"extractEnabled":true,"summariesEnabled":true,"maxImagesPerRequest":1,"concurrency":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url http://localhost:8080/api/v1/settings/ai \ --header 'Content-Type: application/json' \ --cookie hs_session=<hs_session> \ --data '{ "provider": "openrouter", "apiKey": "example", "model": "example", "fallbackModels": [ "example" ], "extractEnabled": true, "summariesEnabled": true, "maxImagesPerRequest": 1, "concurrency": 1 }'Coming in 1.0. Defined in the contract, not implemented on main yet (task S-17); the server answers 501 with code not_implemented.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
provider
string
apiKey
Null removes the key.
string | null
model
string
fallbackModels
Array<string>
extractEnabled
boolean
summariesEnabled
boolean
maxImagesPerRequest
integer
concurrency
integer
Responses
Section titled “Responses”Updated. A new key is verified with OpenRouter before saving.
Media typeapplication/json
object
provider
required
string
apiKeySet
required
boolean
model
required
string
fallbackModels
required
Array<string>
dataCollection
required
OpenRouter provider routing; fixed in v1.
string
extractEnabled
required
boolean
summariesEnabled
required
boolean
maxImagesPerRequest
required
integer
concurrency
required
integer
spentUsdThisMonth
required
From OpenRouter usage accounting; informational only.
number
promptOverrides
required
Prompt files found in /data/prompts (names only).
Array<string>
Examples
Exampleseed
Derived from fixtures/seed.json.
{ "apiKeySet": true, "concurrency": 2, "dataCollection": "deny", "extractEnabled": true, "fallbackModels": [], "maxImagesPerRequest": 40, "model": "xiaomi/mimo-v2.6-pro", "promptOverrides": [], "provider": "openrouter", "spentUsdThisMonth": 3.42, "summariesEnabled": true}Invalid request.
Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
code
required
string
i18nKey
string
detail
string
fields
Array<object>
object
path
required
string
code
required
string
i18nKey
string
Example generated
{ "type": "https://example.com", "title": "example", "status": 1, "code": "example", "i18nKey": "example", "detail": "example", "fields": [ { "path": "example", "code": "example", "i18nKey": "example" } ]}A remote server did not answer.
Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
code
required
string
i18nKey
string
detail
string
fields
Array<object>
object
path
required
string
code
required
string
i18nKey
string
Example generated
{ "type": "https://example.com", "title": "example", "status": 1, "code": "example", "i18nKey": "example", "detail": "example", "fields": [ { "path": "example", "code": "example", "i18nKey": "example" } ]}