model_id values in the model field of a WebSocket send_message / edit_message or REST turn submission to override the agent for that turn.
The top-level
default field is the platform provisioning default, not necessarily the model your agent runs. Use GET /v1/agents and read the selected agent’s model_id to show the effective no-override model. Unknown model IDs are silently ignored and fall back to the agent model, so populate and validate the picker from this response.string
required
Bearer token obtained from the authenticate endpoint.
Response
object[]
required
List of available model objects.
string
required
Platform-wide provisioning default. An existing agent’s own
model_id takes precedence when no per-turn override is supplied.curl -X GET https://api.trellis.sh/v1/models \
-H "Authorization: Bearer YOUR_TOKEN"
import requests
response = requests.get(
"https://api.trellis.sh/v1/models",
headers={"Authorization": "Bearer YOUR_TOKEN"}
)
data = response.json()
print(f"Default: {data['default']}")
for model in data["models"]:
print(f"{model['model_id']}: {model['display_name']} — {model['description']}")
const response = await fetch("https://api.trellis.sh/v1/models", {
headers: { Authorization: "Bearer YOUR_TOKEN" },
});
const { models, default: defaultModel } = await response.json();
models.forEach(({ model_id, display_name, description }) => {
console.log(`${model_id}: ${display_name} — ${description}`);
});
{
"models": [
{
"model_id": "claude-sonnet-5",
"display_name": "Sonnet 5",
"description": "Latest Sonnet. Stronger reasoning with the speed of the Sonnet tier."
},
{
"model_id": "claude-sonnet-4-6",
"display_name": "Sonnet 4.6",
"description": "Best overall balance of speed and intelligence. Great for most tasks."
},
{
"model_id": "claude-opus-4-7",
"display_name": "Opus 4.7",
"description": "Most capable Claude model. Best for complex analysis and reasoning."
},
{
"model_id": "claude-opus-4-8",
"display_name": "Opus 4.8",
"description": "Most capable Claude model. Used by the agent orchestrator."
},
{
"model_id": "claude-haiku-4-5",
"display_name": "Haiku 4.5",
"description": "Fastest responses. Good for simple questions and quick lookups."
},
{
"model_id": "gpt-5.5",
"display_name": "GPT-5.5",
"description": "Most capable OpenAI model. Excellent for complex analysis."
},
{
"model_id": "gpt-5.4-mini",
"display_name": "GPT-5.4 Mini",
"description": "Lightweight and fast. Good for straightforward queries."
},
{
"model_id": "gemini-3.1-pro",
"display_name": "Gemini 3.1 Pro",
"description": "Google's advanced model. Strong reasoning and analysis."
},
{
"model_id": "gemini-3-flash",
"display_name": "Gemini 3 Flash",
"description": "Ultra-fast responses. Best for quick, simple tasks."
}
],
"default": "claude-sonnet-4-6"
}