Models

List available models from the unified catalog.

List models

/v1/models

Returns available models for the authenticated tenant. Respects API key model allowlists.

Response

{
  "object": "list",
  "data": [
    {
      "id": "anthropic/claude-sonnet-5",
      "object": "model",
      "created": 1700000000,
      "owned_by": "anthropic"
    },
    {
      "id": "openai/gpt-4o",
      "object": "model",
      "created": 1700000000,
      "owned_by": "openai"
    }
  ]
}

Authentication

Requires API key: Authorization: Bearer br_live_...

Model naming convention

All models use the provider/model format. Examples:

Model IDProviderDescription
anthropic/claude-opus-5AnthropicMost capable Claude
anthropic/claude-sonnet-5AnthropicBalanced flagship
openai/gpt-5.6-solOpenAINewest GPT frontier
google/gemini-3.5-flashGoogleFast multimodal
x-ai/grok-4.6xAINewest Grok
deepseek/deepseek-v4-flashDeepSeekStrong value

The registered catalog is 40 models across 9 providers; GET /v1/models is always the live source of truth (circuit breakers may hide temporarily-unhealthy models).

Variants

Append a suffix for routing behavior:

  • anthropic/claude-sonnet-5:floor — cheapest endpoint
  • anthropic/claude-sonnet-5:fast — lowest latency
  • anthropic/claude-sonnet-5:best — highest quality
  • anthropic/claude-sonnet-5:smart — Thompson-sampled endpoint pick (leaderboard reward)

Presets

Use @preset/slug as the model name to reference a saved routing preset.

curl https://api.brainstormrouter.com/v1/models \
  -H "Authorization: Bearer br_live_..."

Model leaderboard

/v1/models/leaderboard

Returns model performance rankings powered by Thompson sampling reward scores. Data is aggregated from a 7-day rolling window of real traffic.

Query parameters

ParamTypeDefaultDescription
sortstringoverallSort dimension: overall, quality, speed, value, reliability
providerstringFilter to a specific provider (e.g., anthropic)
limitinteger100Max results (capped at 500)
offsetinteger0Pagination offset

Response

{
  "object": "list",
  "sort_by": "overall",
  "model_count": 40,
  "cached_at": "2026-02-26T12:00:00.000Z",
  "data": [
    {
      "id": "anthropic/claude-sonnet-5",
      "provider": "anthropic",
      "model_id": "claude-sonnet-5",
      "reward_score": 0.8523,
      "reward_variance": 0.0012,
      "validity": 0.9501,
      "quality": 0.91,
      "latency_ms": 520.3,
      "tokens_per_second": 85.2,
      "success_rate": 0.998,
      "pricing": { "input": 3, "output": 15 },
      "capabilities": ["streaming", "tools", "vision"],
      "sample_count": 12430,
      "days_active": 7,
      "error_rate": 0.002,
      "value_score": 284.1
    }
  ]
}

Sort dimensions

DimensionDescription
overallThompson sampling composite reward (latency + cost + quality + validity)
qualityTool-call accuracy (JSON validity 30% + schema compliance 40% + execution 30%)
speedLowest EWMA latency first
valueReward per dollar — best bang for buck
reliabilityHighest success rate first

SDK example

const leaderboard = await client.models.leaderboard({
  sort: "value",
  provider: "anthropic",
});

for (const model of leaderboard.data) {
  console.log(`${model.id}: reward=${model.reward_score} value=${model.value_score}`);
}
curl "https://api.brainstormrouter.com/v1/models/leaderboard?sort=overall&limit=10" \
  -H "Authorization: Bearer br_live_..."