use crate::types::base_types::{
MessageType, ModelAPI, ModelProviderDescriptor, ModelProviders, ModelUsageCosting,
};
pub static MODELS: &[ModelProviderDescriptor] = &[
ModelProviderDescriptor {
id: "ai21/jamba-large-1.7",
name: "AI21: Jamba Large 1.7",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 2.0,
output: 8.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 256_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "alibaba/tongyi-deepresearch-30b-a3b",
name: "Tongyi DeepResearch 30B A3B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.09,
output: 0.449_999_999_999_999_96,
cache_read: 0.09,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "allenai/olmo-3.1-32b-instruct",
name: "AllenAI: Olmo 3.1 32B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.199_999_999_999_999_98,
output: 0.6,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 65_536,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "amazon/nova-2-lite-v1",
name: "Amazon: Nova 2 Lite",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.3,
output: 2.5,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 1_000_000,
max_tokens: 65_535,
},
ModelProviderDescriptor {
id: "amazon/nova-lite-v1",
name: "Amazon: Nova Lite 1.0",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.06,
output: 0.24,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 300_000,
max_tokens: 5120,
},
ModelProviderDescriptor {
id: "amazon/nova-micro-v1",
name: "Amazon: Nova Micro 1.0",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.035,
output: 0.14,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 5120,
},
ModelProviderDescriptor {
id: "amazon/nova-premier-v1",
name: "Amazon: Nova Premier 1.0",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.5,
output: 12.5,
cache_read: 0.625,
cache_write: 0.0,
},
context_window: 1_000_000,
max_tokens: 32_000,
},
ModelProviderDescriptor {
id: "amazon/nova-pro-v1",
name: "Amazon: Nova Pro 1.0",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.799_999_999_999_999_9,
output: 3.199_999_999_999_999_7,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 300_000,
max_tokens: 5120,
},
ModelProviderDescriptor {
id: "anthropic/claude-3-haiku",
name: "Anthropic: Claude 3 Haiku",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.25,
output: 1.25,
cache_read: 0.03,
cache_write: 0.3,
},
context_window: 200_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "anthropic/claude-3.5-haiku",
name: "Anthropic: Claude 3.5 Haiku",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.799_999_999_999_999_9,
output: 4.0,
cache_read: 0.08,
cache_write: 1.0,
},
context_window: 200_000,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "anthropic/claude-3.7-sonnet",
name: "Anthropic: Claude 3.7 Sonnet",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 3.0,
output: 15.0,
cache_read: 0.3,
cache_write: 3.75,
},
context_window: 200_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-3.7-sonnet:thinking",
name: "Anthropic: Claude 3.7 Sonnet (thinking)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 3.0,
output: 15.0,
cache_read: 0.3,
cache_write: 3.75,
},
context_window: 200_000,
max_tokens: 64_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-haiku-4.5",
name: "Anthropic: Claude Haiku 4.5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.0,
output: 5.0,
cache_read: 0.099_999_999_999_999_99,
cache_write: 1.25,
},
context_window: 200_000,
max_tokens: 64_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-opus-4",
name: "Anthropic: Claude Opus 4",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 15.0,
output: 75.0,
cache_read: 1.5,
cache_write: 18.75,
},
context_window: 200_000,
max_tokens: 32_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-opus-4.1",
name: "Anthropic: Claude Opus 4.1",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 15.0,
output: 75.0,
cache_read: 1.5,
cache_write: 18.75,
},
context_window: 200_000,
max_tokens: 32_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-opus-4.5",
name: "Anthropic: Claude Opus 4.5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 5.0,
output: 25.0,
cache_read: 0.5,
cache_write: 6.25,
},
context_window: 200_000,
max_tokens: 64_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-opus-4.6",
name: "Anthropic: Claude Opus 4.6",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 5.0,
output: 25.0,
cache_read: 0.5,
cache_write: 6.25,
},
context_window: 1_000_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-opus-4.6-fast",
name: "Anthropic: Claude Opus 4.6 (Fast)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 30.0,
output: 150.0,
cache_read: 3.0,
cache_write: 37.5,
},
context_window: 1_000_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-opus-4.7",
name: "Anthropic: Claude Opus 4.7",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 5.0,
output: 25.0,
cache_read: 0.5,
cache_write: 6.25,
},
context_window: 1_000_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-sonnet-4",
name: "Anthropic: Claude Sonnet 4",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 3.0,
output: 15.0,
cache_read: 0.3,
cache_write: 3.75,
},
context_window: 1_000_000,
max_tokens: 64_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-sonnet-4.5",
name: "Anthropic: Claude Sonnet 4.5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 3.0,
output: 15.0,
cache_read: 0.3,
cache_write: 3.75,
},
context_window: 1_000_000,
max_tokens: 64_000,
},
ModelProviderDescriptor {
id: "anthropic/claude-sonnet-4.6",
name: "Anthropic: Claude Sonnet 4.6",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 3.0,
output: 15.0,
cache_read: 0.3,
cache_write: 3.75,
},
context_window: 1_000_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "arcee-ai/trinity-large-preview",
name: "Arcee AI: Trinity Large Preview",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.15,
output: 0.449_999_999_999_999_96,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "arcee-ai/trinity-large-thinking",
name: "Arcee AI: Trinity Large Thinking",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.22,
output: 0.85,
cache_read: 0.06,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 262_144,
},
ModelProviderDescriptor {
id: "arcee-ai/trinity-mini",
name: "Arcee AI: Trinity Mini",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.045,
output: 0.15,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "arcee-ai/virtuoso-large",
name: "Arcee AI: Virtuoso Large",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.75,
output: 1.2,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 64_000,
},
ModelProviderDescriptor {
id: "auto",
name: "Auto",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 2_000_000,
max_tokens: 30_000,
},
ModelProviderDescriptor {
id: "baidu/ernie-4.5-21b-a3b",
name: "Baidu: ERNIE 4.5 21B A3B",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.07,
output: 0.28,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 120_000,
max_tokens: 8000,
},
ModelProviderDescriptor {
id: "baidu/ernie-4.5-vl-28b-a3b",
name: "Baidu: ERNIE 4.5 VL 28B A3B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.14,
output: 0.56,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 30_000,
max_tokens: 8000,
},
ModelProviderDescriptor {
id: "bytedance-seed/seed-1.6",
name: "ByteDance Seed: Seed 1.6",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.25,
output: 2.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "bytedance-seed/seed-1.6-flash",
name: "ByteDance Seed: Seed 1.6 Flash",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.075,
output: 0.3,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "bytedance-seed/seed-2.0-lite",
name: "ByteDance Seed: Seed-2.0-Lite",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.25,
output: 2.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "bytedance-seed/seed-2.0-mini",
name: "ByteDance Seed: Seed-2.0-Mini",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.399_999_999_999_999_97,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "cohere/command-r-08-2024",
name: "Cohere: Command R (08-2024)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.15,
output: 0.6,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 4000,
},
ModelProviderDescriptor {
id: "cohere/command-r-plus-08-2024",
name: "Cohere: Command R+ (08-2024)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 2.5,
output: 10.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 4000,
},
ModelProviderDescriptor {
id: "deepseek/deepseek-chat",
name: "DeepSeek: DeepSeek V3",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.32,
output: 0.889_999_999_999_999_9,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 163_840,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "deepseek/deepseek-chat-v3-0324",
name: "DeepSeek: DeepSeek V3 0324",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.199_999_999_999_999_98,
output: 0.77,
cache_read: 0.135,
cache_write: 0.0,
},
context_window: 163_840,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "deepseek/deepseek-chat-v3.1",
name: "DeepSeek: DeepSeek V3.1",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.15,
output: 0.75,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 32_768,
max_tokens: 7168,
},
ModelProviderDescriptor {
id: "deepseek/deepseek-r1",
name: "DeepSeek: R1",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.7,
output: 2.5,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 64_000,
max_tokens: 16_000,
},
ModelProviderDescriptor {
id: "deepseek/deepseek-r1-0528",
name: "DeepSeek: R1 0528",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.5,
output: 2.150_000_000_000_000_4,
cache_read: 0.35,
cache_write: 0.0,
},
context_window: 163_840,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "deepseek/deepseek-v3.1-terminus",
name: "DeepSeek: DeepSeek V3.1 Terminus",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.21,
output: 0.789_999_999_999_999_9,
cache_read: 0.13,
cache_write: 0.0,
},
context_window: 163_840,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "deepseek/deepseek-v3.2",
name: "DeepSeek: DeepSeek V3.2",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.252,
output: 0.378,
cache_read: 0.0252,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "deepseek/deepseek-v3.2-exp",
name: "DeepSeek: DeepSeek V3.2 Exp",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.27,
output: 0.41,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 163_840,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "deepseek/deepseek-v4-flash",
name: "DeepSeek: DeepSeek V4 Flash",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.14,
output: 0.28,
cache_read: 0.0028,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 384_000,
},
ModelProviderDescriptor {
id: "deepseek/deepseek-v4-pro",
name: "DeepSeek: DeepSeek V4 Pro",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.435,
output: 0.87,
cache_read: 0.003_625,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 384_000,
},
ModelProviderDescriptor {
id: "essentialai/rnj-1-instruct",
name: "EssentialAI: Rnj 1 Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.15,
output: 0.15,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 32_768,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "google/gemini-2.0-flash-001",
name: "Google: Gemini 2.0 Flash",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.399_999_999_999_999_97,
cache_read: 0.024_999_999_999_999_998,
cache_write: 0.083_333_333_333_333_34,
},
context_window: 1_000_000,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "google/gemini-2.0-flash-lite-001",
name: "Google: Gemini 2.0 Flash Lite",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.075,
output: 0.3,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "google/gemini-2.5-flash",
name: "Google: Gemini 2.5 Flash",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.3,
output: 2.5,
cache_read: 0.03,
cache_write: 0.083_333_333_333_333_34,
},
context_window: 1_048_576,
max_tokens: 65_535,
},
ModelProviderDescriptor {
id: "google/gemini-2.5-flash-lite",
name: "Google: Gemini 2.5 Flash Lite",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.399_999_999_999_999_97,
cache_read: 0.01,
cache_write: 0.083_333_333_333_333_34,
},
context_window: 1_048_576,
max_tokens: 65_535,
},
ModelProviderDescriptor {
id: "google/gemini-2.5-flash-lite-preview-09-2025",
name: "Google: Gemini 2.5 Flash Lite Preview 09-2025",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.399_999_999_999_999_97,
cache_read: 0.01,
cache_write: 0.083_333_333_333_333_34,
},
context_window: 1_048_576,
max_tokens: 65_535,
},
ModelProviderDescriptor {
id: "google/gemini-2.5-pro",
name: "Google: Gemini 2.5 Pro",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.375,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "google/gemini-2.5-pro-preview",
name: "Google: Gemini 2.5 Pro Preview 06-05",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.375,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "google/gemini-2.5-pro-preview-05-06",
name: "Google: Gemini 2.5 Pro Preview 05-06",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.375,
},
context_window: 1_048_576,
max_tokens: 65_535,
},
ModelProviderDescriptor {
id: "google/gemini-3-flash-preview",
name: "Google: Gemini 3 Flash Preview",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.5,
output: 3.0,
cache_read: 0.049_999_999_999_999_996,
cache_write: 0.083_333_333_333_333_34,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "google/gemini-3.1-flash-lite-preview",
name: "Google: Gemini 3.1 Flash Lite Preview",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.25,
output: 1.5,
cache_read: 0.024_999_999_999_999_998,
cache_write: 0.083_333_333_333_333_34,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "google/gemini-3.1-pro-preview",
name: "Google: Gemini 3.1 Pro Preview",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.0,
output: 12.0,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.375,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "google/gemini-3.1-pro-preview-customtools",
name: "Google: Gemini 3.1 Pro Preview Custom Tools",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.0,
output: 12.0,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.375,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "google/gemma-3-12b-it",
name: "Google: Gemma 3 12B",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.04,
output: 0.13,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "google/gemma-3-27b-it",
name: "Google: Gemma 3 27B",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.08,
output: 0.16,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "google/gemma-4-26b-a4b-it",
name: "Google: Gemma 4 26B A4B ",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.06,
output: 0.33,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "google/gemma-4-26b-a4b-it:free",
name: "Google: Gemma 4 26B A4B (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "google/gemma-4-31b-it",
name: "Google: Gemma 4 31B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.13,
output: 0.38,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "google/gemma-4-31b-it:free",
name: "Google: Gemma 4 31B (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "ibm-granite/granite-4.1-8b",
name: "IBM: Granite 4.1 8B",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.049_999_999_999_999_996,
output: 0.099_999_999_999_999_99,
cache_read: 0.049_999_999_999_999_996,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "inception/mercury-2",
name: "Inception: Mercury 2",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.25,
output: 0.75,
cache_read: 0.024_999_999_999_999_998,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 50_000,
},
ModelProviderDescriptor {
id: "inclusionai/ling-2.6-1t:free",
name: "inclusionAI: Ling-2.6-1T (free)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "inclusionai/ling-2.6-flash",
name: "inclusionAI: Ling-2.6-flash",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.08,
output: 0.24,
cache_read: 0.016,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "kwaipilot/kat-coder-pro-v2",
name: "Kwaipilot: KAT-Coder-Pro V2",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.3,
output: 1.2,
cache_read: 0.06,
cache_write: 0.0,
},
context_window: 256_000,
max_tokens: 80_000,
},
ModelProviderDescriptor {
id: "meta-llama/llama-3-8b-instruct",
name: "Meta: Llama 3 8B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.03,
output: 0.04,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 8192,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "meta-llama/llama-3.1-70b-instruct",
name: "Meta: Llama 3.1 70B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 0.399_999_999_999_999_97,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "meta-llama/llama-3.1-8b-instruct",
name: "Meta: Llama 3.1 8B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.02,
output: 0.049_999_999_999_999_996,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 16_384,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "meta-llama/llama-3.3-70b-instruct",
name: "Meta: Llama 3.3 70B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.32,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "meta-llama/llama-3.3-70b-instruct:free",
name: "Meta: Llama 3.3 70B Instruct (free)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 65_536,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "meta-llama/llama-4-scout",
name: "Meta: Llama 4 Scout",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.08,
output: 0.3,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 327_680,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "minimax/minimax-m1",
name: "MiniMax: MiniMax M1",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 2.2,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 1_000_000,
max_tokens: 40_000,
},
ModelProviderDescriptor {
id: "minimax/minimax-m2",
name: "MiniMax: MiniMax M2",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.255,
output: 1.0,
cache_read: 0.03,
cache_write: 0.0,
},
context_window: 196_608,
max_tokens: 196_608,
},
ModelProviderDescriptor {
id: "minimax/minimax-m2.1",
name: "MiniMax: MiniMax M2.1",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.29,
output: 0.95,
cache_read: 0.03,
cache_write: 0.0,
},
context_window: 196_608,
max_tokens: 196_608,
},
ModelProviderDescriptor {
id: "minimax/minimax-m2.5",
name: "MiniMax: MiniMax M2.5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.15,
output: 1.15,
cache_read: 0.03,
cache_write: 0.0,
},
context_window: 196_608,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "minimax/minimax-m2.5:free",
name: "MiniMax: MiniMax M2.5 (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 196_608,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "minimax/minimax-m2.7",
name: "MiniMax: MiniMax M2.7",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.3,
output: 1.2,
cache_read: 0.059,
cache_write: 0.0,
},
context_window: 196_608,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/codestral-2508",
name: "Mistral: Codestral 2508",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.3,
output: 0.899_999_999_999_999_9,
cache_read: 0.03,
cache_write: 0.0,
},
context_window: 256_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/devstral-2512",
name: "Mistral: Devstral 2 2512",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 2.0,
cache_read: 0.04,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/devstral-medium",
name: "Mistral: Devstral Medium",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 2.0,
cache_read: 0.04,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/devstral-small",
name: "Mistral: Devstral Small 1.1",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.3,
cache_read: 0.01,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/ministral-14b-2512",
name: "Mistral: Ministral 3 14B 2512",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.199_999_999_999_999_98,
output: 0.199_999_999_999_999_98,
cache_read: 0.02,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/ministral-3b-2512",
name: "Mistral: Ministral 3 3B 2512",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.099_999_999_999_999_99,
cache_read: 0.01,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/ministral-8b-2512",
name: "Mistral: Ministral 3 8B 2512",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.15,
output: 0.15,
cache_read: 0.015,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mistral-large",
name: "Mistral Large",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 2.0,
output: 6.0,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mistral-large-2407",
name: "Mistral Large 2407",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 2.0,
output: 6.0,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mistral-large-2411",
name: "Mistral Large 2411",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 2.0,
output: 6.0,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mistral-large-2512",
name: "Mistral: Mistral Large 3 2512",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.5,
output: 1.5,
cache_read: 0.049_999_999_999_999_996,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mistral-medium-3",
name: "Mistral: Mistral Medium 3",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 2.0,
cache_read: 0.04,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mistral-medium-3.1",
name: "Mistral: Mistral Medium 3.1",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 2.0,
cache_read: 0.04,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mistral-nemo",
name: "Mistral: Mistral Nemo",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.02,
output: 0.03,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mistral-saba",
name: "Mistral: Saba",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.199_999_999_999_999_98,
output: 0.6,
cache_read: 0.02,
cache_write: 0.0,
},
context_window: 32_768,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mistral-small-2603",
name: "Mistral: Mistral Small 4",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.15,
output: 0.6,
cache_read: 0.015,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mistral-small-3.2-24b-instruct",
name: "Mistral: Mistral Small 3.2 24B",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.075,
output: 0.199_999_999_999_999_98,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "mistralai/mixtral-8x22b-instruct",
name: "Mistral: Mixtral 8x22B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 2.0,
output: 6.0,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.0,
},
context_window: 65_536,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/mixtral-8x7b-instruct",
name: "Mistral: Mixtral 8x7B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.54,
output: 0.54,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 32_768,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "mistralai/pixtral-large-2411",
name: "Mistral: Pixtral Large 2411",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.0,
output: 6.0,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "mistralai/voxtral-small-24b-2507",
name: "Mistral: Voxtral Small 24B 2507",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.3,
cache_read: 0.01,
cache_write: 0.0,
},
context_window: 32_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "moonshotai/kimi-k2",
name: "MoonshotAI: Kimi K2 0711",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.570_000_000_000_000_1,
output: 2.3,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "moonshotai/kimi-k2-0905",
name: "MoonshotAI: Kimi K2 0905",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 2.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 262_144,
},
ModelProviderDescriptor {
id: "moonshotai/kimi-k2-thinking",
name: "MoonshotAI: Kimi K2 Thinking",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.6,
output: 2.5,
cache_read: 0.15,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 262_144,
},
ModelProviderDescriptor {
id: "moonshotai/kimi-k2.5",
name: "MoonshotAI: Kimi K2.5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.44,
output: 2.0,
cache_read: 0.22,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 65_535,
},
ModelProviderDescriptor {
id: "moonshotai/kimi-k2.6",
name: "MoonshotAI: Kimi K2.6",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.74,
output: 3.49,
cache_read: 0.14,
cache_write: 0.0,
},
context_window: 262_142,
max_tokens: 262_142,
},
ModelProviderDescriptor {
id: "nex-agi/deepseek-v3.1-nex-n1",
name: "Nex AGI: DeepSeek V3.1 Nex N1",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.135,
output: 0.5,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 163_840,
},
ModelProviderDescriptor {
id: "nvidia/llama-3.1-nemotron-70b-instruct",
name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.2,
output: 1.2,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "nvidia/llama-3.3-nemotron-super-49b-v1.5",
name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.399_999_999_999_999_97,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "nvidia/nemotron-3-nano-30b-a3b",
name: "NVIDIA: Nemotron 3 Nano 30B A3B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.049_999_999_999_999_996,
output: 0.199_999_999_999_999_98,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 228_000,
},
ModelProviderDescriptor {
id: "nvidia/nemotron-3-nano-30b-a3b:free",
name: "NVIDIA: Nemotron 3 Nano 30B A3B (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 256_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",
name: "NVIDIA: Nemotron 3 Nano Omni (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 256_000,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "nvidia/nemotron-3-super-120b-a12b",
name: "NVIDIA: Nemotron 3 Super",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.09,
output: 0.449_999_999_999_999_96,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "nvidia/nemotron-3-super-120b-a12b:free",
name: "NVIDIA: Nemotron 3 Super (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 262_144,
},
ModelProviderDescriptor {
id: "nvidia/nemotron-nano-12b-v2-vl:free",
name: "NVIDIA: Nemotron Nano 12B 2 VL (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "nvidia/nemotron-nano-9b-v2",
name: "NVIDIA: Nemotron Nano 9B V2",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.04,
output: 0.16,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "nvidia/nemotron-nano-9b-v2:free",
name: "NVIDIA: Nemotron Nano 9B V2 (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-3.5-turbo",
name: "OpenAI: GPT-3.5 Turbo",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.5,
output: 1.5,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 16_385,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-3.5-turbo-0613",
name: "OpenAI: GPT-3.5 Turbo (older v0613)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.0,
output: 2.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 4095,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-3.5-turbo-16k",
name: "OpenAI: GPT-3.5 Turbo 16k",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 3.0,
output: 4.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 16_385,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-4",
name: "OpenAI: GPT-4",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 30.0,
output: 60.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 8191,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-4-0314",
name: "OpenAI: GPT-4 (older v0314)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 30.0,
output: 60.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 8191,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-4-1106-preview",
name: "OpenAI: GPT-4 Turbo (older v1106)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 10.0,
output: 30.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-4-turbo",
name: "OpenAI: GPT-4 Turbo",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 10.0,
output: 30.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-4-turbo-preview",
name: "OpenAI: GPT-4 Turbo Preview",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 10.0,
output: 30.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-4.1",
name: "OpenAI: GPT-4.1",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.0,
output: 8.0,
cache_read: 0.5,
cache_write: 0.0,
},
context_window: 1_047_576,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-4.1-mini",
name: "OpenAI: GPT-4.1 Mini",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 1.599_999_999_999_999_9,
cache_read: 0.099_999_999_999_999_99,
cache_write: 0.0,
},
context_window: 1_047_576,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "openai/gpt-4.1-nano",
name: "OpenAI: GPT-4.1 Nano",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.399_999_999_999_999_97,
cache_read: 0.024_999_999_999_999_998,
cache_write: 0.0,
},
context_window: 1_047_576,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "openai/gpt-4o",
name: "OpenAI: GPT-4o",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.5,
output: 10.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "openai/gpt-4o-2024-05-13",
name: "OpenAI: GPT-4o (2024-05-13)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 5.0,
output: 15.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-4o-2024-08-06",
name: "OpenAI: GPT-4o (2024-08-06)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.5,
output: 10.0,
cache_read: 1.25,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "openai/gpt-4o-2024-11-20",
name: "OpenAI: GPT-4o (2024-11-20)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.5,
output: 10.0,
cache_read: 1.25,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "openai/gpt-4o-audio-preview",
name: "OpenAI: GPT-4o Audio",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 2.5,
output: 10.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "openai/gpt-4o-mini",
name: "OpenAI: GPT-4o-mini",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.15,
output: 0.6,
cache_read: 0.075,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "openai/gpt-4o-mini-2024-07-18",
name: "OpenAI: GPT-4o-mini (2024-07-18)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.15,
output: 0.6,
cache_read: 0.075,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "openai/gpt-5",
name: "OpenAI: GPT-5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5-codex",
name: "OpenAI: GPT-5 Codex",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5-mini",
name: "OpenAI: GPT-5 Mini",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.25,
output: 2.0,
cache_read: 0.024_999_999_999_999_998,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5-nano",
name: "OpenAI: GPT-5 Nano",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.049_999_999_999_999_996,
output: 0.399_999_999_999_999_97,
cache_read: 0.01,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-5-pro",
name: "OpenAI: GPT-5 Pro",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 15.0,
output: 120.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.1",
name: "OpenAI: GPT-5.1",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.13,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.1-chat",
name: "OpenAI: GPT-5.1 Chat",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "openai/gpt-5.1-codex",
name: "OpenAI: GPT-5.1-Codex",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.1-codex-max",
name: "OpenAI: GPT-5.1-Codex-Max",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.1-codex-mini",
name: "OpenAI: GPT-5.1-Codex-Mini",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.25,
output: 2.0,
cache_read: 0.03,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.2",
name: "OpenAI: GPT-5.2",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.75,
output: 14.0,
cache_read: 0.175,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.2-chat",
name: "OpenAI: GPT-5.2 Chat",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.75,
output: 14.0,
cache_read: 0.175,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 32_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.2-codex",
name: "OpenAI: GPT-5.2-Codex",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.75,
output: 14.0,
cache_read: 0.175,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.2-pro",
name: "OpenAI: GPT-5.2 Pro",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 21.0,
output: 168.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.3-chat",
name: "OpenAI: GPT-5.3 Chat",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.75,
output: 14.0,
cache_read: 0.175,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "openai/gpt-5.3-codex",
name: "OpenAI: GPT-5.3-Codex",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.75,
output: 14.0,
cache_read: 0.175,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.4",
name: "OpenAI: GPT-5.4",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.5,
output: 15.0,
cache_read: 0.25,
cache_write: 0.0,
},
context_window: 1_050_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.4-mini",
name: "OpenAI: GPT-5.4 Mini",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.75,
output: 4.5,
cache_read: 0.075,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.4-nano",
name: "OpenAI: GPT-5.4 Nano",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.199_999_999_999_999_98,
output: 1.25,
cache_read: 0.02,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.4-pro",
name: "OpenAI: GPT-5.4 Pro",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 30.0,
output: 180.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 1_050_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.5",
name: "OpenAI: GPT-5.5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 5.0,
output: 30.0,
cache_read: 0.5,
cache_write: 0.0,
},
context_window: 1_050_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-5.5-pro",
name: "OpenAI: GPT-5.5 Pro",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 30.0,
output: 180.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 1_050_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "openai/gpt-audio",
name: "OpenAI: GPT Audio",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 2.5,
output: 10.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "openai/gpt-audio-mini",
name: "OpenAI: GPT Audio Mini",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.6,
output: 2.4,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "openai/gpt-oss-120b",
name: "OpenAI: gpt-oss-120b",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.039,
output: 0.18,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openai/gpt-oss-120b:free",
name: "OpenAI: gpt-oss-120b (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "openai/gpt-oss-20b",
name: "OpenAI: gpt-oss-20b",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.03,
output: 0.14,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "openai/gpt-oss-20b:free",
name: "OpenAI: gpt-oss-20b (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "openai/gpt-oss-safeguard-20b",
name: "OpenAI: gpt-oss-safeguard-20b",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.075,
output: 0.3,
cache_read: 0.037,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "openai/o1",
name: "OpenAI: o1",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 15.0,
output: 60.0,
cache_read: 7.5,
cache_write: 0.0,
},
context_window: 200_000,
max_tokens: 100_000,
},
ModelProviderDescriptor {
id: "openai/o3",
name: "OpenAI: o3",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.0,
output: 8.0,
cache_read: 0.5,
cache_write: 0.0,
},
context_window: 200_000,
max_tokens: 100_000,
},
ModelProviderDescriptor {
id: "openai/o3-deep-research",
name: "OpenAI: o3 Deep Research",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 10.0,
output: 40.0,
cache_read: 2.5,
cache_write: 0.0,
},
context_window: 200_000,
max_tokens: 100_000,
},
ModelProviderDescriptor {
id: "openai/o3-mini",
name: "OpenAI: o3 Mini",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.1,
output: 4.4,
cache_read: 0.55,
cache_write: 0.0,
},
context_window: 200_000,
max_tokens: 100_000,
},
ModelProviderDescriptor {
id: "openai/o3-mini-high",
name: "OpenAI: o3 Mini High",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.1,
output: 4.4,
cache_read: 0.55,
cache_write: 0.0,
},
context_window: 200_000,
max_tokens: 100_000,
},
ModelProviderDescriptor {
id: "openai/o3-pro",
name: "OpenAI: o3 Pro",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 20.0,
output: 80.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 200_000,
max_tokens: 100_000,
},
ModelProviderDescriptor {
id: "openai/o4-mini",
name: "OpenAI: o4 Mini",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.1,
output: 4.4,
cache_read: 0.275,
cache_write: 0.0,
},
context_window: 200_000,
max_tokens: 100_000,
},
ModelProviderDescriptor {
id: "openai/o4-mini-deep-research",
name: "OpenAI: o4 Mini Deep Research",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.0,
output: 8.0,
cache_read: 0.5,
cache_write: 0.0,
},
context_window: 200_000,
max_tokens: 100_000,
},
ModelProviderDescriptor {
id: "openai/o4-mini-high",
name: "OpenAI: o4 Mini High",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.1,
output: 4.4,
cache_read: 0.275,
cache_write: 0.0,
},
context_window: 200_000,
max_tokens: 100_000,
},
ModelProviderDescriptor {
id: "openrouter/auto",
name: "Auto Router",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: -1_000_000.0,
output: -1_000_000.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 2_000_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openrouter/free",
name: "Free Models Router",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 200_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "openrouter/owl-alpha",
name: "Owl Alpha",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 1_048_756,
max_tokens: 262_144,
},
ModelProviderDescriptor {
id: "poolside/laguna-m.1:free",
name: "Poolside: Laguna M.1 (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "poolside/laguna-xs.2:free",
name: "Poolside: Laguna XS.2 (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "prime-intellect/intellect-3",
name: "Prime Intellect: INTELLECT-3",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.199_999_999_999_999_98,
output: 1.1,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "qwen/qwen-2.5-72b-instruct",
name: "Qwen2.5 72B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.36,
output: 0.399_999_999_999_999_97,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 32_768,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "qwen/qwen-2.5-7b-instruct",
name: "Qwen: Qwen2.5 7B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.04,
output: 0.099_999_999_999_999_99,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 32_768,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen-max",
name: "Qwen: Qwen-Max ",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.04,
output: 4.16,
cache_read: 0.208_000_000_000_000_02,
cache_write: 0.0,
},
context_window: 32_768,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "qwen/qwen-plus",
name: "Qwen: Qwen-Plus",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.26,
output: 0.78,
cache_read: 0.052_000_000_000_000_005,
cache_write: 0.325,
},
context_window: 1_000_000,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen-plus-2025-07-28",
name: "Qwen: Qwen Plus 0728",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.26,
output: 0.78,
cache_read: 0.0,
cache_write: 0.325,
},
context_window: 1_000_000,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen-plus-2025-07-28:thinking",
name: "Qwen: Qwen Plus 0728 (thinking)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.26,
output: 0.78,
cache_read: 0.0,
cache_write: 0.325,
},
context_window: 1_000_000,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen-turbo",
name: "Qwen: Qwen-Turbo",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0325,
output: 0.13,
cache_read: 0.006_500_000_000_000_001,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "qwen/qwen-vl-max",
name: "Qwen: Qwen VL Max",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.52,
output: 2.08,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3-14b",
name: "Qwen: Qwen3 14B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.06,
output: 0.24,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 40_960,
max_tokens: 40_960,
},
ModelProviderDescriptor {
id: "qwen/qwen3-235b-a22b",
name: "Qwen: Qwen3 235B A22B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.454_999_999_999_999_96,
output: 1.819_999_999_999_999_8,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "qwen/qwen3-235b-a22b-2507",
name: "Qwen: Qwen3 235B A22B Instruct 2507",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.071,
output: 0.099_999_999_999_999_99,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "qwen/qwen3-235b-a22b-thinking-2507",
name: "Qwen: Qwen3 235B A22B Thinking 2507",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.149_500_000_000_000_02,
output: 1.495,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "qwen/qwen3-30b-a3b",
name: "Qwen: Qwen3 30B A3B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.08,
output: 0.28,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 40_960,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "qwen/qwen3-30b-a3b-instruct-2507",
name: "Qwen: Qwen3 30B A3B Instruct 2507",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.09,
output: 0.3,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 262_144,
},
ModelProviderDescriptor {
id: "qwen/qwen3-30b-a3b-thinking-2507",
name: "Qwen: Qwen3 30B A3B Thinking 2507",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.08,
output: 0.399_999_999_999_999_97,
cache_read: 0.08,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "qwen/qwen3-32b",
name: "Qwen: Qwen3 32B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.08,
output: 0.24,
cache_read: 0.04,
cache_write: 0.0,
},
context_window: 40_960,
max_tokens: 40_960,
},
ModelProviderDescriptor {
id: "qwen/qwen3-8b",
name: "Qwen: Qwen3 8B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.049_999_999_999_999_996,
output: 0.399_999_999_999_999_97,
cache_read: 0.049_999_999_999_999_996,
cache_write: 0.0,
},
context_window: 40_960,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "qwen/qwen3-coder",
name: "Qwen: Qwen3 Coder 480B A35B",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.22,
output: 1.799_999_999_999_999_8,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3-coder-30b-a3b-instruct",
name: "Qwen: Qwen3 Coder 30B A3B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.07,
output: 0.27,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 160_000,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3-coder-flash",
name: "Qwen: Qwen3 Coder Flash",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.195,
output: 0.975,
cache_read: 0.039,
cache_write: 0.243_75,
},
context_window: 1_000_000,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3-coder-next",
name: "Qwen: Qwen3 Coder Next",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.12,
output: 0.799_999_999_999_999_9,
cache_read: 0.07,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 262_144,
},
ModelProviderDescriptor {
id: "qwen/qwen3-coder-plus",
name: "Qwen: Qwen3 Coder Plus",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.65,
output: 3.25,
cache_read: 0.13,
cache_write: 0.8125,
},
context_window: 1_000_000,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3-coder:free",
name: "Qwen: Qwen3 Coder 480B A35B (free)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_000,
max_tokens: 262_000,
},
ModelProviderDescriptor {
id: "qwen/qwen3-max",
name: "Qwen: Qwen3 Max",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.78,
output: 3.9,
cache_read: 0.156,
cache_write: 0.975,
},
context_window: 262_144,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3-max-thinking",
name: "Qwen: Qwen3 Max Thinking",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.78,
output: 3.9,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3-next-80b-a3b-instruct",
name: "Qwen: Qwen3 Next 80B A3B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.09,
output: 1.1,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "qwen/qwen3-next-80b-a3b-instruct:free",
name: "Qwen: Qwen3 Next 80B A3B Instruct (free)",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "qwen/qwen3-next-80b-a3b-thinking",
name: "Qwen: Qwen3 Next 80B A3B Thinking",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0975,
output: 0.78,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3-vl-235b-a22b-instruct",
name: "Qwen: Qwen3 VL 235B A22B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.199_999_999_999_999_98,
output: 0.88,
cache_read: 0.11,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "qwen/qwen3-vl-235b-a22b-thinking",
name: "Qwen: Qwen3 VL 235B A22B Thinking",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.26,
output: 2.6,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3-vl-30b-a3b-instruct",
name: "Qwen: Qwen3 VL 30B A3B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.13,
output: 0.52,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3-vl-30b-a3b-thinking",
name: "Qwen: Qwen3 VL 30B A3B Thinking",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.13,
output: 1.56,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3-vl-32b-instruct",
name: "Qwen: Qwen3 VL 32B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.104_000_000_000_000_01,
output: 0.416_000_000_000_000_04,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3-vl-8b-instruct",
name: "Qwen: Qwen3 VL 8B Instruct",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.08,
output: 0.5,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3-vl-8b-thinking",
name: "Qwen: Qwen3 VL 8B Thinking",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.117,
output: 1.365,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "qwen/qwen3.5-122b-a10b",
name: "Qwen: Qwen3.5-122B-A10B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.26,
output: 2.08,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3.5-27b",
name: "Qwen: Qwen3.5-27B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.195,
output: 1.56,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3.5-35b-a3b",
name: "Qwen: Qwen3.5-35B-A3B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.1625,
output: 1.3,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3.5-397b-a17b",
name: "Qwen: Qwen3.5 397B A17B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.39,
output: 2.34,
cache_read: 0.195,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3.5-9b",
name: "Qwen: Qwen3.5-9B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.15,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "qwen/qwen3.5-flash-02-23",
name: "Qwen: Qwen3.5-Flash",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.065,
output: 0.26,
cache_read: 0.0,
cache_write: 0.081_25,
},
context_window: 1_000_000,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3.5-plus-02-15",
name: "Qwen: Qwen3.5 Plus 2026-02-15",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.26,
output: 1.56,
cache_read: 0.0,
cache_write: 0.325,
},
context_window: 1_000_000,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3.5-plus-20260420",
name: "Qwen: Qwen3.5 Plus 2026-04-20",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 2.4,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 1_000_000,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3.6-27b",
name: "Qwen: Qwen3.6 27B",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.325,
output: 3.25,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 256_000,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3.6-flash",
name: "Qwen: Qwen3.6 Flash",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.25,
output: 1.5,
cache_read: 0.0,
cache_write: 0.3125,
},
context_window: 1_000_000,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3.6-max-preview",
name: "Qwen: Qwen3.6 Max Preview",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.04,
output: 6.24,
cache_read: 0.0,
cache_write: 1.3,
},
context_window: 262_144,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "qwen/qwen3.6-plus",
name: "Qwen: Qwen3.6 Plus",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.325,
output: 1.95,
cache_read: 0.0,
cache_write: 0.406_25,
},
context_window: 1_000_000,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "rekaai/reka-edge",
name: "Reka Edge",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.099_999_999_999_999_99,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 16_384,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "relace/relace-search",
name: "Relace: Relace Search",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.0,
output: 3.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 256_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "sao10k/l3-euryale-70b",
name: "Sao10k: Llama 3 Euryale 70B v2.1",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.48,
output: 1.48,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 8192,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "sao10k/l3.1-euryale-70b",
name: "Sao10K: Llama 3.1 Euryale 70B v2.2",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.85,
output: 0.85,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "stepfun/step-3.5-flash",
name: "StepFun: Step 3.5 Flash",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.3,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "tencent/hy3-preview:free",
name: "Tencent: Hy3 preview (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 262_144,
},
ModelProviderDescriptor {
id: "thedrummer/rocinante-12b",
name: "TheDrummer: Rocinante 12B",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.169_999_999_999_999_98,
output: 0.43,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 32_768,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "thedrummer/unslopnemo-12b",
name: "TheDrummer: UnslopNemo 12B",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 0.399_999_999_999_999_97,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 32_768,
max_tokens: 32_768,
},
ModelProviderDescriptor {
id: "tngtech/deepseek-r1t2-chimera",
name: "TNG: DeepSeek R1T2 Chimera",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.3,
output: 1.1,
cache_read: 0.15,
cache_write: 0.0,
},
context_window: 163_840,
max_tokens: 163_840,
},
ModelProviderDescriptor {
id: "upstage/solar-pro-3",
name: "Upstage: Solar Pro 3",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.15,
output: 0.6,
cache_read: 0.015,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "x-ai/grok-3",
name: "xAI: Grok 3",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 3.0,
output: 15.0,
cache_read: 0.75,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "x-ai/grok-3-beta",
name: "xAI: Grok 3 Beta",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 3.0,
output: 15.0,
cache_read: 0.75,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "x-ai/grok-3-mini",
name: "xAI: Grok 3 Mini",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.3,
output: 0.5,
cache_read: 0.075,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "x-ai/grok-3-mini-beta",
name: "xAI: Grok 3 Mini Beta",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.3,
output: 0.5,
cache_read: 0.075,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "x-ai/grok-4",
name: "xAI: Grok 4",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 3.0,
output: 15.0,
cache_read: 0.75,
cache_write: 0.0,
},
context_window: 256_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "x-ai/grok-4-fast",
name: "xAI: Grok 4 Fast",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.199_999_999_999_999_98,
output: 0.5,
cache_read: 0.049_999_999_999_999_996,
cache_write: 0.0,
},
context_window: 2_000_000,
max_tokens: 30_000,
},
ModelProviderDescriptor {
id: "x-ai/grok-4.1-fast",
name: "xAI: Grok 4.1 Fast",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.199_999_999_999_999_98,
output: 0.5,
cache_read: 0.049_999_999_999_999_996,
cache_write: 0.0,
},
context_window: 2_000_000,
max_tokens: 30_000,
},
ModelProviderDescriptor {
id: "x-ai/grok-4.20",
name: "xAI: Grok 4.20",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 2.5,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.0,
},
context_window: 2_000_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "x-ai/grok-4.3",
name: "xAI: Grok 4.3",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 2.5,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.0,
},
context_window: 1_000_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "x-ai/grok-code-fast-1",
name: "xAI: Grok Code Fast 1",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.199_999_999_999_999_98,
output: 1.5,
cache_read: 0.02,
cache_write: 0.0,
},
context_window: 256_000,
max_tokens: 10_000,
},
ModelProviderDescriptor {
id: "xiaomi/mimo-v2-flash",
name: "Xiaomi: MiMo-V2-Flash",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.09,
output: 0.29,
cache_read: 0.045,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "xiaomi/mimo-v2-omni",
name: "Xiaomi: MiMo-V2-Omni",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 2.0,
cache_read: 0.08,
cache_write: 0.0,
},
context_window: 262_144,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "xiaomi/mimo-v2-pro",
name: "Xiaomi: MiMo-V2-Pro",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.0,
output: 3.0,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "xiaomi/mimo-v2.5",
name: "Xiaomi: MiMo-V2.5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.399_999_999_999_999_97,
output: 2.0,
cache_read: 0.08,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "xiaomi/mimo-v2.5-pro",
name: "Xiaomi: MiMo-V2.5-Pro",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.0,
output: 3.0,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "z-ai/glm-4-32b",
name: "Z.ai: GLM 4 32B ",
reasoning: false,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.099_999_999_999_999_99,
output: 0.099_999_999_999_999_99,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "z-ai/glm-4.5",
name: "Z.ai: GLM 4.5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.6,
output: 2.2,
cache_read: 0.11,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 98_304,
},
ModelProviderDescriptor {
id: "z-ai/glm-4.5-air",
name: "Z.ai: GLM 4.5 Air",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.13,
output: 0.85,
cache_read: 0.024_999_999_999_999_998,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 98_304,
},
ModelProviderDescriptor {
id: "z-ai/glm-4.5-air:free",
name: "Z.ai: GLM 4.5 Air (free)",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 96_000,
},
ModelProviderDescriptor {
id: "z-ai/glm-4.5v",
name: "Z.ai: GLM 4.5V",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.6,
output: 1.799_999_999_999_999_8,
cache_read: 0.11,
cache_write: 0.0,
},
context_window: 65_536,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "z-ai/glm-4.6",
name: "Z.ai: GLM 4.6",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.39,
output: 1.9,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 204_800,
max_tokens: 204_800,
},
ModelProviderDescriptor {
id: "z-ai/glm-4.6v",
name: "Z.ai: GLM 4.6V",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.3,
output: 0.899_999_999_999_999_9,
cache_read: 0.049_999_999_999_999_996,
cache_write: 0.0,
},
context_window: 131_072,
max_tokens: 24_000,
},
ModelProviderDescriptor {
id: "z-ai/glm-4.7",
name: "Z.ai: GLM 4.7",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.38,
output: 1.74,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 202_752,
max_tokens: 4096,
},
ModelProviderDescriptor {
id: "z-ai/glm-4.7-flash",
name: "Z.ai: GLM 4.7 Flash",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.06,
output: 0.399_999_999_999_999_97,
cache_read: 0.01,
cache_write: 0.0,
},
context_window: 202_752,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "z-ai/glm-5",
name: "Z.ai: GLM 5",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.6,
output: 2.08,
cache_read: 0.12,
cache_write: 0.0,
},
context_window: 202_752,
max_tokens: 16_384,
},
ModelProviderDescriptor {
id: "z-ai/glm-5-turbo",
name: "Z.ai: GLM 5 Turbo",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.2,
output: 4.0,
cache_read: 0.24,
cache_write: 0.0,
},
context_window: 202_752,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "z-ai/glm-5.1",
name: "Z.ai: GLM 5.1",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 1.049_999_999_999_999_8,
output: 3.5,
cache_read: 0.524_999_999_999_999_9,
cache_write: 0.0,
},
context_window: 202_752,
max_tokens: 65_535,
},
ModelProviderDescriptor {
id: "z-ai/glm-5v-turbo",
name: "Z.ai: GLM 5V Turbo",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.2,
output: 4.0,
cache_read: 0.24,
cache_write: 0.0,
},
context_window: 202_752,
max_tokens: 131_072,
},
ModelProviderDescriptor {
id: "~anthropic/claude-haiku-latest",
name: "Anthropic Claude Haiku Latest",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.0,
output: 5.0,
cache_read: 0.099_999_999_999_999_99,
cache_write: 1.25,
},
context_window: 200_000,
max_tokens: 64_000,
},
ModelProviderDescriptor {
id: "~anthropic/claude-opus-latest",
name: "Anthropic: Claude Opus Latest",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 5.0,
output: 25.0,
cache_read: 0.5,
cache_write: 6.25,
},
context_window: 1_000_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "~anthropic/claude-sonnet-latest",
name: "Anthropic Claude Sonnet Latest",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 3.0,
output: 15.0,
cache_read: 0.3,
cache_write: 3.75,
},
context_window: 1_000_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "~google/gemini-flash-latest",
name: "Google Gemini Flash Latest",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.5,
output: 3.0,
cache_read: 0.049_999_999_999_999_996,
cache_write: 0.083_333_333_333_333_34,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "~google/gemini-pro-latest",
name: "Google Gemini Pro Latest",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.0,
output: 12.0,
cache_read: 0.199_999_999_999_999_98,
cache_write: 0.375,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "~moonshotai/kimi-latest",
name: "MoonshotAI Kimi Latest",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.74,
output: 3.49,
cache_read: 0.14,
cache_write: 0.0,
},
context_window: 262_142,
max_tokens: 262_142,
},
ModelProviderDescriptor {
id: "~openai/gpt-latest",
name: "OpenAI GPT Latest",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 5.0,
output: 30.0,
cache_read: 0.5,
cache_write: 0.0,
},
context_window: 1_050_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "~openai/gpt-mini-latest",
name: "OpenAI GPT Mini Latest",
reasoning: true,
api: ModelAPI::OpenAICompletions,
provider: ModelProviders::OPENROUTER,
base_url: Some("https://openrouter.ai/api/v1"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.75,
output: 4.5,
cache_read: 0.075,
cache_write: 0.0,
},
context_window: 400_000,
max_tokens: 128_000,
},
];