Api

GET/v1/models

Auth: tenant — Status: stable

List the models arbiter knows how to route. Powers the frontend's model picker. The catalogue changes only when the operator deploys a new build — clients should cache it briefly and re-fetch on a fresh session.

Pricing is not included in the runtime response — it lives in the configured billing service's rate card. Frontends that need cost-per-token figures should fetch them from the billing service directly.

Request

No path params, no query params, no body.

curl -H "Authorization: Bearer atr_…" \
  http://arbiter.example.com/v1/models

Response

200 OK

{
  "count": 15,
  "models": [
    { "id": "claude-opus-4-7",          "provider": "anthropic" },
    { "id": "claude-sonnet-4-6",        "provider": "anthropic" },
    { "id": "openai/gpt-5.4",           "provider": "openai" },
    { "id": "gemini/gemini-2.5-pro",    "provider": "gemini" },
    { "id": "gemini/gemini-2.5-flash",  "provider": "gemini" }
  ]
}
FieldTypeDescription
idstringMatches what you pass in agent_def.model (or as the model on a stored agent).
providerstringanthropic, openai, gemini, or ollama.

Failure modes

StatusWhenBody
401Missing / invalid bearer; tenant disabled.{"error": "..."}

See also