[
  {
    "id": "claude-opus-4-6",
    "provider": "anthropic",
    "family": "claude-4",
    "display_name": "Claude Opus 4.6",
    "limits": { "context_window": 1000000, "max_output": 128000 },
    "training": "2025-08-01",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 15.0,
      "output_cost_per_mtok": 75.0,
      "cache_input_cost_per_mtok": 1.50
    },
    "estimated_output_tps": 25,
    "aliases": ["opus", "claude-opus"],
    "default": true
  },
  {
    "id": "claude-sonnet-4-5",
    "provider": "anthropic",
    "family": "claude-4",
    "display_name": "Claude Sonnet 4.5",
    "limits": { "context_window": 200000, "max_output": 64000 },
    "training": "2025-08-01",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 3.0,
      "output_cost_per_mtok": 15.0,
      "cache_input_cost_per_mtok": 0.30
    },
    "estimated_output_tps": 50,
    "aliases": []
  },
  {
    "id": "claude-sonnet-4-6",
    "provider": "anthropic",
    "family": "claude-4",
    "display_name": "Claude Sonnet 4.6",
    "limits": { "context_window": 200000, "max_output": 64000 },
    "training": "2025-08-01",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 3.0,
      "output_cost_per_mtok": 15.0,
      "cache_input_cost_per_mtok": 0.30
    },
    "estimated_output_tps": 50,
    "aliases": ["sonnet", "claude-sonnet"]
  },
  {
    "id": "claude-haiku-4-5",
    "provider": "anthropic",
    "family": "claude-4",
    "display_name": "Claude Haiku 4.5",
    "limits": { "context_window": 200000, "max_output": 8192 },
    "training": "2025-08-01",
    "features": { "tools": true, "vision": true, "reasoning": false },
    "costs": {
      "input_cost_per_mtok": 0.8,
      "output_cost_per_mtok": 4.0,
      "cache_input_cost_per_mtok": 0.08
    },
    "estimated_output_tps": 100,
    "aliases": ["haiku", "claude-haiku"]
  },
  {
    "id": "gpt-5.2",
    "provider": "openai",
    "family": "gpt-5",
    "display_name": "GPT-5.2",
    "limits": { "context_window": 1047576, "max_output": 128000 },
    "training": "2025-08-31",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 1.75,
      "output_cost_per_mtok": 14.0,
      "cache_input_cost_per_mtok": 0.175
    },
    "estimated_output_tps": 65,
    "aliases": ["gpt5"]
  },
  {
    "id": "gpt-5-mini",
    "provider": "openai",
    "family": "gpt-5",
    "display_name": "GPT-5 Mini",
    "limits": { "context_window": 1047576, "max_output": 128000 },
    "training": "2025-08-31",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 0.25,
      "output_cost_per_mtok": 2.0,
      "cache_input_cost_per_mtok": 0.025
    },
    "estimated_output_tps": 70,
    "aliases": ["gpt5-mini"]
  },
  {
    "id": "gpt-5.2-codex",
    "provider": "openai",
    "family": "gpt-5",
    "display_name": "GPT-5.2 Codex",
    "limits": { "context_window": 1047576, "max_output": 128000 },
    "training": "2025-08-31",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 1.75,
      "output_cost_per_mtok": 14.0,
      "cache_input_cost_per_mtok": 0.175
    },
    "estimated_output_tps": 100,
    "aliases": []
  },
  {
    "id": "gpt-5.3-codex",
    "provider": "openai",
    "family": "gpt-5",
    "display_name": "GPT-5.3 Codex",
    "limits": { "context_window": 1047576, "max_output": 128000 },
    "training": "2025-08-31",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 1.75,
      "output_cost_per_mtok": 14.0,
      "cache_input_cost_per_mtok": 0.175
    },
    "estimated_output_tps": 100,
    "aliases": ["codex"]
  },
  {
    "id": "gpt-5.3-codex-spark",
    "provider": "openai",
    "family": "gpt-5",
    "display_name": "GPT-5.3 Codex Spark",
    "limits": { "context_window": 131072, "max_output": 128000 },
    "training": "2025-08-31",
    "features": { "tools": true, "vision": false, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": null,
      "output_cost_per_mtok": null,
      "cache_input_cost_per_mtok": null
    },
    "estimated_output_tps": 1000,
    "aliases": ["codex-spark"]
  },
  {
    "id": "gpt-5.4",
    "provider": "openai",
    "family": "gpt-5",
    "display_name": "GPT-5.4",
    "limits": { "context_window": 1047576, "max_output": 128000 },
    "training": "2025-08-31",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 2.5,
      "output_cost_per_mtok": 15.0,
      "cache_input_cost_per_mtok": 0.25
    },
    "estimated_output_tps": 70,
    "aliases": ["gpt54"],
    "default": true
  },
  {
    "id": "gpt-5.4-pro",
    "provider": "openai",
    "family": "gpt-5",
    "display_name": "GPT-5.4 Pro",
    "limits": { "context_window": 1047576, "max_output": 128000 },
    "training": "2025-08-31",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 30.0,
      "output_cost_per_mtok": 180.0,
      "cache_input_cost_per_mtok": 3.0
    },
    "estimated_output_tps": 20,
    "aliases": ["gpt54-pro"]
  },
  {
    "id": "gemini-3.1-pro-preview",
    "provider": "gemini",
    "family": "gemini-3",
    "display_name": "Gemini 3.1 Pro (Preview)",
    "limits": { "context_window": 1048576, "max_output": 65536 },
    "training": "2025-01-01",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 2.0,
      "output_cost_per_mtok": 12.0,
      "cache_input_cost_per_mtok": 0.50
    },
    "estimated_output_tps": 85,
    "aliases": ["gemini-pro"],
    "default": true
  },
  {
    "id": "gemini-3.1-pro-preview-customtools",
    "provider": "gemini",
    "family": "gemini-3",
    "display_name": "Gemini 3.1 Pro Custom Tools (Preview)",
    "limits": { "context_window": 1048576, "max_output": 65536 },
    "training": "2025-01-01",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 2.0,
      "output_cost_per_mtok": 12.0,
      "cache_input_cost_per_mtok": 0.50
    },
    "estimated_output_tps": 85,
    "aliases": ["gemini-customtools"]
  },
  {
    "id": "gemini-3-flash-preview",
    "provider": "gemini",
    "family": "gemini-3",
    "display_name": "Gemini 3 Flash (Preview)",
    "limits": { "context_window": 1048576, "max_output": 65536 },
    "training": "2025-01-01",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 0.5,
      "output_cost_per_mtok": 3.0,
      "cache_input_cost_per_mtok": 0.125
    },
    "estimated_output_tps": 150,
    "aliases": ["gemini-flash"]
  },
  {
    "id": "gemini-3.1-flash-lite-preview",
    "provider": "gemini",
    "family": "gemini-3",
    "display_name": "Gemini 3.1 Flash Lite (Preview)",
    "limits": { "context_window": 1048576, "max_output": 65536 },
    "training": "2025-01-01",
    "features": { "tools": true, "vision": true, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 0.25,
      "output_cost_per_mtok": 1.5,
      "cache_input_cost_per_mtok": 0.0625
    },
    "estimated_output_tps": 200,
    "aliases": ["gemini-flash-lite"]
  },
  {
    "id": "kimi-k2.5",
    "provider": "kimi",
    "family": "kimi-k2",
    "display_name": "Kimi K2.5",
    "limits": { "context_window": 262144, "max_output": 16000 },
    "training": "2025-10-01",
    "features": { "tools": true, "vision": true, "reasoning": false },
    "costs": {
      "input_cost_per_mtok": 0.6,
      "output_cost_per_mtok": 3.0,
      "cache_input_cost_per_mtok": null
    },
    "estimated_output_tps": 50,
    "aliases": ["kimi"],
    "default": true
  },
  {
    "id": "glm-4.7",
    "provider": "zai",
    "family": "glm-4",
    "display_name": "GLM 4.7",
    "limits": { "context_window": 202752, "max_output": 16384 },
    "training": null,
    "features": { "tools": true, "vision": false, "reasoning": false },
    "costs": {
      "input_cost_per_mtok": 0.6,
      "output_cost_per_mtok": 2.2,
      "cache_input_cost_per_mtok": null
    },
    "estimated_output_tps": 100,
    "aliases": ["glm", "glm4"],
    "default": true
  },
  {
    "id": "minimax-m2.5",
    "provider": "minimax",
    "family": "minimax-m2",
    "display_name": "Minimax M2.5",
    "limits": { "context_window": 196608, "max_output": 16384 },
    "training": null,
    "features": { "tools": true, "vision": false, "reasoning": false },
    "costs": {
      "input_cost_per_mtok": 0.3,
      "output_cost_per_mtok": 1.2,
      "cache_input_cost_per_mtok": null
    },
    "estimated_output_tps": 45,
    "aliases": ["minimax"],
    "default": true
  },
  {
    "id": "mercury-2",
    "provider": "inception",
    "family": "mercury",
    "display_name": "Mercury 2",
    "limits": { "context_window": 131072, "max_output": 50000 },
    "training": null,
    "features": { "tools": true, "vision": false, "reasoning": true },
    "costs": {
      "input_cost_per_mtok": 0.25,
      "output_cost_per_mtok": 0.75,
      "cache_input_cost_per_mtok": null
    },
    "estimated_output_tps": 1000,
    "aliases": ["mercury"],
    "default": true
  }
]
