Set up the built-in assistant (owners only)
const url = 'http://127.0.0.1:8484/api/v1/settings/assistant';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"apiKey":"example","baseUrl":"example","enabled":true,"model":"example","price":{"input":"example","output":"example"},"provider":"anthropic"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://127.0.0.1:8484/api/v1/settings/assistant \ --header 'Content-Type: application/json' \ --data '{ "apiKey": "example", "baseUrl": "example", "enabled": true, "model": "example", "price": { "input": "example", "output": "example" }, "provider": "anthropic" }'Request Bodyrequired
Section titled “Request Bodyrequired”object
A URL to the JSON Schema for this object.
Leave empty to keep the saved key
Address of the endpoint, e.g. http://localhost:11434/v1 for Ollama; empty for the provider’s own API
On/off switch; on when omitted
Model id; required for openai, optional for anthropic
The price of the model, to estimate costs; both empty forgets it. Omit to keep it
object
US dollars per million input tokens, e.g. 4 or 0.10
US dollars per million output tokens, e.g. 20 or 0.50
Anthropic for Claude; openai for any OpenAI-compatible endpoint (OpenAI, OpenRouter, Ollama, LM Studio…)
Responses
Section titled “Responses”OK
object
A URL to the JSON Schema for this object.
A provider, and what it needs, is set
The model used with Anthropic when none is given
The assistant answers: it is configured and switched on
An API key is saved; it is never returned
Fields set by environment variables on the server, not editable here: provider, apiKey, model, baseUrl
What the assistant was asked this month
object
Estimated cost in US dollars of the entries whose price is known
E.g. 2026-11, in the household’s time zone
Questions and imports read by a model
Entries whose model has no price: their tokens count, their cost does not
The on/off switch, whatever the configuration
The price used to estimate the cost of the current model; absent when it is not known
object
US dollars per million input tokens, e.g. 4 or 0.10
US dollars per million output tokens, e.g. 20 or 0.50
Where the price comes from: Exhale’s table, the owner, or nowhere (tokens only)
Example
{ "$schema": "https://example.com/api/schemas/AssistantStatus.json", "priceSource": "default", "provider": "anthropic"}default
Section titled “default”Error
object
A URL to the JSON Schema for this object.
A human-readable explanation specific to this occurrence of the problem.
Optional list of individual error details
object
Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’
Error message text
The value at the given location
A URI reference that identifies the specific occurrence of the problem.
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference to human-readable documentation for the error.
Example
{ "$schema": "https://example.com/api/schemas/ErrorModel.json", "detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "about:blank"}