Models
List the models that /chat accepts.
/api/v1/modelsReturns the models that /chat and /chat/stream accept as model. No parameters.
Response
{
"count": 9,
"default": "deepseek-v4-flash",
"groups": ["OpenAI", "DeepSeek", "Local"],
"models": [
{
"id": "gpt-5.6-sol",
"name": "GPT-5.6 Sol",
"description": "Flagship for complex work — reasons hard, uses every tool.",
"group": "OpenAI",
"runtime": "openai",
"reasoning_effort": "high",
"gated": false
},
{
"id": "gpt-5.6-cyber",
"name": "GPT-5.6 Cyber",
"description": "Security model for authorised vulnerability research.",
"group": "OpenAI",
"runtime": "openai",
"reasoning_effort": "high",
"gated": true
},
{
"id": "deepseek-v4-flash",
"name": "DeepSeek V4 Flash",
"description": "Fast and inexpensive — the default for chat.",
"group": "DeepSeek",
"runtime": "hosted",
"reasoning_effort": null,
"gated": false
},
{
"id": "qwen3",
"name": "qwen3:8b",
"description": "Runs locally through Ollama — nothing leaves the machine.",
"group": "Local",
"runtime": "local",
"reasoning_effort": null,
"gated": false
}
]
}Fields
countintegerNumber of models in the list.
defaultstringThe id /chat uses when no model is given (deepseek-v4-flash).
models[].idstringExactly the value you send as model in the /chat body. Short and stable — a local model is addressed by its short name, not by its full Ollama tag. An unknown id gets a 422 that lists the known ones.
models[].namestringDisplay name for the model picker in the frontend.
models[].descriptionstringShort description shown next to the name.
groupsstring[]The provider headings, in the order the picker should show them. Derived from the catalogue, so a new provider appears here on its own.
models[].groupstringWhich heading this model belongs under — OpenAI, DeepSeek or Local.
models[].runtimestringWhere it runs: openai (Responses API), hosted (the provider from LLM_PROVIDER) or local (Ollama). local is the one where nothing leaves the machine.
models[].reasoning_effortstring | nullHow hard the model thinks before answering — none, low, medium, high, xhigh or max. Only set for the OpenAI models; null everywhere else.
models[].gatedbooleantrue when OpenAI has to approve your account for this model first. It stays in the list — the key is there, only the approval is missing — but a request will come back with 'model does not exist' until it is granted.
The list is filtered to what can actually run: without OPENAI_API_KEY the whole OpenAI group is gone, and the Local one only appears when Ollama is enabled (OLLAMA_ENABLED=true), a model is named (OLLAMA_MODEL) and that Ollama is reachable. The local entry's id and tag come straight from OLLAMA_MODEL, so pick a model that can think and call tools. A model that is offered here will not fail on the key.
Using it with /chat
Take an id from this list and send it as model in the chat request.
{ "messages": [{ "role": "user", "content": "Hi" }], "model": "deepseek-v4-pro" }200List retrieved successfully.