From ab2ed84519f55dabd25956751a89683f036fa043 Mon Sep 17 00:00:00 2001 From: biny Date: Fri, 7 Aug 2026 14:23:24 +0800 Subject: [PATCH 1/5] feat(scripts): sync the full models.dev fact set (pricing, description, knowledge, input limits) --- .../src/__tests__/chat-model-choice.test.ts | 4 +- .../core/src/__tests__/model-catalog.test.ts | 25 + .../core/src/__tests__/model-metadata.test.ts | 33 + .../models-dev-sync-contract.test.ts | 75 + packages/core/src/chat-model-choice.ts | 6 + packages/core/src/index.ts | 2 + packages/core/src/llm-connections.ts | 12 +- packages/core/src/model-catalog.ts | 46 +- packages/core/src/model-metadata.generated.ts | 6936 +++++++++++++++-- packages/core/src/model-metadata.ts | 40 +- packages/core/src/voice.ts | 2 +- .../src/__tests__/builtin-pricing.test.ts | 20 + .../context-budget-model-facts.test.ts | 32 + .../models-dev-pricing-contract.test.ts | 44 + packages/runtime/src/context-budget-policy.ts | 13 +- .../runtime/src/telemetry/builtin-pricing.ts | 16 +- .../src/telemetry/model-pricing.generated.ts | 6566 ++++++++++++++++ .../ui/src/__tests__/model-picker.test.ts | 25 + packages/ui/src/chat-model-helpers.ts | 13 + packages/ui/src/chat-model-switcher.tsx | 3 + packages/ui/src/model-picker-internals.ts | 22 +- packages/ui/src/model-picker.tsx | 9 +- packages/ui/src/shared-ui-copy.ts | 3 + scripts/sync-model-metadata.mjs | 100 +- scripts/sync-model-metadata.test.mjs | 58 +- 25 files changed, 13635 insertions(+), 470 deletions(-) create mode 100644 packages/runtime/src/__tests__/builtin-pricing.test.ts create mode 100644 packages/runtime/src/__tests__/context-budget-model-facts.test.ts create mode 100644 packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts create mode 100644 packages/runtime/src/telemetry/model-pricing.generated.ts diff --git a/packages/core/src/__tests__/chat-model-choice.test.ts b/packages/core/src/__tests__/chat-model-choice.test.ts index 59271c72ea8..2f09abc5fdb 100644 --- a/packages/core/src/__tests__/chat-model-choice.test.ts +++ b/packages/core/src/__tests__/chat-model-choice.test.ts @@ -19,7 +19,7 @@ function connection(overrides: Partial = {}): LlmConnection { }; } -test('projects only enabled chat models with display, default, and thinking metadata', () => { +test('projects enabled chat models with display, models.dev facts, and thinking metadata', () => { assert.deepEqual(buildChatModelChoices([connection()]), [ { connectionSlug: 'openai-main', @@ -27,6 +27,8 @@ test('projects only enabled chat models with display, default, and thinking meta providerLabel: 'OpenAI', model: 'gpt-5.5', label: 'GPT-5.5', + description: 'Default frontier GPT for coding, computer use, research, and knowledge work', + knowledgeCutoff: '2025-12-01', connectionName: 'Work API', isDefault: true, thinkingLevels: ['off', 'low', 'medium', 'high', 'xhigh'], diff --git a/packages/core/src/__tests__/model-catalog.test.ts b/packages/core/src/__tests__/model-catalog.test.ts index 590599fb725..40dbdd2bf31 100644 --- a/packages/core/src/__tests__/model-catalog.test.ts +++ b/packages/core/src/__tests__/model-catalog.test.ts @@ -63,6 +63,31 @@ test('provider facts override static metadata while missing facts are enriched', assert.deepEqual(enriched?.capabilities, { reasoning: true, functionCalling: true }); }); +test('catalog entries expose generated model facts beyond capabilities', () => { + const [entry] = buildModelCatalogEntries({ + providerType: 'anthropic', + defaultModel: 'claude-sonnet-4-5', + models: [{ id: 'claude-sonnet-4-5' }], + modelSource: 'fetched', + }); + assert.equal( + entry?.description, + 'Balanced Claude model for coding, analysis, agent workflows, and cost control', + ); + assert.equal(entry?.knowledgeCutoff, '2025-07-31'); + assert.equal(entry?.inputLimit, undefined); + assert.equal(entry?.modalities?.input.includes('pdf'), true); + assert.equal(entry?.structuredOutput, true); + assert.equal(entry?.lastUpdated, '2025-09-29'); + + const [inputLimited] = buildModelCatalogEntries({ + providerType: 'openai', + models: [{ id: 'gpt-5.5-pro' }], + modelSource: 'fetched', + }); + assert.equal(inputLimited?.inputLimit, 922_000); +}); + test('live inventory blocks missing defaults and preserves higher-priority failures', () => { const input = { providerType: 'zai-coding-plan' as const, diff --git a/packages/core/src/__tests__/model-metadata.test.ts b/packages/core/src/__tests__/model-metadata.test.ts index 0cac0c50267..2ea67a7d10f 100644 --- a/packages/core/src/__tests__/model-metadata.test.ts +++ b/packages/core/src/__tests__/model-metadata.test.ts @@ -3,6 +3,8 @@ import { describe, it } from 'node:test'; import { lookupModelMetadata, openAiAdapterApiProtocol, + resolveModelInputModalities, + resolveModelPdfSupport, resolveModelVisionSupport, } from '../model-metadata.js'; import { PROVIDER_DEFAULTS, type ModelInfo, type ProviderType } from '../llm-connections.js'; @@ -56,6 +58,21 @@ describe('model-metadata vision capability', () => { ); }); + it('preserves synchronized display facts on the Claude subscription path', () => { + const metadata = lookupModelMetadata('claude-subscription', 'claude-sonnet-4-5'); + assert.equal( + metadata.description, + 'Balanced Claude model for coding, analysis, agent workflows, and cost control', + ); + assert.equal(metadata.knowledgeCutoff, '2025-07-31'); + assert.equal(metadata.structuredOutput, true); + assert.equal(metadata.lastUpdated, '2025-09-29'); + assert.equal(metadata.modalities?.input.includes('pdf'), true); + // Context limits remain access-path-specific and are intentionally not + // copied from the API snapshot onto the subscription route. + assert.equal(metadata.contextWindow, undefined); + }); + it('confines the default to the providers that serve Anthropic their own models', () => { // A claude-prefixed id on somebody else's provider says nothing about what // is actually behind it, so the default must not travel with the id. @@ -83,10 +100,14 @@ describe('model-metadata vision capability', () => { it('publishes the Kimi Coding Plan K3 limits and effort levels from models.dev', () => { assert.deepEqual(lookupModelMetadata('kimi-coding-plan', 'k3'), { displayName: 'Kimi K3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html', contextWindow: 1_048_576, maxOutputTokens: 131_072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -223,6 +244,18 @@ describe('resolveModelVisionSupport', () => { }); }); +describe('models.dev extended model facts', () => { + it('keeps PDF input in the generated modality facts', () => { + const metadata = lookupModelMetadata('anthropic', 'claude-sonnet-4-5'); + assert.equal(metadata.modalities?.input.includes('pdf'), true); + assert.equal(resolveModelPdfSupport('anthropic', undefined, 'claude-sonnet-4-5'), true); + assert.equal( + resolveModelInputModalities('anthropic', undefined, 'claude-sonnet-4-5').includes('pdf'), + true, + ); + }); +}); + describe('openAiAdapterApiProtocol', () => { it('routes every gpt-5* family to the Responses wire', () => { for (const modelId of [ diff --git a/packages/core/src/__tests__/models-dev-sync-contract.test.ts b/packages/core/src/__tests__/models-dev-sync-contract.test.ts index 2ff1b16c13a..0f8a1da1de2 100644 --- a/packages/core/src/__tests__/models-dev-sync-contract.test.ts +++ b/packages/core/src/__tests__/models-dev-sync-contract.test.ts @@ -28,6 +28,7 @@ import assert from 'node:assert/strict'; import { describe, it } from 'node:test'; import { GENERATED_MODELS_DEV_DIRECTORY, + GENERATED_MODELS_DEV_METADATA, GENERATED_MODELS_DEV_PROVIDER_FACTS, } from '../model-metadata.generated.js'; import { PROVIDER_REGISTRY, type ProviderType } from '../provider-registry.js'; @@ -62,6 +63,10 @@ const NOT_IN_MODELS_DEV: Readonly> = { 'anthropic-compatible': 'user-configured endpoint, no upstream catalog entry', }; +const GENERATED_LIFECYCLES = new Set(['active', 'beta', 'alpha', 'deprecated', 'retired']); +const GENERATED_INPUT_MODALITIES = new Set(['text', 'image', 'audio', 'pdf']); +const GENERATED_OUTPUT_MODALITIES = new Set(['text', 'image', 'audio']); + function expectedSegmentId(providerType: ProviderType): string | undefined { const facts = GENERATED_MODELS_DEV_PROVIDER_FACTS as Partial< Record @@ -116,6 +121,76 @@ describe('models.dev sync contract', () => { assert.deepEqual(gaps, []); }); + it('preserves the extended model facts and only supported modalities', () => { + const gaps: string[] = []; + let inputLimitCount = 0; + let knowledgeCutoffCount = 0; + let structuredOutputCount = 0; + let pdfCount = 0; + + for (const [providerType, models] of Object.entries(GENERATED_MODELS_DEV_METADATA)) { + for (const [modelId, metadata] of Object.entries(models)) { + const label = `${providerType}:${modelId}`; + if (metadata.description !== undefined && typeof metadata.description !== 'string') { + gaps.push(`${label} has a non-string description`); + } + if ( + metadata.inputLimit !== undefined && + (typeof metadata.inputLimit !== 'number' || !Number.isFinite(metadata.inputLimit)) + ) { + gaps.push(`${label} has an invalid inputLimit`); + } else if (metadata.inputLimit !== undefined) { + inputLimitCount += 1; + } + if ( + metadata.knowledgeCutoff !== undefined && + typeof metadata.knowledgeCutoff !== 'string' + ) { + gaps.push(`${label} has a non-string knowledgeCutoff`); + } else if (metadata.knowledgeCutoff !== undefined) { + knowledgeCutoffCount += 1; + } + if ( + metadata.structuredOutput !== undefined && + typeof metadata.structuredOutput !== 'boolean' + ) { + gaps.push(`${label} has a non-boolean structuredOutput`); + } else if (metadata.structuredOutput !== undefined) { + structuredOutputCount += 1; + } + if (metadata.lastUpdated !== undefined && typeof metadata.lastUpdated !== 'string') { + gaps.push(`${label} has a non-string lastUpdated`); + } + if (metadata.lifecycle !== undefined && !GENERATED_LIFECYCLES.has(metadata.lifecycle)) { + gaps.push(`${label} has an invalid lifecycle ${metadata.lifecycle}`); + } + for (const modality of metadata.modalities?.input ?? []) { + if (!GENERATED_INPUT_MODALITIES.has(modality)) { + gaps.push(`${label} has unsupported input modality ${modality}`); + } + if (modality === 'pdf') pdfCount += 1; + } + for (const modality of metadata.modalities?.output ?? []) { + if (!GENERATED_OUTPUT_MODALITIES.has(modality)) { + gaps.push(`${label} has unsupported output modality ${modality}`); + } + } + } + } + + assert.deepEqual(gaps, []); + assert.ok(inputLimitCount > 0, 'input limits must be present in the generated snapshot'); + assert.ok( + knowledgeCutoffCount > 0, + 'knowledge cutoffs must be present in the generated snapshot', + ); + assert.ok( + structuredOutputCount > 0, + 'structured output facts must be present in the generated snapshot', + ); + assert.ok(pdfCount > 0, 'PDF input support must be preserved in the generated snapshot'); + }); + it('a whitelisted provider whose base URL matches a directory provider must declare it', () => { const gaps: string[] = []; for (const providerType of Object.keys(NOT_IN_MODELS_DEV)) { diff --git a/packages/core/src/chat-model-choice.ts b/packages/core/src/chat-model-choice.ts index 488b16dd387..14c309a614e 100644 --- a/packages/core/src/chat-model-choice.ts +++ b/packages/core/src/chat-model-choice.ts @@ -30,6 +30,8 @@ export interface ChatModelChoice { providerLabel: string; model: string; label: string; + description?: string; + knowledgeCutoff?: string; connectionName?: string; isDefault: boolean; thinkingLevels: readonly ThinkingLevel[]; @@ -64,6 +66,10 @@ export function buildChatModelChoices(connections: readonly LlmConnection[]): Ch providerLabel: MODEL_MENU_PROVIDER_LABELS[connection.providerType] ?? provider.label, model: entry.id, label: entry.displayName?.trim() || entry.id, + ...(entry.description !== undefined ? { description: entry.description } : {}), + ...(entry.knowledgeCutoff !== undefined + ? { knowledgeCutoff: entry.knowledgeCutoff } + : {}), ...(provider.authKind === 'oauth_token' ? {} : { connectionName: connection.name }), isDefault: entry.isDefault, thinkingLevels: thinkingVariantsForModel(connection.providerType, entry.id), diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 5cf92a8a483..d5ce3c0b429 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1585,6 +1585,8 @@ export { // model-metadata.ts export { modelMetadataIdsForProvider, + resolveModelInputModalities, + resolveModelPdfSupport, resolveModelVisionSupport, resolveModelVoiceMetadata, } from './model-metadata.js'; diff --git a/packages/core/src/llm-connections.ts b/packages/core/src/llm-connections.ts index fe243c64a44..98c8234fbe9 100644 --- a/packages/core/src/llm-connections.ts +++ b/packages/core/src/llm-connections.ts @@ -48,10 +48,20 @@ export type ConnectionAuth = export interface ModelInfo { id: string; displayName?: string; + /** Short upstream description, when the provider advertises one. */ + description?: string; /** Account-advertised request wire when one provider exposes multiple model protocols. */ apiProtocol?: 'openai-chat' | 'openai-responses' | 'anthropic-messages'; contextWindow?: number; + /** Maximum provider-visible input tokens, when narrower than contextWindow. */ + inputLimit?: number; maxOutputTokens?: number; + /** Knowledge cutoff reported by the provider or static catalog. */ + knowledgeCutoff?: string; + /** Whether the model advertises structured JSON output separately from tools. */ + structuredOutput?: boolean; + /** Date on which the upstream model facts were last refreshed. */ + lastUpdated?: string; capabilities?: { chat?: boolean; vision?: boolean; @@ -68,7 +78,7 @@ export interface ModelInfo { * metadata, endpoint role, and an implemented adapter at the same time. */ modalities?: { - input: Array<'text' | 'image' | 'audio'>; + input: Array<'text' | 'image' | 'audio' | 'pdf'>; output: Array<'text' | 'image' | 'audio'>; }; endpointRoles?: Array< diff --git a/packages/core/src/model-catalog.ts b/packages/core/src/model-catalog.ts index c3a507f75ce..8af92885d75 100644 --- a/packages/core/src/model-catalog.ts +++ b/packages/core/src/model-catalog.ts @@ -19,7 +19,13 @@ export type ModelUnavailableReason = | 'stale'; export type ModelCatalogAvailability = 'available' | 'warning' | 'blocked'; -export type ModelCatalogLifecycle = 'active' | 'deprecated' | 'retired' | 'unknown'; +export type ModelCatalogLifecycle = + | 'active' + | 'beta' + | 'alpha' + | 'deprecated' + | 'retired' + | 'unknown'; export interface KnownModelCapabilities { chat?: true; @@ -59,6 +65,7 @@ export interface ModelCatalogProvenanceSources { export interface ModelCatalogEntry { id: string; displayName?: string; + description?: string; providerType: ProviderType; connectionSlug?: string; source: 'provider_api' | 'static_catalog' | 'unknown'; @@ -72,7 +79,12 @@ export interface ModelCatalogEntry { recommendedRank?: number; docsUrl?: string; contextWindow?: number; + inputLimit?: number; maxOutputTokens?: number; + knowledgeCutoff?: string; + structuredOutput?: boolean; + lastUpdated?: string; + modalities?: ModelInfo['modalities']; pricing?: ModelCatalogPricing; provenance: { modelSource?: ModelDiscoverySource; @@ -258,7 +270,13 @@ function makeEntry( const metadata = lookupModelMetadata(input.providerType, normalizedModel.id); const recommendedRank = recommendedRanks.get(normalizedModel.id); const contextWindow = normalizedModel.contextWindow ?? metadata.contextWindow; + const inputLimit = normalizedModel.inputLimit ?? metadata.inputLimit; const maxOutputTokens = normalizedModel.maxOutputTokens ?? metadata.maxOutputTokens; + const description = normalizedModel.description ?? metadata.description; + const knowledgeCutoff = normalizedModel.knowledgeCutoff ?? metadata.knowledgeCutoff; + const structuredOutput = normalizedModel.structuredOutput ?? metadata.structuredOutput; + const lastUpdated = normalizedModel.lastUpdated ?? metadata.lastUpdated; + const modalities = normalizedModel.modalities ?? metadata.modalities; const capabilities = mergeCapabilities(normalizedModel.capabilities, metadata.capabilities); const unavailableReason = deriveModelUnavailableReason(input, { ...normalizedModel, @@ -267,6 +285,7 @@ function makeEntry( return { id: normalizedModel.id, ...displayNameForModel(input.providerType, normalizedModel), + ...(description !== undefined ? { description } : {}), providerType: input.providerType, ...(input.connectionSlug ? { connectionSlug: input.connectionSlug } : {}), source, @@ -284,7 +303,12 @@ function makeEntry( ...(recommendedRank ? { recommendedRank } : {}), ...(metadata.docsUrl ? { docsUrl: metadata.docsUrl } : {}), ...(contextWindow !== undefined ? { contextWindow } : {}), + ...(inputLimit !== undefined ? { inputLimit } : {}), ...(maxOutputTokens !== undefined ? { maxOutputTokens } : {}), + ...(knowledgeCutoff !== undefined ? { knowledgeCutoff } : {}), + ...(structuredOutput !== undefined ? { structuredOutput } : {}), + ...(lastUpdated !== undefined ? { lastUpdated } : {}), + ...(modalities !== undefined ? { modalities } : {}), ...(pricing ? { pricing } : {}), provenance: { modelSource, @@ -330,6 +354,7 @@ function makeMissingDefaultEntry( return { id, ...displayNameForKnownModel(input.providerType, id), + ...(metadata.description !== undefined ? { description: metadata.description } : {}), providerType: input.providerType, ...(input.connectionSlug ? { connectionSlug: input.connectionSlug } : {}), source: 'unknown', @@ -343,9 +368,18 @@ function makeMissingDefaultEntry( ...(recommendedRank ? { recommendedRank } : {}), ...(metadata.docsUrl ? { docsUrl: metadata.docsUrl } : {}), ...(metadata.contextWindow !== undefined ? { contextWindow: metadata.contextWindow } : {}), + ...(metadata.inputLimit !== undefined ? { inputLimit: metadata.inputLimit } : {}), ...(metadata.maxOutputTokens !== undefined ? { maxOutputTokens: metadata.maxOutputTokens } : {}), + ...(metadata.knowledgeCutoff !== undefined + ? { knowledgeCutoff: metadata.knowledgeCutoff } + : {}), + ...(metadata.structuredOutput !== undefined + ? { structuredOutput: metadata.structuredOutput } + : {}), + ...(metadata.lastUpdated !== undefined ? { lastUpdated: metadata.lastUpdated } : {}), + ...(metadata.modalities !== undefined ? { modalities: metadata.modalities } : {}), provenance: { modelSource, ...(input.modelsFetchedAt ? { modelsFetchedAt: input.modelsFetchedAt } : {}), @@ -368,6 +402,7 @@ function makeMissingUserChoiceEntry( return { id, ...displayNameForKnownModel(input.providerType, id), + ...(metadata.description !== undefined ? { description: metadata.description } : {}), providerType: input.providerType, ...(input.connectionSlug ? { connectionSlug: input.connectionSlug } : {}), source: 'unknown', @@ -381,9 +416,18 @@ function makeMissingUserChoiceEntry( ...(recommendedRank ? { recommendedRank } : {}), ...(metadata.docsUrl ? { docsUrl: metadata.docsUrl } : {}), ...(metadata.contextWindow !== undefined ? { contextWindow: metadata.contextWindow } : {}), + ...(metadata.inputLimit !== undefined ? { inputLimit: metadata.inputLimit } : {}), ...(metadata.maxOutputTokens !== undefined ? { maxOutputTokens: metadata.maxOutputTokens } : {}), + ...(metadata.knowledgeCutoff !== undefined + ? { knowledgeCutoff: metadata.knowledgeCutoff } + : {}), + ...(metadata.structuredOutput !== undefined + ? { structuredOutput: metadata.structuredOutput } + : {}), + ...(metadata.lastUpdated !== undefined ? { lastUpdated: metadata.lastUpdated } : {}), + ...(metadata.modalities !== undefined ? { modalities: metadata.modalities } : {}), provenance: { modelSource, ...(input.modelsFetchedAt ? { modelsFetchedAt: input.modelsFetchedAt } : {}), diff --git a/packages/core/src/model-metadata.generated.ts b/packages/core/src/model-metadata.generated.ts index 62408f65580..9d918303085 100644 --- a/packages/core/src/model-metadata.generated.ts +++ b/packages/core/src/model-metadata.generated.ts @@ -55,627 +55,832 @@ export const GENERATED_MODELS_DEV_METADATA: Record< anthropic: { 'claude-fable-5': { displayName: 'Claude Fable 5', + description: 'Claude model for creative writing, analysis, and controlled agent workflows', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 1000000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-06-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-haiku-4-5': { displayName: 'Claude Haiku 4.5 (latest)', + description: 'Fast Claude lane for lightweight agents, office tasks, and responsive chat', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-02-28', + structuredOutput: true, + lastUpdated: '2025-10-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-haiku-4-5-20251001': { displayName: 'Claude Haiku 4.5', + description: + 'Fast Claude model for responsive assistance, classification, and lightweight agents', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-02-28', + structuredOutput: true, + lastUpdated: '2025-10-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, - }, - 'claude-opus-4-1': { - displayName: 'Claude Opus 4.1 (latest)', - lifecycle: 'deprecated', - docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', - contextWindow: 200000, - maxOutputTokens: 32000, - capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, - }, - 'claude-opus-4-1-20250805': { - displayName: 'Claude Opus 4.1', - lifecycle: 'deprecated', - docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', - contextWindow: 200000, - maxOutputTokens: 32000, - capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4-5': { displayName: 'Claude Opus 4.5 (latest)', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2025-11-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4-5-20251101': { displayName: 'Claude Opus 4.5', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2025-11-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4-6': { displayName: 'Claude Opus 4.6', + description: 'High-end Claude for difficult coding, planning, and slower expert reasoning', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-05-31', + structuredOutput: true, + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4-7': { displayName: 'Claude Opus 4.7', + description: 'Stronger Opus tier for advanced software work and high-stakes reasoning', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + structuredOutput: true, + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4-8': { displayName: 'Claude Opus 4.8', + description: + 'Top Claude Opus tier for the hardest reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01', + structuredOutput: true, + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-5': { displayName: 'Claude Opus 5', + description: 'Strongest Claude Opus model for coding, agents, and professional work', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-05', + structuredOutput: true, + lastUpdated: '2026-07-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-4-5': { displayName: 'Claude Sonnet 4.5 (latest)', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-07-31', + structuredOutput: true, + lastUpdated: '2025-09-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-4-5-20250929': { displayName: 'Claude Sonnet 4.5', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-07-31', + structuredOutput: true, + lastUpdated: '2025-09-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-4-6': { displayName: 'Claude Sonnet 4.6', + description: + 'Claude workhorse for coding agents, careful analysis, and production cost control', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-5': { displayName: 'Claude Sonnet 5', + description: 'Everyday Claude agent model for coding, planning, browsing, and general work', lifecycle: 'active', docsUrl: 'https://docs.anthropic.com/en/docs/about-claude/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + structuredOutput: true, + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, }, alibaba: { 'qvq-max': { displayName: 'QVQ Max', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-03-25', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen-flash': { displayName: 'Qwen Flash', + description: 'Efficient Qwen model for fast chat, extraction, and high-volume workloads', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 1000000, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen-max': { displayName: 'Qwen Max', + description: 'Flagship Qwen model for complex reasoning, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 32768, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-01-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen-mt-plus': { displayName: 'Qwen-MT Plus', + description: + 'Translation model for multilingual conversion, localization, and cross-language workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 16384, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen-mt-turbo': { displayName: 'Qwen-MT Turbo', + description: + 'Translation model for multilingual conversion, localization, and cross-language workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 16384, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen-omni-turbo': { displayName: 'Qwen-Omni Turbo', + description: 'Qwen omni model for text, vision, audio, and multimodal agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 32768, maxOutputTokens: 2048, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-03-26', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text', 'audio'] }, }, 'qwen-omni-turbo-realtime': { displayName: 'Qwen-Omni Turbo Realtime', + description: 'Qwen omni model for text, vision, audio, and multimodal agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 32768, maxOutputTokens: 2048, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-05-08', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text', 'audio'] }, }, 'qwen-plus': { displayName: 'Qwen Plus', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 1000000, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-09-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen-plus-character-ja': { displayName: 'Qwen Plus Character (Japanese)', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 8192, maxOutputTokens: 512, + knowledgeCutoff: '2024-04', + lastUpdated: '2024-01', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen-turbo': { displayName: 'Qwen Turbo', + description: 'Efficient Qwen model for fast chat, extraction, and high-volume workloads', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 1000000, maxOutputTokens: 16384, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-04-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen-vl-max': { displayName: 'Qwen-VL Max', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-08-13', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen-vl-ocr': { displayName: 'Qwen-VL OCR', + description: 'OCR model for extracting structured text from documents and screenshots', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 34096, maxOutputTokens: 4096, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-04-13', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen-vl-plus': { displayName: 'Qwen-VL Plus', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-08-15', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen2-5-14b-instruct': { displayName: 'Qwen2.5 14B Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2024-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen2-5-32b-instruct': { displayName: 'Qwen2.5 32B Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2024-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen2-5-72b-instruct': { displayName: 'Qwen2.5 72B Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2024-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen2-5-7b-instruct': { displayName: 'Qwen2.5 7B Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2024-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen2-5-omni-7b': { displayName: 'Qwen2.5-Omni 7B', + description: 'Qwen omni model for text, vision, audio, and multimodal agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 32768, maxOutputTokens: 2048, + knowledgeCutoff: '2024-04', + lastUpdated: '2024-12', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text', 'audio'] }, }, 'qwen2-5-vl-72b-instruct': { displayName: 'Qwen2.5-VL 72B Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2024-09', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen2-5-vl-7b-instruct': { displayName: 'Qwen2.5-VL 7B Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2024-09', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3-14b': { displayName: 'Qwen3 14B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-235b-a22b': { displayName: 'Qwen3 235B-A22B', + description: 'Large open Qwen MoE for multilingual reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-32b': { displayName: 'Qwen3 32B', + description: 'Dense open Qwen model for self-hosted chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-8b': { displayName: 'Qwen3 8B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-asr-flash': { displayName: 'Qwen3-ASR Flash', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 53248, maxOutputTokens: 4096, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-09-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'qwen3-coder-30b-a3b-instruct': { displayName: 'Qwen3-Coder 30B-A3B Instruct', + description: 'Smaller Qwen coder for efficient local agents and repo-level fixes', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-coder-480b-a35b-instruct': { displayName: 'Qwen3-Coder 480B-A35B Instruct', + description: 'Open Qwen coding heavyweight for repository reasoning and agentic engineering', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-coder-flash': { displayName: 'Qwen3 Coder Flash', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-coder-plus': { displayName: 'Qwen3 Coder Plus', + description: 'Hosted Qwen coder for software agents, repo edits, and long-context code', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-livetranslate-flash-realtime': { displayName: 'Qwen3-LiveTranslate Flash Realtime', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 53248, maxOutputTokens: 4096, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-09-22', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image', 'audio'], output: ['text', 'audio'] }, }, 'qwen3-max': { displayName: 'Qwen3 Max', + description: 'Flagship Qwen3 model for coding agents, complex reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-next-80b-a3b-instruct': { displayName: 'Qwen3-Next 80B-A3B Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-next-80b-a3b-thinking': { displayName: 'Qwen3-Next 80B-A3B (Thinking)', + description: 'Efficient Qwen thinking model for local reasoning, math, and coding agents', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-omni-flash': { displayName: 'Qwen3-Omni Flash', + description: 'Qwen omni model for text, vision, audio, and multimodal agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 65536, maxOutputTokens: 16384, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-09-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text', 'audio'] }, }, 'qwen3-omni-flash-realtime': { displayName: 'Qwen3-Omni Flash Realtime', + description: 'Qwen omni model for text, vision, audio, and multimodal agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 65536, maxOutputTokens: 16384, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-09-15', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text', 'audio'] }, }, 'qwen3-vl-235b-a22b': { displayName: 'Qwen3-VL 235B-A22B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3-vl-30b-a3b': { displayName: 'Qwen3-VL 30B-A3B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3-vl-plus': { displayName: 'Qwen3-VL Plus', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.5-122b-a10b': { displayName: 'Qwen3.5 122B-A10B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'qwen3.5-27b': { displayName: 'Qwen3.5 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'qwen3.5-35b-a3b': { displayName: 'Qwen3.5 35B-A3B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'qwen3.5-397b-a17b': { displayName: 'Qwen3.5 397B-A17B', + description: 'Large open Qwen multimodal MoE for visual agents and long technical tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'qwen3.5-plus': { displayName: 'Qwen3.5 Plus', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-27b': { displayName: 'Qwen3.6 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'qwen3.6-35b-a3b': { displayName: 'Qwen3.6 35B-A3B', + description: 'Open multimodal Qwen MoE for local agents that need vision, audio, and code', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'qwen3.6-flash': { displayName: 'Qwen3.6 Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 1000000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-max-preview': { displayName: 'Qwen3.6 Max Preview', + description: 'Flagship Qwen model for complex reasoning, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-04-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.6-plus': { displayName: 'Qwen3.6 Plus', + description: 'Earlier Qwen multimodal workhorse for million-token agent and document tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.7-max': { displayName: 'Qwen3.7 Max', + description: + 'Qwen frontier model tuned for agent frameworks, coding assistants, and long tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 1000000, maxOutputTokens: 65536, + lastUpdated: '2026-05-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.7-plus': { displayName: 'Qwen3.7 Plus', + description: 'Multimodal Qwen workhorse for long-context agents, visual inputs, and coding', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-06-04', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, + 'qwen3.8-max': { + displayName: 'Qwen3.8 Max', + description: + '2.4-trillion-parameter MoE flagship for coding, professional work, multimodal understanding, and long-horizon agentic workflows', + lifecycle: 'active', + docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', + contextWindow: 1000000, + maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-08-03', + capabilities: { vision: true, reasoning: true, functionCalling: true }, + thinkingOptions: { efforts: ['low', 'medium', 'xhigh'], toggle: true }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, + }, 'qwq-plus': { displayName: 'QwQ Plus', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04', + lastUpdated: '2025-03-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, @@ -683,116 +888,150 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'alibaba-coding-plan-cn': { 'glm-4.7': { displayName: 'GLM-4.7', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 202752, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5': { displayName: 'GLM-5', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 202752, maxOutputTokens: 16384, + lastUpdated: '2026-02-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2.5': { displayName: 'Kimi K2.5', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'MiniMax-M2.5': { displayName: 'MiniMax-M2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 196608, maxOutputTokens: 24576, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-coder-next': { displayName: 'Qwen3 Coder Next', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-03', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-coder-plus': { displayName: 'Qwen3 Coder Plus', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-max-2026-01-23': { displayName: 'Qwen3 Max', + description: 'Flagship Qwen model for complex reasoning, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-01-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.5-plus': { displayName: 'Qwen3.5 Plus', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-flash': { displayName: 'Qwen3.6 Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-plus': { displayName: 'Qwen3.6 Plus', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.7-max': { displayName: 'Qwen3.7 Max', + description: + 'Qwen frontier model tuned for agent frameworks, coding assistants, and long tasks', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 65536, + lastUpdated: '2026-05-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.7-plus': { displayName: 'Qwen3.7 Plus', + description: 'Multimodal Qwen workhorse for long-context agents, visual inputs, and coding', lifecycle: 'active', docsUrl: 'https://help.aliyun.com/zh/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-06-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -801,116 +1040,151 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'alibaba-coding-plan': { 'glm-4.7': { displayName: 'GLM-4.7', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 202752, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5': { displayName: 'GLM-5', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 202752, maxOutputTokens: 16384, + lastUpdated: '2026-02-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2.5': { displayName: 'Kimi K2.5', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'MiniMax-M2.5': { displayName: 'MiniMax-M2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 196608, + inputLimit: 196601, maxOutputTokens: 24576, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-coder-next': { displayName: 'Qwen3 Coder Next', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-03', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-coder-plus': { displayName: 'Qwen3 Coder Plus', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-max-2026-01-23': { displayName: 'Qwen3 Max', + description: 'Flagship Qwen model for complex reasoning, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-01-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.5-plus': { displayName: 'Qwen3.5 Plus', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-flash': { displayName: 'Qwen3.6 Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-plus': { displayName: 'Qwen3.6 Plus', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.7-max': { displayName: 'Qwen3.7 Max', + description: + 'Qwen frontier model tuned for agent frameworks, coding assistants, and long tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 65536, + lastUpdated: '2026-05-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.7-plus': { displayName: 'Qwen3.7 Plus', + description: 'Multimodal Qwen workhorse for long-context agents, visual inputs, and coding', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/coding-plan', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-06-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -919,233 +1193,316 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'alibaba-token-plan-cn': { 'deepseek-v3.2': { displayName: 'DeepSeek V3.2', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-12-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-flash': { displayName: 'DeepSeek V4 Flash', + description: 'Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-flash-0731': { displayName: 'DeepSeek V4 Flash 0731', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5': { displayName: 'GLM-5', + description: + 'General GLM flagship for coding, analysis, and tool-heavy engineering workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 202752, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.1': { displayName: 'GLM-5.1', + description: + 'Strong GLM coding model for agentic engineering, terminals, and repository generation', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 202752, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'happyhorse-1.1-i2v': { displayName: 'HappyHorse 1.1 Image-to-Video', + description: 'Video model for image-to-video generation', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-17', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['image', 'text'], output: [] }, }, 'happyhorse-1.1-r2v': { displayName: 'HappyHorse 1.1 Reference-to-Video', + description: 'Video model for reference-guided video generation', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-17', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['image', 'text'], output: [] }, }, 'happyhorse-1.1-t2v': { displayName: 'HappyHorse 1.1 Text-to-Video', + description: 'Video model for prompt-driven text-to-video generation', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-17', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'kimi-k2.5': { displayName: 'Kimi K2.5', + description: + 'Earlier Kimi frontier model for long-context agents, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 262144, maxOutputTokens: 98304, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.6': { displayName: 'Kimi K2.6', + description: 'Multimodal Kimi workhorse for agent loops, coding tasks, and visual context', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.7-code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'MiniMax-M2.5': { displayName: 'MiniMax-M2.5', + description: 'Prior MiniMax coding model for agent workflows, office edits, and automation', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 196608, + inputLimit: 196601, maxOutputTokens: 32768, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen-image-2.0': { displayName: 'Qwen Image 2.0', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 8192, maxOutputTokens: 0, + lastUpdated: '2026-03-03', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'qwen-image-2.0-pro': { displayName: 'Qwen Image 2.0 Pro', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 8192, maxOutputTokens: 0, + lastUpdated: '2026-03-03', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'qwen3.6-flash': { displayName: 'Qwen3.6 Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-plus': { displayName: 'Qwen3.6 Plus', + description: 'Earlier Qwen multimodal workhorse for million-token agent and document tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.7-max': { displayName: 'Qwen3.7 Max', + description: + 'Qwen frontier model tuned for agent frameworks, coding assistants, and long tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-05-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.7-plus': { displayName: 'Qwen3.7 Plus', + description: 'Multimodal Qwen workhorse for long-context agents, visual inputs, and coding', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-06-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.8-max': { displayName: 'Qwen3.8 Max', + description: + '2.4-trillion-parameter MoE flagship for coding, professional work, multimodal understanding, and long-horizon agentic workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-08-03', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'xhigh'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'qwen3.8-max-preview': { displayName: 'Qwen3.8 Max Preview', - lifecycle: 'active', + description: + 'Preview Qwen flagship for million-token multimodal reasoning and long-horizon agentic workflows', + lifecycle: 'beta', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'wan2.7-image': { displayName: 'Wan2.7 Image', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 8192, maxOutputTokens: 0, + lastUpdated: '2026-05-29', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'wan2.7-image-pro': { displayName: 'Wan2.7 Image Pro', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview', contextWindow: 8192, maxOutputTokens: 0, + lastUpdated: '2026-05-29', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, @@ -1153,233 +1510,316 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'alibaba-token-plan': { 'deepseek-v3.2': { displayName: 'DeepSeek V3.2', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-12-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-flash': { displayName: 'DeepSeek V4 Flash', + description: 'Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-flash-0731': { displayName: 'DeepSeek V4 Flash 0731', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5': { displayName: 'GLM-5', + description: + 'General GLM flagship for coding, analysis, and tool-heavy engineering workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 202752, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.1': { displayName: 'GLM-5.1', + description: + 'Strong GLM coding model for agentic engineering, terminals, and repository generation', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 202752, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'happyhorse-1.1-i2v': { displayName: 'HappyHorse 1.1 Image-to-Video', + description: 'Video model for image-to-video generation', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-17', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['image', 'text'], output: [] }, }, 'happyhorse-1.1-r2v': { displayName: 'HappyHorse 1.1 Reference-to-Video', + description: 'Video model for reference-guided video generation', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-17', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['image', 'text'], output: [] }, }, 'happyhorse-1.1-t2v': { displayName: 'HappyHorse 1.1 Text-to-Video', + description: 'Video model for prompt-driven text-to-video generation', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-17', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'kimi-k2.5': { displayName: 'Kimi K2.5', + description: + 'Earlier Kimi frontier model for long-context agents, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 262144, maxOutputTokens: 98304, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.6': { displayName: 'Kimi K2.6', + description: 'Multimodal Kimi workhorse for agent loops, coding tasks, and visual context', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.7-code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'MiniMax-M2.5': { displayName: 'MiniMax-M2.5', + description: 'Prior MiniMax coding model for agent workflows, office edits, and automation', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 196608, + inputLimit: 196601, maxOutputTokens: 32768, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen-image-2.0': { displayName: 'Qwen Image 2.0', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 8192, maxOutputTokens: 0, + lastUpdated: '2026-03-03', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'qwen-image-2.0-pro': { displayName: 'Qwen Image 2.0 Pro', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 8192, maxOutputTokens: 0, + lastUpdated: '2026-03-03', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'qwen3.6-flash': { displayName: 'Qwen3.6 Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-plus': { displayName: 'Qwen3.6 Plus', + description: 'Earlier Qwen multimodal workhorse for million-token agent and document tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.7-max': { displayName: 'Qwen3.7 Max', + description: + 'Qwen frontier model tuned for agent frameworks, coding assistants, and long tasks', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-05-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.7-plus': { displayName: 'Qwen3.7 Plus', + description: 'Multimodal Qwen workhorse for long-context agents, visual inputs, and coding', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-06-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.8-max': { displayName: 'Qwen3.8 Max', + description: + '2.4-trillion-parameter MoE flagship for coding, professional work, multimodal understanding, and long-horizon agentic workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-08-03', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'xhigh'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'qwen3.8-max-preview': { displayName: 'Qwen3.8 Max Preview', - lifecycle: 'active', + description: + 'Preview Qwen flagship for million-token multimodal reasoning and long-horizon agentic workflows', + lifecycle: 'beta', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'wan2.7-image': { displayName: 'Wan2.7 Image', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 8192, maxOutputTokens: 0, + lastUpdated: '2026-05-29', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'wan2.7-image-pro': { displayName: 'Wan2.7 Image Pro', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/token-plan-overview', contextWindow: 8192, maxOutputTokens: 0, + lastUpdated: '2026-05-29', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, @@ -1387,30 +1827,39 @@ export const GENERATED_MODELS_DEV_METADATA: Record< cerebras: { 'gemma-4-31b': { displayName: 'Gemma 4 31B IT', - lifecycle: 'active', + description: 'Largest Gemma 4 instruction model for open, self-hosted chat and reasoning', + lifecycle: 'beta', docsUrl: 'https://inference-docs.cerebras.ai/models/overview', contextWindow: 131072, maxOutputTokens: 40960, + structuredOutput: true, + lastUpdated: '2026-07-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-oss-120b': { displayName: 'GPT OSS 120B', + description: 'Open GPT reasoning model for self-hosted agents and controllable deployments', lifecycle: 'active', docsUrl: 'https://inference-docs.cerebras.ai/models/overview', contextWindow: 131072, maxOutputTokens: 40960, + structuredOutput: true, + lastUpdated: '2026-06-10', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-glm-4.7': { displayName: 'Z.AI GLM-4.7', - lifecycle: 'active', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', + lifecycle: 'beta', docsUrl: 'https://inference-docs.cerebras.ai/models/overview', contextWindow: 131072, maxOutputTokens: 40960, + structuredOutput: true, + lastUpdated: '2026-06-10', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none'] }, modalities: { input: ['text'], output: ['text'] }, @@ -1419,129 +1868,175 @@ export const GENERATED_MODELS_DEV_METADATA: Record< cohere: { 'c4ai-aya-expanse-32b': { displayName: 'Aya Expanse 32B', + description: 'Open multilingual model optimized for generation across 23 languages', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 128000, maxOutputTokens: 4000, + lastUpdated: '2024-10-24', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'c4ai-aya-expanse-8b': { displayName: 'Aya Expanse 8B', + description: 'Compact open multilingual model optimized for generation across 23 languages', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 8000, maxOutputTokens: 4000, + lastUpdated: '2024-10-24', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'c4ai-aya-vision-32b': { displayName: 'Aya Vision 32B', + description: + 'Open multilingual vision model for OCR, visual reasoning, and image question answering', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 16000, maxOutputTokens: 4000, + lastUpdated: '2025-05-14', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'c4ai-aya-vision-8b': { displayName: 'Aya Vision 8B', + description: 'Compact open multilingual vision model for OCR and visual question answering', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 16000, maxOutputTokens: 4000, + lastUpdated: '2025-05-14', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'command-a-03-2025': { displayName: 'Command A', + description: 'Cohere command model for multilingual enterprise agents, tools, and chat', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 256000, maxOutputTokens: 8000, + knowledgeCutoff: '2024-06-01', + lastUpdated: '2025-03-13', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'command-a-plus-05-2026': { displayName: 'Command A Plus', + description: + "Cohere's stronger command model for multilingual agents and enterprise workflows", lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-04-01', + structuredOutput: true, + lastUpdated: '2026-06-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'command-a-reasoning-08-2025': { displayName: 'Command A Reasoning', + description: + 'Cohere reasoning model for multilingual enterprise agents, tools, and complex workflows', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 256000, maxOutputTokens: 32000, + knowledgeCutoff: '2024-06-01', + lastUpdated: '2025-08-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'command-a-translate-08-2025': { displayName: 'Command A Translate', + description: + 'Translation model for multilingual conversion, localization, and cross-language workflows', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 8000, maxOutputTokens: 8000, + knowledgeCutoff: '2024-06-01', + lastUpdated: '2025-08-28', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'command-a-vision-07-2025': { displayName: 'Command A Vision', + description: + 'Cohere vision model for multilingual document analysis, OCR, and image understanding', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 128000, maxOutputTokens: 8000, + knowledgeCutoff: '2024-06-01', + lastUpdated: '2025-07-31', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'command-r-08-2024': { displayName: 'Command R', + description: 'Cohere retrieval model for long-context chat and enterprise RAG workflows', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 128000, maxOutputTokens: 4000, + knowledgeCutoff: '2024-06-01', + lastUpdated: '2024-08-30', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'command-r-plus-08-2024': { displayName: 'Command R+', + description: "Cohere's RAG workhorse for long-context enterprise search and tool use", lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 128000, maxOutputTokens: 4000, + knowledgeCutoff: '2024-06-01', + lastUpdated: '2024-08-30', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'command-r7b-12-2024': { displayName: 'Command R7B', + description: 'Cohere retrieval model for long-context chat and enterprise RAG workflows', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 128000, maxOutputTokens: 4000, + knowledgeCutoff: '2024-06-01', + lastUpdated: '2024-12-02', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'command-r7b-arabic-02-2025': { displayName: 'Command R7B Arabic', + description: + 'Open Command R model optimized for Arabic enterprise chat, RAG, and cultural knowledge', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 128000, maxOutputTokens: 4000, + knowledgeCutoff: '2024-06-01', + lastUpdated: '2025-02-27', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'north-mini-code-1-0': { displayName: 'North Mini Code', + description: 'Cohere coding model for practical software engineering and agentic edits', lifecycle: 'active', docsUrl: 'https://docs.cohere.com/docs/models', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-09-23', + structuredOutput: true, + lastUpdated: '2026-06-09', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, modalities: { input: ['text'], output: ['text'] }, @@ -1550,205 +2045,285 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'cloudflare-workers-ai': { '@cf/aisingapore/gemma-sea-lion-v4-27b-it': { displayName: 'Gemma Sea Lion V4 27B It', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 128000, maxOutputTokens: 128000, + structuredOutput: false, + lastUpdated: '2025-09-23', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/deepseek-ai/deepseek-r1-distill-qwen-32b': { displayName: 'Deepseek R1 Distill Qwen 32B', + description: + 'Classic open reasoning model for transparent math, coding, and deliberate problem solving', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 80000, maxOutputTokens: 80000, + knowledgeCutoff: '2024-07', + structuredOutput: false, + lastUpdated: '2025-05-29', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/google/gemma-4-26b-a4b-it': { displayName: 'Gemma 4 26B A4B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 256000, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, '@cf/ibm-granite/granite-4.0-h-micro': { displayName: 'Granite 4.0 H Micro', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 131000, maxOutputTokens: 131000, + structuredOutput: false, + lastUpdated: '2025-10-07', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/meta/llama-3.1-8b-instruct-fp8': { displayName: 'Llama 3.1 8B Instruct fp8', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 32000, maxOutputTokens: 32000, + structuredOutput: false, + lastUpdated: '2024-07-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/meta/llama-3.2-11b-vision-instruct': { displayName: 'Llama 3.2 11B Vision Instruct', + description: 'Open Llama multimodal model for image understanding and text reasoning', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 128000, maxOutputTokens: 128000, + structuredOutput: false, + lastUpdated: '2024-09-25', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, '@cf/meta/llama-3.2-1b-instruct': { displayName: 'Llama 3.2 1B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 60000, maxOutputTokens: 60000, + knowledgeCutoff: '2023-12', + structuredOutput: false, + lastUpdated: '2024-09-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/meta/llama-3.2-3b-instruct': { displayName: 'Llama 3.2 3B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 80000, maxOutputTokens: 80000, + knowledgeCutoff: '2023-12', + structuredOutput: false, + lastUpdated: '2024-09-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/meta/llama-3.3-70b-instruct-fp8-fast': { displayName: 'Llama 3.3 70B Instruct fp8 Fast', + description: 'Popular open Llama workhorse for multilingual chat, coding, and self-hosting', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 24000, maxOutputTokens: 24000, + knowledgeCutoff: '2023-12', + structuredOutput: false, + lastUpdated: '2024-12-06', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/meta/llama-4-scout-17b-16e-instruct': { displayName: 'Llama 4 Scout 17B 16E Instruct', + description: 'Open Llama with long-context vision for efficient multimodal agents', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 131000, maxOutputTokens: 16384, + knowledgeCutoff: '2024-08', + structuredOutput: false, + lastUpdated: '2025-04-05', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, '@cf/meta/llama-guard-3-8b': { displayName: 'Llama Guard 3 8B', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 131072, maxOutputTokens: 131072, + structuredOutput: false, + lastUpdated: '2025-01-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/mistralai/mistral-small-3.1-24b-instruct': { displayName: 'Mistral Small 3.1 24B Instruct', + description: 'Efficient Mistral model for fast chat, extraction, and production assistants', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 128000, maxOutputTokens: 128000, + structuredOutput: false, + lastUpdated: '2025-03-18', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/moonshotai/kimi-k2.6': { displayName: 'Kimi K2.6', + description: 'Multimodal Kimi workhorse for agent loops, coding tasks, and visual context', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 262144, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, '@cf/moonshotai/kimi-k2.7-code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, '@cf/nvidia/nemotron-3-120b-a12b': { displayName: 'Nemotron 3 Super 120B', + description: + 'Nemotron middle tier for collaborative agents and high-volume reasoning workloads', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 256000, maxOutputTokens: 256000, + structuredOutput: true, + lastUpdated: '2026-03-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/openai/gpt-oss-120b': { displayName: 'GPT OSS 120B', + description: 'Open GPT reasoning model for self-hosted agents and controllable deployments', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 128000, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/openai/gpt-oss-20b': { displayName: 'GPT OSS 20B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 128000, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/qwen/qwen2.5-coder-32b-instruct': { displayName: 'Qwen2.5 Coder 32B Instruct', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 32768, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2025-02-27', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/qwen/qwen3-30b-a3b-fp8': { displayName: 'Qwen3 30B A3b fp8', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 32768, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2025-04-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/qwen/qwq-32b': { displayName: 'Qwq 32B', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 24000, maxOutputTokens: 24000, + structuredOutput: false, + lastUpdated: '2025-03-05', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/zai-org/glm-4.7-flash': { displayName: 'GLM-4.7-Flash', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, '@cf/zai-org/glm-5.2': { displayName: 'Glm 5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://developers.cloudflare.com/workers-ai/models/', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, @@ -1757,453 +2332,664 @@ export const GENERATED_MODELS_DEV_METADATA: Record< deepinfra: { 'deepseek-ai/DeepSeek-R1-0528': { displayName: 'DeepSeek-R1-0528', + description: 'DeepSeek reasoning model for multi-step analysis, math, coding, and tools', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 163840, maxOutputTokens: 64000, + knowledgeCutoff: '2024-07', + structuredOutput: true, + lastUpdated: '2025-05-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, + 'deepseek-ai/DeepSeek-V3': { + displayName: 'DeepSeek-V3', + description: 'Open DeepSeek MoE chat model for coding, math, and general reasoning', + lifecycle: 'active', + docsUrl: 'https://deepinfra.com/models', + contextWindow: 163840, + maxOutputTokens: 8192, + structuredOutput: true, + lastUpdated: '2024-12-26', + capabilities: { vision: false, reasoning: false, functionCalling: true }, + modalities: { input: ['text'], output: ['text'] }, + }, + 'deepseek-ai/DeepSeek-V3.1': { + displayName: 'DeepSeek-V3.1', + description: 'Hybrid-reasoning DeepSeek model with thinking and non-thinking modes', + lifecycle: 'active', + docsUrl: 'https://deepinfra.com/models', + contextWindow: 163840, + maxOutputTokens: 8192, + structuredOutput: true, + lastUpdated: '2025-08-21', + capabilities: { vision: false, reasoning: true, functionCalling: true }, + thinkingOptions: { toggle: true }, + modalities: { input: ['text'], output: ['text'] }, + }, 'deepseek-ai/DeepSeek-V3.2': { displayName: 'DeepSeek-V3.2', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 163840, maxOutputTokens: 64000, + knowledgeCutoff: '2024-12', + structuredOutput: true, + lastUpdated: '2025-12-02', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V4-Flash': { displayName: 'DeepSeek V4 Flash', + description: 'Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 1048576, maxOutputTokens: 16384, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V4-Flash-0731': { displayName: 'DeepSeek V4 Flash 0731', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 1048576, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V4-Pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 1048576, maxOutputTokens: 16384, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemma-4-26B-A4B-it': { displayName: 'Gemma 4 26B A4B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/gemma-4-31B-it': { displayName: 'Gemma 4 31B IT', + description: 'Largest Gemma 4 instruction model for open, self-hosted chat and reasoning', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/gemma-4-E4B-it': { displayName: 'Gemma 4 E4B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 131072, maxOutputTokens: 8192, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'meta-llama/Llama-3.3-70B-Instruct-Turbo': { displayName: 'Llama 3.3 70B Turbo', + description: 'Compact Llama instruction model for fast chat and local deployment', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 131072, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2024-12-06', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8': { displayName: 'Llama 4 Maverick 17B FP8', + description: 'Open multimodal Llama model for strong reasoning and fast responses', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 1048576, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2025-04-05', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta-llama/Llama-4-Scout-17B-16E-Instruct': { displayName: 'Llama 4 Scout 17B', + description: 'Open multimodal Llama model for long-context analysis and efficient agents', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 327680, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2025-04-05', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M2.5': { displayName: 'MiniMax M2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'deprecated', docsUrl: 'https://deepinfra.com/models', contextWindow: 196608, maxOutputTokens: 131072, + knowledgeCutoff: '2025-06', + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M2.7': { displayName: 'MiniMax-M2.7', + description: + 'Open MiniMax flagship for coding agents, office automation, and complex environments', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 196608, maxOutputTokens: 131072, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M3': { displayName: 'MiniMax-M3', + description: + 'MiniMax multimodal model for long-context coding, perception, and agent planning', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 524288, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-06-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K2.5': { displayName: 'Kimi K2.5', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K2.6': { displayName: 'Kimi K2.6', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 16384, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K2.7-Code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K3': { displayName: 'Kimi K3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/Llama-3.3-Nemotron-Super-49B-v1.5': { displayName: 'Llama 3.3 Nemotron Super 49B v1.5', + description: 'Nemotron model for efficient reasoning, coding, and specialized AI agents', lifecycle: 'deprecated', docsUrl: 'https://deepinfra.com/models', contextWindow: 131072, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2025-07-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/Nemotron-3-Nano-30B-A3B': { displayName: 'Nemotron 3 Nano 30B A3B', + description: 'Small Nemotron 3 MoE for efficient coding, math, and long-context agents', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 262144, + lastUpdated: '2025-12-15', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning': { displayName: 'Nemotron 3 Nano Omni 30B A3B Reasoning', + description: 'Open Nemotron omni model combining reasoning with text, vision, and audio', lifecycle: 'deprecated', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'openai/gpt-oss-120b': { displayName: 'GPT OSS 120B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 131072, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-20b': { displayName: 'GPT OSS 20B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 131072, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, + 'Qwen/Qwen3-235B-A22B-Instruct-2507': { + displayName: 'Qwen3 235B-A22B Instruct 2507', + description: + 'Updated large open Qwen3 MoE instruct model for multilingual chat, coding, and tool use', + lifecycle: 'active', + docsUrl: 'https://deepinfra.com/models', + contextWindow: 262144, + maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2025-07-21', + capabilities: { vision: false, reasoning: false, functionCalling: true }, + modalities: { input: ['text'], output: ['text'] }, + }, 'Qwen/Qwen3-32B': { displayName: 'Qwen3 32B', + description: 'Dense open Qwen model for self-hosted chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 40960, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo': { displayName: 'Qwen3 Coder 480B A35B Instruct Turbo', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 66536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Max': { displayName: 'Qwen3 Max', + description: 'Flagship Qwen3 model for coding agents, complex reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 256000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-09-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Next-80B-A3B-Instruct': { displayName: 'Qwen3-Next 80B-A3B Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.5-122B-A10B': { displayName: 'Qwen3.5 122B-A10B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'Qwen/Qwen3.5-27B': { displayName: 'Qwen3.5 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'Qwen/Qwen3.5-35B-A3B': { displayName: 'Qwen 3.5 35B A3B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 81920, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.5-397B-A17B': { displayName: 'Qwen 3.5 397B A17B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 81920, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.5-9B': { displayName: 'Qwen3.5 9B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.6-27B': { displayName: 'Qwen3.6 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'Qwen/Qwen3.6-35B-A3B': { displayName: 'Qwen3.6 35B A3B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 81920, + structuredOutput: true, + lastUpdated: '2026-04-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.7-Max': { displayName: 'Qwen3.7 Max', + description: + 'Qwen frontier model tuned for agent frameworks, coding assistants, and long tasks', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 256000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-05-21', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.8-Max': { displayName: 'Qwen3.8 Max', + description: + '2.4-trillion-parameter MoE flagship for coding, professional work, multimodal understanding, and long-horizon agentic workflows', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 256000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-08-03', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'stepfun-ai/Step-3.7-Flash': { displayName: 'Step 3.7 Flash', + description: 'Newer StepFun flash model for faster agents, coding, and multimodal prompts', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 256000, + knowledgeCutoff: '2026-03-01', + lastUpdated: '2026-05-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'tencent/Hy3': { displayName: 'Hy3', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 64000, + structuredOutput: true, + lastUpdated: '2026-07-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'thinkingmachines/Inkling': { displayName: 'Inkling', + description: + 'Multimodal MoE reasoning model (975B total, 41B active) for text, image, and audio', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 524288, maxOutputTokens: 1048576, + lastUpdated: '2026-07-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'thinkingmachines/Inkling-Small': { displayName: 'Inkling Small', + description: + 'Multimodal MoE reasoning model (276B total, 12B active) for text, image, and audio', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 524288, maxOutputTokens: 1048576, + lastUpdated: '2026-07-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'XiaomiMiMo/MiMo-V2.5': { displayName: 'MiMo-V2.5', + description: 'Open MiMo model for multimodal coding agents and long-context automation', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 262144, maxOutputTokens: 16384, + knowledgeCutoff: '2024-12', + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'XiaomiMiMo/MiMo-V2.5-Pro': { displayName: 'MiMo-V2.5-Pro', + description: 'Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 1048576, maxOutputTokens: 16384, + knowledgeCutoff: '2024-12', + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'audio'], output: ['text'] }, }, 'zai-org/GLM-4.6': { displayName: 'GLM-4.6', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 202752, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-09-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-4.7': { displayName: 'GLM-4.7', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 202752, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-4.7-Flash': { displayName: 'GLM-4.7-Flash', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 202752, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5': { displayName: 'GLM-5', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 202752, maxOutputTokens: 16384, + knowledgeCutoff: '2025-12', + structuredOutput: true, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5.1': { displayName: 'GLM-5.1', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 202752, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://deepinfra.com/models', contextWindow: 1048576, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, @@ -2212,38 +2998,53 @@ export const GENERATED_MODELS_DEV_METADATA: Record< deepseek: { 'deepseek-chat': { displayName: 'DeepSeek Chat', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://api-docs.deepseek.com/quick_start/pricing', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-09', + lastUpdated: '2026-02-28', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-reasoner': { displayName: 'DeepSeek Reasoner', + description: 'DeepSeek reasoning model for multi-step analysis, math, coding, and tools', lifecycle: 'active', docsUrl: 'https://api-docs.deepseek.com/quick_start/pricing', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-09', + lastUpdated: '2026-02-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-flash': { displayName: 'DeepSeek V4 Flash', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://api-docs.deepseek.com/quick_start/pricing', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, - thinkingOptions: { efforts: ['high', 'max'], toggle: true }, + thinkingOptions: { efforts: ['low', 'high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://api-docs.deepseek.com/quick_start/pricing', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, @@ -2252,170 +3053,217 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'fireworks-ai': { 'accounts/fireworks/models/deepseek-v4-flash': { displayName: 'DeepSeek V4 Flash', + description: 'Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-06-16', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'accounts/fireworks/models/deepseek-v4-flash-0731': { displayName: 'DeepSeek V4 Flash 0731', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'accounts/fireworks/models/deepseek-v4-pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'accounts/fireworks/models/glm-5p2': { displayName: 'GLM 5.2', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 1048575, maxOutputTokens: 131072, + lastUpdated: '2026-06-16', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'accounts/fireworks/models/gpt-oss-120b': { displayName: 'GPT OSS 120B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 131072, maxOutputTokens: 32768, + lastUpdated: '2026-06-16', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'accounts/fireworks/models/gpt-oss-20b': { displayName: 'GPT OSS 20B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 131072, maxOutputTokens: 32768, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'accounts/fireworks/models/kimi-k2p6': { displayName: 'Kimi K2.6', + description: 'Kimi reasoning model for long-horizon research, planning, and tool use', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 262000, maxOutputTokens: 262000, + lastUpdated: '2026-04-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'accounts/fireworks/models/kimi-k2p7-code': { displayName: 'Kimi K2.7 Code', + description: 'Kimi coding model for software agents, refactors, and repository reasoning', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 262000, maxOutputTokens: 262000, + lastUpdated: '2026-06-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'accounts/fireworks/models/kimi-k3': { displayName: 'Kimi K3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'accounts/fireworks/models/minimax-m2p7': { displayName: 'MiniMax-M2.7', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 196608, maxOutputTokens: 196608, + lastUpdated: '2026-04-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'accounts/fireworks/models/minimax-m3': { displayName: 'MiniMax-M3', + description: 'MiniMax multimodal coding model for long-context reasoning and agent tasks', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 512000, maxOutputTokens: 512000, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'accounts/fireworks/models/qwen3p7-plus': { displayName: 'Qwen 3.7 Plus', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 262144, maxOutputTokens: 65536, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'accounts/fireworks/routers/glm-5p2-fast': { displayName: 'GLM 5.2 Fast', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 1048575, maxOutputTokens: 131072, + lastUpdated: '2026-06-26', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'accounts/fireworks/routers/kimi-k2p6-fast': { displayName: 'Kimi K2.6 Fast', + description: 'Kimi reasoning model for long-horizon research, planning, and tool use', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 262000, maxOutputTokens: 262000, + lastUpdated: '2026-06-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'accounts/fireworks/routers/kimi-k2p6-turbo': { displayName: 'Kimi K2.6 Turbo', + description: 'Kimi reasoning model for long-horizon research, planning, and tool use', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 262000, maxOutputTokens: 262000, + lastUpdated: '2026-04-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'accounts/fireworks/routers/kimi-k2p7-code-fast': { displayName: 'Kimi K2.7 Code Fast', + description: 'Kimi coding model for software agents, refactors, and repository reasoning', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 262000, maxOutputTokens: 262000, + lastUpdated: '2026-06-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'accounts/fireworks/routers/kimi-k3-fast': { displayName: 'Kimi K3 Fast', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://fireworks.ai/docs/', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -2424,281 +3272,437 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'github-copilot': { 'claude-fable-5': { displayName: 'Claude Fable 5', + description: 'Claude model for creative writing, analysis, and controlled agent workflows', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-06-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-haiku-4.5': { displayName: 'Claude Haiku 4.5 (latest)', + description: 'Fast Claude lane for lightweight agents, office tasks, and responsive chat', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 200000, + inputLimit: 136000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-02-28', + lastUpdated: '2025-10-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4.5': { displayName: 'Claude Opus 4.5 (latest)', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 200000, + inputLimit: 168000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-11-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4.6': { displayName: 'Claude Opus 4.6', + description: 'High-end Claude for difficult coding, planning, and slower expert reasoning', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 200000, + inputLimit: 168000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-05-31', + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4.7': { displayName: 'Claude Opus 4.7', + description: 'Stronger Opus tier for advanced software work and high-stakes reasoning', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 200000, + inputLimit: 168000, maxOutputTokens: 32000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4.8': { displayName: 'Claude Opus 4.8', + description: + 'Top Claude Opus tier for the hardest reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 200000, + inputLimit: 168000, maxOutputTokens: 64000, + knowledgeCutoff: '2026-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-5': { displayName: 'Claude Opus 5', + description: 'Strongest Claude Opus model for coding, agents, and professional work', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 1000000, + inputLimit: 936000, maxOutputTokens: 64000, + knowledgeCutoff: '2026-05', + structuredOutput: true, + lastUpdated: '2026-07-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-4': { displayName: 'Claude Sonnet 4 (latest)', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 216000, + inputLimit: 128000, maxOutputTokens: 16000, + knowledgeCutoff: '2025-03-31', + lastUpdated: '2025-05-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-4.5': { displayName: 'Claude Sonnet 4.5 (latest)', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 200000, + inputLimit: 168000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-07-31', + lastUpdated: '2025-09-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-4.6': { displayName: 'Claude Sonnet 4.6', + description: + 'Claude workhorse for coding agents, careful analysis, and production cost control', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 200000, + inputLimit: 168000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-5': { displayName: 'Claude Sonnet 5', + description: 'Everyday Claude agent model for coding, planning, browsing, and general work', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gemini-3.1-pro-preview': { displayName: 'Gemini 3.1 Pro Preview', + description: 'Reasoning-first Gemini preview for agentic coding and complex problem solving', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 1000000, + inputLimit: 936000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-02-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.5-flash': { displayName: 'Gemini 3.5 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 200000, + inputLimit: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.6-flash': { displayName: 'Gemini 3.6 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 1000000, + inputLimit: 936000, maxOutputTokens: 64000, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-4.1': { displayName: 'GPT-4.1', + description: + 'Long-lived GPT workhorse for coding, instruction following, and production apps', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 128000, + inputLimit: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-04-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5-mini': { displayName: 'GPT-5 Mini', + description: 'Small GPT-5 for responsive agents, coding help, and everyday automation', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 264000, + inputLimit: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2024-05-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.2': { displayName: 'GPT-5.2', + description: + 'Reliable GPT generation for broad coding, writing, and tool-assisted product work', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.2-codex': { displayName: 'GPT-5.2 Codex', + description: + 'Code-specialist GPT for repository edits, reviews, and long-running software agents', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.3-codex': { displayName: 'GPT-5.3 Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-02-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.4': { displayName: 'GPT-5.4', + description: 'Agent-ready GPT for coding and computer-use workflows at a lower cost', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.4-mini': { displayName: 'GPT-5.4 mini', + description: 'Strong small GPT for coding subagents, quick tool use, and high-volume work', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.4-nano': { displayName: 'GPT-5.4 nano', + description: 'Cheapest GPT-5.4 lane for simple routing, extraction, and bulk automation', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.5': { displayName: 'GPT-5.5', + description: 'Default frontier GPT for coding, computer use, research, and knowledge work', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.6-luna': { displayName: 'GPT-5.6 Luna', + description: 'Cost-efficient GPT-5.6 model for fast, high-volume workloads', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.6-sol': { displayName: 'GPT-5.6 Sol', + description: + 'Frontier GPT-5.6 model for complex professional work, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.6-terra': { displayName: 'GPT-5.6 Terra', + description: 'Balanced GPT-5.6 model for capable, cost-efficient everyday work', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'grok-4.5': { displayName: 'Grok 4.5', + description: + "xAI's latest Grok for chat, coding, agentic tools, and lower hallucination risk", lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 500000, + inputLimit: 372000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-07-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.7-code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 256000, + inputLimit: 224000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, + 'kimi-k3': { + displayName: 'Kimi K3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', + lifecycle: 'active', + docsUrl: 'https://docs.github.com/en/copilot', + contextWindow: 1048576, + maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', + capabilities: { vision: true, reasoning: true, functionCalling: true }, + thinkingOptions: { efforts: ['low', 'high', 'max'] }, + modalities: { input: ['text', 'image'], output: ['text'] }, + }, 'mai-code-1-flash-picker': { displayName: 'MAI-Code-1-Flash', + description: + 'Microsoft coding model built for fast, efficient assistance in everyday developer workflows', lifecycle: 'active', docsUrl: 'https://docs.github.com/en/copilot', contextWindow: 256000, + inputLimit: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12', + structuredOutput: true, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, @@ -2707,391 +3711,542 @@ export const GENERATED_MODELS_DEV_METADATA: Record< google: { 'deep-research-max-preview-04-2026': { displayName: 'Deep Research Max Preview (Apr-21-2026)', + description: + 'Maximum-comprehensiveness agentic researcher for multi-step investigation, synthesis, and cited reports', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text', 'image'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text', 'image'] }, }, 'deep-research-preview-04-2026': { displayName: 'Deep Research Preview (Apr-21-2026)', + description: 'Agentic model for autonomous multi-step research, synthesis, and cited reports', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text', 'image'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text', 'image'] }, }, 'gemini-2.0-flash': { displayName: 'Gemini 2.0 Flash', + description: 'Earlier Gemini Flash workhorse for responsive multimodal apps and tool use', lifecycle: 'deprecated', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 8192, + knowledgeCutoff: '2024-06', + structuredOutput: true, + lastUpdated: '2024-12-11', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-2.0-flash-lite': { displayName: 'Gemini 2.0 Flash-Lite', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 8192, + knowledgeCutoff: '2024-06', + structuredOutput: true, + lastUpdated: '2024-12-11', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-2.5-computer-use-preview-10-2025': { displayName: 'Gemini 2.5 Computer Use Preview 10-2025', + description: 'Specialized Gemini 2.5 model for browser-control agents that automate UI tasks', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-10-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gemini-2.5-flash': { displayName: 'Gemini 2.5 Flash', + description: 'Fast Gemini workhorse for multimodal apps where latency and price matter', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-2.5-flash-image': { displayName: 'Nano Banana', + description: + 'Nano Banana image model for fast generation, edits, and character-consistent assets', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2024-06', + lastUpdated: '2025-08-26', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gemini-2.5-flash-lite': { displayName: 'Gemini 2.5 Flash-Lite', + description: 'Lean Gemini 2.5 lane for cheap multimodal traffic and quick agents', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-2.5-flash-preview-tts': { displayName: 'Gemini 2.5 Flash Preview TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 8192, maxOutputTokens: 16384, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-05-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'gemini-2.5-pro': { displayName: 'Gemini 2.5 Pro', + description: "Google's proven reasoning model for coding, math, and multimodal analysis", lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-2.5-pro-preview-tts': { displayName: 'Gemini 2.5 Pro Preview TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 8192, maxOutputTokens: 16384, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-05-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'gemini-3-flash-preview': { displayName: 'Gemini 3 Flash Preview', + description: + 'New Gemini flash lane bringing frontier-style multimodal reasoning to cheaper runs', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-12-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3-pro-image': { displayName: 'Nano Banana Pro', + description: 'Nano Banana Pro for higher-fidelity image generation and design-heavy edits', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['low', 'high'] }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gemini-3-pro-image-preview': { displayName: 'Nano Banana Pro', + description: 'Nano Banana Pro for higher-fidelity image generation and design-heavy edits', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-11-20', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gemini-3-pro-preview': { displayName: 'Gemini 3 Pro Preview', + description: + 'Preview Gemini flagship for complex reasoning, coding, and rich multimodal prompts', lifecycle: 'deprecated', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-11-18', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.1-flash-image': { displayName: 'Nano Banana 2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text', 'image'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text', 'image'] }, }, 'gemini-3.1-flash-image-preview': { displayName: 'Nano Banana 2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-26', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text', 'image'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text', 'image'] }, }, 'gemini-3.1-flash-lite': { displayName: 'Gemini 3.1 Flash Lite', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.1-flash-lite-image': { displayName: 'Nano Banana 2 Lite', + description: + 'Fastest, most cost-efficient Gemini image model for high-volume 1K generation and editing', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: false, + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'high'] }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gemini-3.1-flash-lite-preview': { displayName: 'Gemini 3.1 Flash Lite Preview', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-03-03', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.1-flash-live-preview': { displayName: 'Gemini 3.1 Flash Live Preview', + description: + 'High-quality, low-latency Live API model for real-time dialogue and voice-first AI applications', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: false, + lastUpdated: '2026-03-26', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image', 'audio'], output: ['text', 'audio'] }, }, 'gemini-3.1-flash-tts-preview': { displayName: 'Gemini 3.1 Flash TTS Preview', + description: 'Low-latency speech generation with steerable prompts and expressive audio tags', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 8192, maxOutputTokens: 16384, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-15', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'gemini-3.1-pro-preview': { displayName: 'Gemini 3.1 Pro Preview', + description: 'Reasoning-first Gemini preview for agentic coding and complex problem solving', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-02-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.1-pro-preview-customtools': { displayName: 'Gemini 3.1 Pro Preview Custom Tools', + description: 'Advanced Gemini model for complex reasoning, coding, and multimodal analysis', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-02-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.5-flash': { displayName: 'Gemini 3.5 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.5-flash-lite': { displayName: 'Gemini 3.5 Flash Lite', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.5-live-translate-preview': { displayName: 'Gemini 3.5 Live Translate Preview', + description: + 'Low-latency audio-to-audio model for real-time speech translation across 70+ languages', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 16384, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-06-09', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['audio', 'text'] }, }, 'gemini-3.6-flash': { displayName: 'Gemini 3.6 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-embedding-001': { displayName: 'Gemini Embedding 001', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 2048, maxOutputTokens: 1, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-05-20', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'gemini-embedding-2': { displayName: 'Gemini Embedding 2', + description: + 'Multimodal embedding model mapping text, images, video, audio, and PDFs into a unified embedding space', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 8192, maxOutputTokens: 1, + knowledgeCutoff: '2025-11', + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: false, functionCalling: false }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-flash-latest': { displayName: 'Gemini Flash Latest', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-flash-lite-latest': { displayName: 'Gemini Flash-Lite Latest', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-omni-flash-preview': { displayName: 'Gemini Omni Flash Preview', + description: + 'Video generation and editing model for fast, conversational text- and image-to-video workflows', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'gemini-robotics-er-1.6-preview': { displayName: 'Gemini Robotics-ER 1.6 Preview', + description: + 'Vision-language model for embodied reasoning: spatial understanding, task planning, and physical-world agentic robotics', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-14', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'gemma-4-26b-a4b-it': { displayName: 'Gemma 4 26B A4B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gemma-4-31b-it': { displayName: 'Gemma 4 31B IT', + description: 'Largest Gemma 4 instruction model for open, self-hosted chat and reasoning', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'lyria-3-clip-preview': { displayName: 'Lyria 3 Clip Preview', + description: + 'Music generation model for short 30-second clips, loops, and previews from text or image prompts', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + structuredOutput: false, + lastUpdated: '2026-03-25', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'audio'] }, }, 'lyria-3-pro-preview': { displayName: 'Lyria 3 Pro Preview', + description: + 'Music generation model for full-length songs from text or images with vocals and structure', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + structuredOutput: false, + lastUpdated: '2026-03-25', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'audio'] }, }, 'veo-3.1-fast-generate-preview': { displayName: 'Veo 3.1 fast', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 480, maxOutputTokens: 8192, + lastUpdated: '2026-01-01', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'veo-3.1-generate-preview': { displayName: 'Veo 3.1', - lifecycle: 'active', + description: 'Video model for prompt-guided generation, editing, and motion workflows', + lifecycle: 'beta', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 480, maxOutputTokens: 8192, + lastUpdated: '2026-01', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'veo-3.1-lite-generate-preview': { displayName: 'Veo 3.1 lite', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 480, maxOutputTokens: 8192, + lastUpdated: '2026-03-31', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, @@ -3099,532 +4254,723 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'gemini-cli': { 'deep-research-max-preview-04-2026': { displayName: 'Deep Research Max Preview (Apr-21-2026)', + description: + 'Maximum-comprehensiveness agentic researcher for multi-step investigation, synthesis, and cited reports', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text', 'image'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text', 'image'] }, }, 'deep-research-preview-04-2026': { displayName: 'Deep Research Preview (Apr-21-2026)', + description: 'Agentic model for autonomous multi-step research, synthesis, and cited reports', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text', 'image'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text', 'image'] }, }, 'gemini-2.0-flash': { displayName: 'Gemini 2.0 Flash', + description: 'Earlier Gemini Flash workhorse for responsive multimodal apps and tool use', lifecycle: 'deprecated', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 8192, + knowledgeCutoff: '2024-06', + structuredOutput: true, + lastUpdated: '2024-12-11', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-2.0-flash-lite': { displayName: 'Gemini 2.0 Flash-Lite', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 8192, + knowledgeCutoff: '2024-06', + structuredOutput: true, + lastUpdated: '2024-12-11', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-2.5-computer-use-preview-10-2025': { displayName: 'Gemini 2.5 Computer Use Preview 10-2025', + description: 'Specialized Gemini 2.5 model for browser-control agents that automate UI tasks', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-10-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gemini-2.5-flash': { displayName: 'Gemini 2.5 Flash', + description: 'Fast Gemini workhorse for multimodal apps where latency and price matter', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-2.5-flash-image': { displayName: 'Nano Banana', + description: + 'Nano Banana image model for fast generation, edits, and character-consistent assets', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2024-06', + lastUpdated: '2025-08-26', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gemini-2.5-flash-lite': { displayName: 'Gemini 2.5 Flash-Lite', + description: 'Lean Gemini 2.5 lane for cheap multimodal traffic and quick agents', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-2.5-flash-preview-tts': { displayName: 'Gemini 2.5 Flash Preview TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 8192, maxOutputTokens: 16384, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-05-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'gemini-2.5-pro': { displayName: 'Gemini 2.5 Pro', + description: "Google's proven reasoning model for coding, math, and multimodal analysis", lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-2.5-pro-preview-tts': { displayName: 'Gemini 2.5 Pro Preview TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 8192, maxOutputTokens: 16384, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-05-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'gemini-3-flash-preview': { displayName: 'Gemini 3 Flash Preview', + description: + 'New Gemini flash lane bringing frontier-style multimodal reasoning to cheaper runs', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-12-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3-pro-image': { displayName: 'Nano Banana Pro', + description: 'Nano Banana Pro for higher-fidelity image generation and design-heavy edits', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['low', 'high'] }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gemini-3-pro-image-preview': { displayName: 'Nano Banana Pro', + description: 'Nano Banana Pro for higher-fidelity image generation and design-heavy edits', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-11-20', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gemini-3-pro-preview': { displayName: 'Gemini 3 Pro Preview', + description: + 'Preview Gemini flagship for complex reasoning, coding, and rich multimodal prompts', lifecycle: 'deprecated', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-11-18', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.1-flash-image': { displayName: 'Nano Banana 2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text', 'image'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text', 'image'] }, }, 'gemini-3.1-flash-image-preview': { displayName: 'Nano Banana 2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-26', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text', 'image'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text', 'image'] }, }, 'gemini-3.1-flash-lite': { displayName: 'Gemini 3.1 Flash Lite', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.1-flash-lite-image': { displayName: 'Nano Banana 2 Lite', + description: + 'Fastest, most cost-efficient Gemini image model for high-volume 1K generation and editing', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: false, + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'high'] }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gemini-3.1-flash-lite-preview': { displayName: 'Gemini 3.1 Flash Lite Preview', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-03-03', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.1-flash-live-preview': { displayName: 'Gemini 3.1 Flash Live Preview', + description: + 'High-quality, low-latency Live API model for real-time dialogue and voice-first AI applications', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: false, + lastUpdated: '2026-03-26', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image', 'audio'], output: ['text', 'audio'] }, }, 'gemini-3.1-flash-tts-preview': { displayName: 'Gemini 3.1 Flash TTS Preview', + description: 'Low-latency speech generation with steerable prompts and expressive audio tags', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 8192, maxOutputTokens: 16384, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-15', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'gemini-3.1-pro-preview': { displayName: 'Gemini 3.1 Pro Preview', + description: 'Reasoning-first Gemini preview for agentic coding and complex problem solving', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-02-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.1-pro-preview-customtools': { displayName: 'Gemini 3.1 Pro Preview Custom Tools', + description: 'Advanced Gemini model for complex reasoning, coding, and multimodal analysis', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-02-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.5-flash': { displayName: 'Gemini 3.5 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.5-flash-lite': { displayName: 'Gemini 3.5 Flash Lite', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.5-live-translate-preview': { displayName: 'Gemini 3.5 Live Translate Preview', + description: + 'Low-latency audio-to-audio model for real-time speech translation across 70+ languages', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 16384, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-06-09', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['audio', 'text'] }, }, 'gemini-3.6-flash': { displayName: 'Gemini 3.6 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-embedding-001': { displayName: 'Gemini Embedding 001', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 2048, maxOutputTokens: 1, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-05-20', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'gemini-embedding-2': { displayName: 'Gemini Embedding 2', + description: + 'Multimodal embedding model mapping text, images, video, audio, and PDFs into a unified embedding space', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 8192, maxOutputTokens: 1, + knowledgeCutoff: '2025-11', + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: false, functionCalling: false }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-flash-latest': { displayName: 'Gemini Flash Latest', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-flash-lite-latest': { displayName: 'Gemini Flash-Lite Latest', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-omni-flash-preview': { displayName: 'Gemini Omni Flash Preview', + description: + 'Video generation and editing model for fast, conversational text- and image-to-video workflows', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'gemini-robotics-er-1.6-preview': { displayName: 'Gemini Robotics-ER 1.6 Preview', + description: + 'Vision-language model for embodied reasoning: spatial understanding, task planning, and physical-world agentic robotics', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-14', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'gemma-4-26b-a4b-it': { displayName: 'Gemma 4 26B A4B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gemma-4-31b-it': { displayName: 'Gemma 4 31B IT', + description: 'Largest Gemma 4 instruction model for open, self-hosted chat and reasoning', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'lyria-3-clip-preview': { displayName: 'Lyria 3 Clip Preview', + description: + 'Music generation model for short 30-second clips, loops, and previews from text or image prompts', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + structuredOutput: false, + lastUpdated: '2026-03-25', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'audio'] }, }, 'lyria-3-pro-preview': { displayName: 'Lyria 3 Pro Preview', + description: + 'Music generation model for full-length songs from text or images with vocals and structure', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 1048576, maxOutputTokens: 65536, + structuredOutput: false, + lastUpdated: '2026-03-25', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'audio'] }, }, 'veo-3.1-fast-generate-preview': { displayName: 'Veo 3.1 fast', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 480, maxOutputTokens: 8192, + lastUpdated: '2026-01-01', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'veo-3.1-generate-preview': { displayName: 'Veo 3.1', - lifecycle: 'active', + description: 'Video model for prompt-guided generation, editing, and motion workflows', + lifecycle: 'beta', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 480, maxOutputTokens: 8192, + lastUpdated: '2026-01', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'veo-3.1-lite-generate-preview': { displayName: 'Veo 3.1 lite', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://ai.google.dev/gemini-api/docs/models', contextWindow: 480, maxOutputTokens: 8192, + lastUpdated: '2026-03-31', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, }, groq: { + 'allam-2-7b': { + displayName: 'ALLaM-2-7b', + description: 'ALLaM-2-7b instruction tuned model by SDAIA', + lifecycle: 'active', + docsUrl: 'https://console.groq.com/docs/models', + contextWindow: 4096, + maxOutputTokens: 4096, + lastUpdated: '2025-01-23', + capabilities: { vision: false, reasoning: false, functionCalling: false }, + modalities: { input: ['text'], output: ['text'] }, + }, 'canopylabs/orpheus-arabic-saudi': { displayName: 'Canopy Labs Orpheus Arabic Saudi', - lifecycle: 'active', + description: 'Speech generation model for controllable voice, narration, and audio delivery', + lifecycle: 'beta', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 4000, maxOutputTokens: 50000, + lastUpdated: '2025-12-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'canopylabs/orpheus-v1-english': { displayName: 'Canopy Labs Orpheus V1 English', - lifecycle: 'active', + description: 'Speech generation model for controllable voice, narration, and audio delivery', + lifecycle: 'beta', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 4000, maxOutputTokens: 50000, + lastUpdated: '2025-12-19', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'groq/compound': { displayName: 'Compound', + description: 'General-purpose chat model for instruction following, writing, and analysis', lifecycle: 'active', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 131072, maxOutputTokens: 8192, + lastUpdated: '2025-09-04', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'groq/compound-mini': { displayName: 'Compound Mini', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 131072, maxOutputTokens: 8192, + lastUpdated: '2025-09-04', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'llama-3.1-8b-instant': { displayName: 'Llama 3.1 8B', + description: 'Compact Llama instruction model for fast chat and local deployment', lifecycle: 'active', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2023-12', + lastUpdated: '2024-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'llama-3.3-70b-versatile': { displayName: 'Llama 3.3 70B', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2023-12', + lastUpdated: '2024-12-06', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, - 'meta-llama/llama-4-scout-17b-16e-instruct': { - displayName: 'Llama 4 Scout 17B 16E', - lifecycle: 'active', - docsUrl: 'https://console.groq.com/docs/models', - contextWindow: 131072, - maxOutputTokens: 8192, - capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, - }, 'meta-llama/llama-prompt-guard-2-22m': { displayName: 'Llama Prompt Guard 2 22M', - lifecycle: 'active', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', + lifecycle: 'beta', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 512, maxOutputTokens: 512, + lastUpdated: '2025-05-29', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'meta-llama/llama-prompt-guard-2-86m': { displayName: 'Prompt Guard 2 86M', - lifecycle: 'active', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', + lifecycle: 'beta', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 512, maxOutputTokens: 512, + lastUpdated: '2025-05-29', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-120b': { displayName: 'GPT OSS 120B', + description: 'Open GPT reasoning model for self-hosted agents and controllable deployments', lifecycle: 'active', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2025-10-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-20b': { displayName: 'GPT OSS 20B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2025-09-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-safeguard-20b': { displayName: 'Safety GPT OSS 20B', - lifecycle: 'active', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', + lifecycle: 'beta', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 131072, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-06-29', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, - 'qwen/qwen3-32b': { - displayName: 'Qwen3-32B', + 'qwen/qwen3.6-27b': { + displayName: 'Qwen3.6 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 131072, - maxOutputTokens: 40960, - capabilities: { vision: false, reasoning: true, functionCalling: true }, + maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-04-22', + capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'default'] }, - modalities: { input: ['text'], output: ['text'] }, + modalities: { input: ['text', 'image'], output: ['text'] }, }, 'whisper-large-v3': { displayName: 'Whisper', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'whisper-large-v3-turbo': { displayName: 'Whisper Large V3 Turbo', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://console.groq.com/docs/models', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2024-10-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, @@ -3632,525 +4978,746 @@ export const GENERATED_MODELS_DEV_METADATA: Record< huggingface: { 'deepseek-ai/DeepSeek-R1': { displayName: 'DeepSeek-R1', + description: + 'Classic open reasoning model for transparent math, coding, and deliberate problem solving', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 64000, maxOutputTokens: 32768, + knowledgeCutoff: '2024-07', + structuredOutput: true, + lastUpdated: '2025-05-29', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-R1-0528': { displayName: 'DeepSeek-R1-0528', + description: 'DeepSeek reasoning model for multi-step analysis, math, coding, and tools', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 163840, maxOutputTokens: 163840, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-05-28', + capabilities: { vision: false, reasoning: true, functionCalling: true }, + modalities: { input: ['text'], output: ['text'] }, + }, + 'deepseek-ai/DeepSeek-V3': { + displayName: 'DeepSeek-V3', + description: 'DeepSeek chat model for instruction following, coding, and analysis', + lifecycle: 'active', + docsUrl: 'https://huggingface.co/docs/inference-providers', + contextWindow: 64000, + maxOutputTokens: 8192, + structuredOutput: true, + lastUpdated: '2024-12-26', + capabilities: { vision: false, reasoning: false, functionCalling: true }, + modalities: { input: ['text'], output: ['text'] }, + }, + 'deepseek-ai/DeepSeek-V3.1': { + displayName: 'DeepSeek-V3.1', + description: 'DeepSeek chat model for instruction following, coding, and analysis', + lifecycle: 'active', + docsUrl: 'https://huggingface.co/docs/inference-providers', + contextWindow: 131072, + maxOutputTokens: 8192, + structuredOutput: true, + lastUpdated: '2025-08-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V3.2': { displayName: 'DeepSeek-V3.2', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 163840, maxOutputTokens: 65536, + knowledgeCutoff: '2024-07', + lastUpdated: '2025-12-01', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V4-Flash': { displayName: 'DeepSeek V4 Flash', + description: 'Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 1048576, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V4-Flash-0731': { displayName: 'DeepSeek V4 Flash 0731', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 1048576, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V4-Pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 1048576, maxOutputTokens: 393216, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemma-4-26B-A4B-it': { displayName: 'Gemma 4 26B A4B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/gemma-4-31B-it': { displayName: 'Gemma 4 31B IT', + description: 'Largest Gemma 4 instruction model for open, self-hosted chat and reasoning', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta-llama/Llama-3.3-70B-Instruct': { displayName: 'Llama-3.3-70B-Instruct', + description: 'Popular open Llama workhorse for multilingual chat, coding, and self-hosting', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 131072, maxOutputTokens: 4096, + knowledgeCutoff: '2023-12', + structuredOutput: true, + lastUpdated: '2024-12-06', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M2': { displayName: 'MiniMax-M2', + description: 'Efficient open MiniMax model built for coding agents and tool-heavy workflows', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 204800, maxOutputTokens: 128000, + lastUpdated: '2025-10-27', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M2.1': { displayName: 'MiniMax-M2.1', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-10', + lastUpdated: '2025-12-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M2.5': { displayName: 'MiniMax-M2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M2.7': { displayName: 'MiniMax-M2.7', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 204800, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M3': { displayName: 'MiniMax-M3', + description: + 'MiniMax multimodal model for long-context coding, perception, and agent planning', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 524288, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-06-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K2-Instruct': { displayName: 'Kimi-K2-Instruct', + description: 'Kimi model for long-context chat, coding, and agentic reasoning', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-07-14', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/Kimi-K2-Instruct-0905': { displayName: 'Kimi-K2-Instruct-0905', + description: 'Kimi model for long-context chat, coding, and agentic reasoning', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 16384, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-09-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/Kimi-K2-Thinking': { displayName: 'Kimi-K2-Thinking', + description: 'Kimi reasoning model for long-horizon research, planning, and tool use', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-08', + lastUpdated: '2025-11-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/Kimi-K2.5': { displayName: 'Kimi-K2.5', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-01-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K2.6': { displayName: 'Kimi-K2.6', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K2.7-Code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K3': { displayName: 'Kimi K3', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-oss-120b': { displayName: 'GPT OSS 120B', + description: 'Open GPT reasoning model for self-hosted agents and controllable deployments', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 131072, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-20b': { displayName: 'GPT OSS 20B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 131072, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-235B-A22B': { displayName: 'Qwen3 235B-A22B', + description: 'Large open Qwen MoE for multilingual reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 40960, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, + 'Qwen/Qwen3-235B-A22B-Instruct-2507': { + displayName: 'Qwen3 235B-A22B Instruct 2507', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', + lifecycle: 'active', + docsUrl: 'https://huggingface.co/docs/inference-providers', + contextWindow: 262144, + maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2025-07-21', + capabilities: { vision: false, reasoning: false, functionCalling: true }, + modalities: { input: ['text'], output: ['text'] }, + }, 'Qwen/Qwen3-235B-A22B-Thinking-2507': { displayName: 'Qwen3-235B-A22B-Thinking-2507', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-32B': { displayName: 'Qwen3 32B', + description: 'Dense open Qwen model for self-hosted chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Coder-30B-A3B-Instruct': { displayName: 'Qwen3-Coder 30B-A3B Instruct', + description: 'Smaller Qwen coder for efficient local agents and repo-level fixes', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Coder-480B-A35B-Instruct': { displayName: 'Qwen3-Coder-480B-A35B-Instruct', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 66536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Coder-Next': { displayName: 'Qwen3-Coder-Next', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-03', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Embedding-4B': { displayName: 'Qwen 3 Embedding 4B', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 32000, maxOutputTokens: 2048, + knowledgeCutoff: '2024-12', + lastUpdated: '2025-01-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Embedding-8B': { displayName: 'Qwen 3 Embedding 8B', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 32000, maxOutputTokens: 4096, + knowledgeCutoff: '2024-12', + lastUpdated: '2025-01-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Next-80B-A3B-Instruct': { displayName: 'Qwen3-Next-80B-A3B-Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 66536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-11', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Next-80B-A3B-Thinking': { displayName: 'Qwen3-Next-80B-A3B-Thinking', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-11', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.5-122B-A10B': { displayName: 'Qwen3.5 122B-A10B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.5-27B': { displayName: 'Qwen3.5 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.5-35B-A3B': { displayName: 'Qwen3.5 35B-A3B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.5-397B-A17B': { displayName: 'Qwen3.5-397B-A17B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.5-9B': { displayName: 'Qwen3.5 9B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.6-27B': { displayName: 'Qwen3.6 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.6-35B-A3B': { displayName: 'Qwen3.6 35B-A3B', + description: 'Open multimodal Qwen MoE for local agents that need vision, audio, and code', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'stepfun-ai/Step-3.5-Flash': { displayName: 'Step 3.5 Flash', + description: 'StepFun flash lane for quick multimodal reasoning and coding assistance', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'stepfun-ai/Step-3.7-Flash': { displayName: 'Step 3.7 Flash', + description: 'Newer StepFun flash model for faster agents, coding, and multimodal prompts', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 256000, + knowledgeCutoff: '2026-03-01', + lastUpdated: '2026-05-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'tencent/Hy3': { displayName: 'Hy3', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 64000, + structuredOutput: true, + lastUpdated: '2026-07-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'thinkingmachines/Inkling': { displayName: 'Inkling', + description: 'Multimodal model for analyzing text, images, documents, and rich media', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 1048576, maxOutputTokens: 1048576, + structuredOutput: true, + lastUpdated: '2026-07-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'thinkingmachines/Inkling-Small': { displayName: 'Inkling Small', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 524288, maxOutputTokens: 1048576, + lastUpdated: '2026-07-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'XiaomiMiMo/MiMo-V2-Flash': { displayName: 'MiMo-V2-Flash', + description: 'MiMo flash model for fast multimodal assistance and agent workflows', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 4096, + knowledgeCutoff: '2024-12', + lastUpdated: '2025-12-16', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'XiaomiMiMo/MiMo-V2.5': { displayName: 'MiMo-V2.5', + description: 'MiMo model for long-context reasoning, perception, and agentic tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'XiaomiMiMo/MiMo-V2.5-Pro': { displayName: 'MiMo-V2.5-Pro', + description: 'Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-4.5': { displayName: 'GLM-4.5', + description: 'Hybrid-reasoning GLM release that made the 4.5 line broadly useful', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 131072, maxOutputTokens: 98304, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-4.5-Air': { displayName: 'GLM-4.5-Air', + description: 'Lighter GLM-4.5 variant for fast coding assistance and cheaper agents', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 131072, maxOutputTokens: 98304, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-4.5V': { displayName: 'GLM-4.5V', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 65536, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-08-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'zai-org/GLM-4.6': { displayName: 'GLM-4.6', + description: 'Late GLM-4 workhorse for coding agents, reasoning, and structured tasks', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-4.7': { displayName: 'GLM-4.7', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-4.7-Flash': { displayName: 'GLM-4.7-Flash', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 200000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-08-08', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5': { displayName: 'GLM-5', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 202752, maxOutputTokens: 131072, + lastUpdated: '2026-02-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5.1': { displayName: 'GLM-5.1', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 202752, maxOutputTokens: 131072, + lastUpdated: '2026-04-03', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://huggingface.co/docs/inference-providers', contextWindow: 262144, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, @@ -4158,39 +5725,56 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'kimi-coding-plan': { k3: { displayName: 'Kimi K3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'k3-256k': { displayName: 'Kimi K3-256K', + description: + '256K-context version of Kimi K3, reducing token consumption for shorter coding sessions', lifecycle: 'active', docsUrl: 'https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html', contextWindow: 262144, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-for-coding': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-for-coding-highspeed': { displayName: 'Kimi For Coding HighSpeed', + description: 'Lower-latency Kimi Code variant for interactive edits and coding-agent loops', lifecycle: 'active', docsUrl: 'https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, @@ -4198,64 +5782,80 @@ export const GENERATED_MODELS_DEV_METADATA: Record< MiniMax: { 'MiniMax-M2': { displayName: 'MiniMax-M2', + description: 'Efficient open MiniMax model built for coding agents and tool-heavy workflows', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/guides/quickstart', contextWindow: 196608, maxOutputTokens: 128000, + lastUpdated: '2025-10-27', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.1': { displayName: 'MiniMax-M2.1', + description: 'Earlier MiniMax agent model for practical coding and productivity tasks', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/guides/quickstart', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2025-12-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.5': { displayName: 'MiniMax-M2.5', + description: 'Prior MiniMax coding model for agent workflows, office edits, and automation', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/guides/quickstart', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.5-highspeed': { displayName: 'MiniMax-M2.5-highspeed', + description: 'High-speed MiniMax model for low-latency coding and agent workflows', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/guides/quickstart', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.7': { displayName: 'MiniMax-M2.7', + description: + 'Open MiniMax flagship for coding agents, office automation, and complex environments', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/guides/quickstart', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.7-highspeed': { displayName: 'MiniMax-M2.7-highspeed', + description: 'Low-latency M2.7 variant for interactive coding plans and agent loops', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/guides/quickstart', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M3': { displayName: 'MiniMax-M3', + description: + 'MiniMax multimodal model for long-context coding, perception, and agent planning', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/guides/quickstart', contextWindow: 1000000, maxOutputTokens: 128000, + lastUpdated: '2026-06-25', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -4264,64 +5864,78 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'MiniMax-cn': { 'MiniMax-M2': { displayName: 'MiniMax-M2', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://platform.minimaxi.com/docs/guides/quickstart', contextWindow: 196608, maxOutputTokens: 128000, + lastUpdated: '2025-10-27', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.1': { displayName: 'MiniMax-M2.1', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://platform.minimaxi.com/docs/guides/quickstart', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2025-12-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.5': { displayName: 'MiniMax-M2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://platform.minimaxi.com/docs/guides/quickstart', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.5-highspeed': { displayName: 'MiniMax-M2.5-highspeed', + description: 'High-speed MiniMax model for low-latency coding and agent workflows', lifecycle: 'active', docsUrl: 'https://platform.minimaxi.com/docs/guides/quickstart', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.7': { displayName: 'MiniMax-M2.7', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://platform.minimaxi.com/docs/guides/quickstart', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.7-highspeed': { displayName: 'MiniMax-M2.7-highspeed', + description: 'High-speed MiniMax model for low-latency coding and agent workflows', lifecycle: 'active', docsUrl: 'https://platform.minimaxi.com/docs/guides/quickstart', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M3': { displayName: 'MiniMax-M3', + description: 'MiniMax multimodal coding model for long-context reasoning and agent tasks', lifecycle: 'active', docsUrl: 'https://platform.minimaxi.com/docs/guides/quickstart', contextWindow: 1000000, maxOutputTokens: 128000, + lastUpdated: '2026-06-25', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -4330,64 +5944,78 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'minimax-coding-plan': { 'MiniMax-M2': { displayName: 'MiniMax-M2', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/token-plan/intro', contextWindow: 196608, maxOutputTokens: 128000, + lastUpdated: '2025-10-27', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.1': { displayName: 'MiniMax-M2.1', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/token-plan/intro', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2025-12-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.5': { displayName: 'MiniMax-M2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/token-plan/intro', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.5-highspeed': { displayName: 'MiniMax-M2.5-highspeed', + description: 'High-speed MiniMax model for low-latency coding and agent workflows', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/token-plan/intro', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.7': { displayName: 'MiniMax-M2.7', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/token-plan/intro', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M2.7-highspeed': { displayName: 'MiniMax-M2.7-highspeed', + description: 'High-speed MiniMax model for low-latency coding and agent workflows', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/token-plan/intro', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMax-M3': { displayName: 'MiniMax-M3', + description: 'MiniMax multimodal coding model for long-context reasoning and agent tasks', lifecycle: 'active', docsUrl: 'https://platform.minimax.io/docs/token-plan/intro', contextWindow: 1000000, maxOutputTokens: 128000, + lastUpdated: '2026-06-25', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -4396,302 +6024,402 @@ export const GENERATED_MODELS_DEV_METADATA: Record< mistral: { 'codestral-latest': { displayName: 'Codestral (latest)', + description: 'Mistral code model for completions, refactors, and developer IDE workflows', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 256000, maxOutputTokens: 4096, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-01-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'devstral-2512': { displayName: 'Devstral 2', + description: + "Mistral's coding-agent model for repository work, terminal tasks, and software fixes", lifecycle: 'deprecated', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-12', + lastUpdated: '2025-12-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'devstral-latest': { displayName: 'Devstral 2', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-12', + lastUpdated: '2025-12-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'devstral-medium-2507': { displayName: 'Devstral Medium', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-07-10', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'devstral-medium-latest': { displayName: 'Devstral 2 (latest)', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-12', + lastUpdated: '2025-12-02', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'devstral-small-2505': { displayName: 'Devstral Small 2505', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-05-07', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'devstral-small-2507': { displayName: 'Devstral Small', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-07-10', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'labs-devstral-small-2512': { displayName: 'Devstral Small 2', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-12', + lastUpdated: '2025-12-09', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'magistral-medium-latest': { displayName: 'Magistral Medium (latest)', + description: 'Mistral reasoning model for transparent analysis, math, and complex decisions', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2025-06', + lastUpdated: '2025-03-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'magistral-small': { displayName: 'Magistral Small', + description: 'Mistral reasoning model for transparent analysis, math, and complex decisions', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-06', + lastUpdated: '2025-03-17', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'ministral-3b-latest': { displayName: 'Ministral 3B (latest)', + description: + 'Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + lastUpdated: '2024-10-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'ministral-8b-latest': { displayName: 'Ministral 8B (latest)', + description: + 'Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + lastUpdated: '2024-10-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral-embed': { displayName: 'Mistral Embed', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 8000, maxOutputTokens: 3072, + lastUpdated: '2023-12-11', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral-large-2411': { displayName: 'Mistral Large 2.1', + description: 'Flagship Mistral model for advanced reasoning, coding, and multilingual work', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2024-11', + lastUpdated: '2024-11-18', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral-large-2512': { displayName: 'Mistral Large 3', + description: + "Mistral's largest general model for enterprise agents, coding, and multilingual reasoning", lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-11', + lastUpdated: '2025-12-02', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral-large-latest': { displayName: 'Mistral Large (latest)', + description: 'Flagship Mistral model for advanced reasoning, coding, and multilingual work', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-11', + lastUpdated: '2025-12-02', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral-medium-2505': { displayName: 'Mistral Medium 3', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-05-07', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral-medium-2508': { displayName: 'Mistral Medium 3.1', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-08-12', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral-medium-2604': { displayName: 'Mistral Medium 3.5', + description: 'Balanced Mistral model for enterprise assistants, multilingual work, and tools', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral-medium-latest': { displayName: 'Mistral Medium (latest)', + description: 'Balanced Mistral model for enterprise assistants, multilingual work, and tools', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral-nemo': { displayName: 'Mistral Nemo', + description: 'Efficient Mistral-NVIDIA open model for multilingual chat and local deployment', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-07', + lastUpdated: '2024-07-01', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral-small-2506': { displayName: 'Mistral Small 3.2', + description: 'Efficient Mistral model for fast chat, extraction, and production assistants', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2025-03', + lastUpdated: '2025-06-20', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral-small-2603': { displayName: 'Mistral Small 4', + description: 'Fast Mistral production model for chat, extraction, and cost-sensitive agents', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-06', + lastUpdated: '2026-03-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral-small-latest': { displayName: 'Mistral Small (latest)', + description: 'Efficient Mistral model for fast chat, extraction, and production assistants', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-06', + lastUpdated: '2026-03-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'open-mistral-7b': { displayName: 'Mistral 7B', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 8000, maxOutputTokens: 8000, + knowledgeCutoff: '2023-12', + lastUpdated: '2023-09-27', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'open-mistral-nemo': { displayName: 'Open Mistral Nemo', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-07', + lastUpdated: '2024-07-01', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'open-mixtral-8x22b': { displayName: 'Mixtral 8x22B', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 64000, maxOutputTokens: 64000, + knowledgeCutoff: '2024-04', + lastUpdated: '2024-04-17', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'open-mixtral-8x7b': { displayName: 'Mixtral 8x7B', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 32000, maxOutputTokens: 32000, + knowledgeCutoff: '2024-01', + lastUpdated: '2023-12-11', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'pixtral-12b': { displayName: 'Pixtral 12B', + description: 'Mistral vision-language model for image understanding and multimodal chat', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09', + lastUpdated: '2024-09-01', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'pixtral-large-latest': { displayName: 'Pixtral Large (latest)', + description: "Mistral's larger vision model for document-heavy image understanding and chat", lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-11', + lastUpdated: '2024-11-04', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'voxtral-mini-latest': { displayName: 'Voxtral Mini (latest)', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-02-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'voxtral-mini-tts-latest': { displayName: 'Voxtral Mini TTS (latest)', + description: 'Multilingual text-to-speech model with zero-shot voice cloning', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-03-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'voxtral-small-latest': { displayName: 'Voxtral Small (latest)', + description: 'Instruct model with native audio input for speech understanding and tool use', lifecycle: 'active', docsUrl: 'https://docs.mistral.ai/getting-started/models/', contextWindow: 32000, maxOutputTokens: 32000, + lastUpdated: '2025-07-15', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'audio'], output: ['text'] }, }, @@ -4699,93 +6427,132 @@ export const GENERATED_MODELS_DEV_METADATA: Record< moonshot: { 'kimi-k2-0711-preview': { displayName: 'Kimi K2 0711', + description: 'Kimi model for long-context chat, coding, and agentic reasoning', lifecycle: 'active', docsUrl: 'https://platform.moonshot.cn/docs/api/chat', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-07-14', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2-0905-preview': { displayName: 'Kimi K2 0905', + description: 'Kimi model for long-context chat, coding, and agentic reasoning', lifecycle: 'active', docsUrl: 'https://platform.moonshot.cn/docs/api/chat', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2-thinking': { displayName: 'Kimi K2 Thinking', + description: + 'Thinking Kimi model for slower research passes, planning, and hard technical questions', lifecycle: 'active', docsUrl: 'https://platform.moonshot.cn/docs/api/chat', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-08', + lastUpdated: '2025-11-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2-thinking-turbo': { displayName: 'Kimi K2 Thinking Turbo', + description: 'Kimi reasoning model for long-horizon research, planning, and tool use', lifecycle: 'active', docsUrl: 'https://platform.moonshot.cn/docs/api/chat', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-08', + lastUpdated: '2025-11-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2-turbo-preview': { displayName: 'Kimi K2 Turbo', + description: 'Fast Kimi model for responsive chat, coding help, and agent loops', lifecycle: 'active', docsUrl: 'https://platform.moonshot.cn/docs/api/chat', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2.5': { displayName: 'Kimi K2.5', + description: + 'Earlier Kimi frontier model for long-context agents, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://platform.moonshot.cn/docs/api/chat', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.6': { displayName: 'Kimi K2.6', + description: 'Multimodal Kimi workhorse for agent loops, coding tasks, and visual context', lifecycle: 'active', docsUrl: 'https://platform.moonshot.cn/docs/api/chat', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.7-code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://platform.moonshot.cn/docs/api/chat', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.7-code-highspeed': { displayName: 'Kimi K2.7 Code HighSpeed', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://platform.moonshot.cn/docs/api/chat', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k3': { displayName: 'Kimi K3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://platform.moonshot.cn/docs/api/chat', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -4794,905 +6561,1181 @@ export const GENERATED_MODELS_DEV_METADATA: Record< nvidia: { 'abacusai/dracarys-llama-3.1-70b-instruct': { displayName: 'dracarys-llama-3.1-70b-instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-05-22', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'baai/bge-m3': { displayName: 'BGE M3', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 8192, maxOutputTokens: 1024, + lastUpdated: '2026-04-30', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'black-forest-labs/flux_1-kontext-dev': { displayName: 'FLUX.1-Kontext-dev', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 40960, maxOutputTokens: 40960, + lastUpdated: '2025-08-12', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['image'] }, }, 'black-forest-labs/flux_1-schnell': { displayName: 'FLUX.1-schnell', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 77, + inputLimit: 77, maxOutputTokens: 0, + knowledgeCutoff: '2024-07', + structuredOutput: false, + lastUpdated: '2026-02-04', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'black-forest-labs/flux_2-klein-4b': { displayName: 'FLUX.2 Klein 4B', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 40960, maxOutputTokens: 40960, + knowledgeCutoff: '2025-06', + lastUpdated: '2026-01-31', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['image', 'text'], output: ['image'] }, }, 'black-forest-labs/flux.1-dev': { displayName: 'FLUX.1-dev', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 4096, maxOutputTokens: 0, + knowledgeCutoff: '2024-08', + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bytedance/seed-oss-36b-instruct': { displayName: 'ByteDance-Seed/Seed-OSS-36B-Instruct', + description: + 'Tool-capable chat model for instruction following and agentic application workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/deepseek-v4-flash': { displayName: 'DeepSeek V4 Flash', + description: 'Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 1048576, maxOutputTokens: 393216, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/deepseek-v4-pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 1048576, maxOutputTokens: 393216, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemma-2-2b-it': { displayName: 'Gemma 2 2b It', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + structuredOutput: true, + lastUpdated: '2024-07-16', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemma-3-12b-it': { displayName: 'Gemma 3 12B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, maxOutputTokens: 16384, + lastUpdated: '2025-03-12', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/gemma-3-4b-it': { displayName: 'Gemma 3 4B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, maxOutputTokens: 16384, + lastUpdated: '2025-03-12', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/gemma-3n-e2b-it': { displayName: 'Gemma 3n E2b It', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2024-06', + structuredOutput: true, + lastUpdated: '2025-06-12', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/gemma-3n-e4b-it': { displayName: 'Gemma 3n E4b It', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2024-06', + structuredOutput: true, + lastUpdated: '2025-06-03', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/gemma-4-31b-it': { displayName: 'Gemma-4-31B-IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 256000, maxOutputTokens: 16384, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/google-paligemma': { displayName: 'paligemma', + description: 'Gemini multimodal model for text, image, audio, video, and document tasks', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2024-08-26', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta/esm2-650m': { displayName: 'esm2-650m', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-03-10', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'meta/esmfold': { displayName: 'esmfold', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-06-12', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'meta/llama-3.1-70b-instruct': { displayName: 'Llama 3.1 70b Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + structuredOutput: true, + lastUpdated: '2024-07-16', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta/llama-3.1-8b-instruct': { displayName: 'Llama 3.1 8B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 16000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-12', + lastUpdated: '2025-01-01', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta/llama-3.2-11b-vision-instruct': { displayName: 'Llama 3.2 11b Vision Instruct', + description: 'Open Llama multimodal model for image understanding and text reasoning', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-12', + structuredOutput: true, + lastUpdated: '2024-09-18', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta/llama-3.2-1b-instruct': { displayName: 'Llama 3.2 1b Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-12', + structuredOutput: true, + lastUpdated: '2024-09-18', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta/llama-3.2-3b-instruct': { displayName: 'Llama 3.2 3B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 32768, maxOutputTokens: 32000, + structuredOutput: true, + lastUpdated: '2024-09-18', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'meta/llama-3.2-90b-vision-instruct': { displayName: 'Llama-3.2-90B-Vision-Instruct', + description: 'Open Llama multimodal model for image understanding and text reasoning', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + knowledgeCutoff: '2023-12', + lastUpdated: '2024-09-25', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta/llama-3.3-70b-instruct': { displayName: 'Llama 3.3 70b Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + structuredOutput: true, + lastUpdated: '2024-11-26', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta/llama-4-maverick-17b-128e-instruct': { displayName: 'Llama 4 Maverick 17b 128e Instruct', + description: 'Open multimodal Llama model for strong reasoning and fast responses', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2024-02', + structuredOutput: true, + lastUpdated: '2025-04-01', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta/llama-guard-4-12b': { displayName: 'Llama Guard 4 12B', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 16384, + lastUpdated: '2026-04-30', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'microsoft/phi-4-mini-instruct': { displayName: 'Phi-4-Mini', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2024-12', + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'microsoft/phi-4-multimodal-instruct': { displayName: 'Phi 4 Multimodal', + description: 'General-purpose chat model for instruction following, writing, and analysis', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, + inputLimit: 128000, maxOutputTokens: 16384, + structuredOutput: false, + lastUpdated: '2025-07-26', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'minimaxai/minimax-m2.7': { displayName: 'MiniMax-M2.7', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-04-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimaxai/minimax-m3': { displayName: 'MiniMax-M3', + description: + 'MiniMax multimodal model for long-context coding, perception, and agent planning', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 1000000, maxOutputTokens: 16384, + lastUpdated: '2026-06-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/magistral-small-2506': { displayName: 'Magistral Small 2506', + description: 'Mistral reasoning model for transparent analysis, math, and complex decisions', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 32768, + inputLimit: 32768, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2025-09-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'mistralai/ministral-14b-instruct-2512': { displayName: 'Ministral 3 14B Instruct 2512', + description: 'Compact Mistral VLM for chat and instruction-based workloads', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 16384, + lastUpdated: '2025-12-02', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/mistral-7b-instruct-v0.3': { displayName: 'Mistral-7B-Instruct-v0.3', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 65536, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2025-04-01', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistralai/mistral-large-3-675b-instruct-2512': { displayName: 'Mistral Large 3 675B Instruct 2512', + description: 'Flagship Mistral model for advanced reasoning, coding, and multilingual work', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-12-02', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/mistral-medium-3-instruct': { displayName: 'Mistral Medium 3', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, + inputLimit: 131072, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2025-09-25', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/mistral-medium-3.5-128b': { displayName: 'Mistral Medium 3.5', + description: 'Balanced Mistral model for enterprise assistants, multilingual work, and tools', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/mistral-nemotron': { displayName: 'mistral-nemotron', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-06-12', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistralai/mistral-small-4-119b-2603': { displayName: 'mistral-small-4-119b-2603', + description: 'Efficient Mistral model for fast chat, extraction, and production assistants', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + structuredOutput: true, + lastUpdated: '2026-03-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/mixtral-8x22b-instruct': { displayName: 'Mistral: Mixtral 8x22B Instruct', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 65536, maxOutputTokens: 13108, + lastUpdated: '2024-04-17', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistralai/mixtral-8x7b-instruct': { displayName: 'Mistral: Mixtral 8x7B Instruct', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 32768, maxOutputTokens: 16384, + lastUpdated: '2026-03-15', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/kimi-k2-instruct-0905': { displayName: 'Kimi K2 0905', + description: 'Kimi model for long-context chat, coding, and agentic reasoning', lifecycle: 'deprecated', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/kimi-k2.6': { displayName: 'Kimi K2.6', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'deprecated', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/active-speaker-detection': { displayName: 'Active Speaker Detection', + description: 'Nemotron multimodal model for visual reasoning and agentic AI workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 0, maxOutputTokens: 4096, + lastUpdated: '2026-04-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: [], output: ['text'] }, }, 'nvidia/bevformer': { displayName: 'bevformer', + description: 'Nemotron multimodal model for visual reasoning and agentic AI workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-07-20', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: [], output: ['text'] }, }, 'nvidia/cosmos-predict1-5b': { displayName: 'cosmos-predict1-5b', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 0, maxOutputTokens: 4096, + lastUpdated: '2025-03-18', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'nvidia/cosmos-reason2-8b': { displayName: 'Cosmos Reason2 8B', + description: + 'Vision language model for physical-world understanding with structured reasoning on video and images', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, maxOutputTokens: 16384, + lastUpdated: '2025-12-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/cosmos-transfer1-7b': { displayName: 'cosmos-transfer1-7b', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 0, maxOutputTokens: 4096, + lastUpdated: '2025-06-30', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'nvidia/cosmos-transfer2_5-2b': { displayName: 'cosmos-transfer2.5-2b', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 0, maxOutputTokens: 4096, + lastUpdated: '2026-02-26', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'nvidia/gliner-pii': { displayName: 'gliner-pii', + description: 'Nemotron model for efficient reasoning, coding, and specialized AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + lastUpdated: '2026-03-03', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/llama-3_2-nemoretriever-300m-embed-v1': { displayName: 'llama-3_2-nemoretriever-300m-embed-v1', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 32768, maxOutputTokens: 2048, + lastUpdated: '2025-07-24', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/llama-3.1-nemotron-70b-instruct': { displayName: 'Llama 3.1 Nemotron 70B Instruct', + description: 'Nemotron model for efficient reasoning, coding, and specialized AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-04-15', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/llama-3.1-nemotron-nano-8b-v1': { displayName: 'Llama 3.1 Nemotron Nano 8B v1', + description: 'Nemotron model for efficient reasoning, coding, and specialized AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, maxOutputTokens: 16384, + lastUpdated: '2025-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/llama-3.1-nemotron-nano-vl-8b-v1': { displayName: 'Llama 3.1 Nemotron Nano VL 8B v1', + description: 'Nemotron multimodal model for visual reasoning and agentic AI workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 32768, maxOutputTokens: 16384, + lastUpdated: '2025-04-10', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/llama-3.1-nemotron-safety-guard-8b-v3': { displayName: 'llama-3.1-nemotron-safety-guard-8b-v3', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + lastUpdated: '2025-10-28', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/llama-3.1-nemotron-ultra-253b-v1': { displayName: 'Llama 3.1 Nemotron Ultra 253B', + description: 'Flagship Nemotron model for high-throughput reasoning and complex agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 16384, + lastUpdated: '2025-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/llama-3.3-nemotron-super-49b-v1': { displayName: 'Llama 3.3 Nemotron Super 49B v1', + description: 'Nemotron model for efficient reasoning, coding, and specialized AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, maxOutputTokens: 65536, + lastUpdated: '2025-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/llama-3.3-nemotron-super-49b-v1.5': { displayName: 'Llama 3.3 Nemotron Super 49B v1.5', + description: 'Nemotron model for efficient reasoning, coding, and specialized AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, maxOutputTokens: 65536, + lastUpdated: '2025-07-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/llama-nemotron-embed-vl-1b-v2': { displayName: 'llama-nemotron-embed-vl-1b-v2', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 32768, maxOutputTokens: 2048, + lastUpdated: '2026-02-10', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/llama-nemotron-rerank-vl-1b-v2': { displayName: 'llama-nemotron-rerank-vl-1b-v2', + description: + 'Reranking model for improving retrieval quality in search and recommendation systems', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + lastUpdated: '2026-03-31', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/magpie-tts-zeroshot': { displayName: 'magpie-tts-zeroshot', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 0, maxOutputTokens: 4096, + lastUpdated: '2025-06-12', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'audio'], output: ['audio'] }, }, 'nvidia/nemotron-3-content-safety': { displayName: 'nemotron-3-content-safety', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + lastUpdated: '2026-04-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-nano-30b-a3b': { displayName: 'nemotron-3-nano-30b-a3b', + description: 'Small Nemotron 3 MoE for efficient coding, math, and long-context agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-09', + lastUpdated: '2024-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-nano-omni-30b-a3b-reasoning': { displayName: 'Nemotron 3 Nano Omni', + description: 'Open Nemotron omni model combining reasoning with text, vision, and audio', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 256000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'nvidia/nemotron-3-super-120b-a12b': { displayName: 'Nemotron 3 Super', + description: + 'Nemotron middle tier for collaborative agents and high-volume reasoning workloads', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-04', + lastUpdated: '2026-03-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-ultra-550b-a55b': { displayName: 'Nemotron 3 Ultra 550B A55B', + description: 'Largest Nemotron 3 model for maximum open-weight reasoning and agent accuracy', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 1000000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-06-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-content-safety-reasoning-4b': { displayName: 'nemotron-content-safety-reasoning-4b', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + lastUpdated: '2026-01-22', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-mini-4b-instruct': { displayName: 'nemotron-mini-4b-instruct', + description: 'Compact Nemotron model for efficient reasoning and deployable AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2024-08-26', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-nano-12b-v2-vl': { displayName: 'Nemotron Nano 12B v2 VL', + description: 'Nemotron multimodal model for visual reasoning and agentic AI workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 128000, + lastUpdated: '2025-10-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/nemotron-voicechat': { displayName: 'nemotron-voicechat', + description: 'Nemotron multimodal model for visual reasoning and agentic AI workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2026-03-16', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'audio'], output: ['text'] }, }, 'nvidia/nv-embed-v1': { displayName: 'nv-embed-v1', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 32768, maxOutputTokens: 2048, + lastUpdated: '2025-07-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nv-embedcode-7b-v1': { displayName: 'nv-embedcode-7b-v1', + description: 'Nemotron model for efficient reasoning, coding, and specialized AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 32768, maxOutputTokens: 2048, + lastUpdated: '2025-05-29', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nvidia-nemotron-nano-9b-v2': { displayName: 'nvidia-nemotron-nano-9b-v2', + description: 'Compact Nemotron model for efficient reasoning and deployable AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-09', + lastUpdated: '2025-08-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/rerank-qa-mistral-4b': { displayName: 'rerank-qa-mistral-4b', + description: + 'Reranking model for improving retrieval quality in search and recommendation systems', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + lastUpdated: '2025-01-17', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/riva-translate-4b-instruct-v1.1': { displayName: 'riva-translate-4b-instruct-v1_1', + description: + 'Translation model for multilingual conversion, localization, and cross-language workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + lastUpdated: '2025-12-12', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/sparsedrive': { displayName: 'sparsedrive', + description: 'Nemotron multimodal model for visual reasoning and agentic AI workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-07-20', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: [], output: ['text'] }, }, 'nvidia/streampetr': { displayName: 'streampetr', + description: 'Nemotron multimodal model for visual reasoning and agentic AI workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-11-13', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: [], output: ['text'] }, }, 'nvidia/studiovoice': { displayName: 'studiovoice', + description: 'Nemotron model for efficient reasoning, coding, and specialized AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-06-13', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/synthetic-video-detector': { displayName: 'synthetic-video-detector', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 0, maxOutputTokens: 4096, + lastUpdated: '2026-04-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: [], output: ['text'] }, }, 'nvidia/usdcode': { displayName: 'usdcode', + description: 'Nemotron model for efficient reasoning, coding, and specialized AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + lastUpdated: '2026-01-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/usdvalidate': { displayName: 'usdvalidate', + description: 'Nemotron model for efficient reasoning, coding, and specialized AI agents', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 0, maxOutputTokens: 4096, + lastUpdated: '2025-01-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-120b': { displayName: 'GPT-OSS-120B', + description: 'Open GPT reasoning model for self-hosted agents and controllable deployments', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + knowledgeCutoff: '2025-08', + structuredOutput: true, + lastUpdated: '2025-08-14', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-20b': { displayName: 'GPT OSS 20B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 131072, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/whisper-large-v3': { displayName: 'Whisper Large v3', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 0, maxOutputTokens: 4096, + knowledgeCutoff: '2023-09', + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'poolside/laguna-xs-2.1': { displayName: 'Laguna XS 2.1', + description: 'Agentic coding model from Poolside in the XS size class for local deployment', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 16384, + structuredOutput: false, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen-image': { displayName: 'Qwen Image', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 0, maxOutputTokens: 0, + structuredOutput: false, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['image'] }, }, 'qwen/qwen-image-edit': { displayName: 'Qwen Image Edit', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 0, maxOutputTokens: 0, + structuredOutput: false, + lastUpdated: '2025-08-19', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['image'] }, }, 'qwen/qwen2.5-coder-32b-instruct': { displayName: 'Qwen2.5 Coder 32b Instruct', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 4096, + structuredOutput: true, + lastUpdated: '2024-11-06', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-coder-480b-a35b-instruct': { displayName: 'Qwen3 Coder 480B A35B Instruct', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 66536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-next-80b-a3b-instruct': { displayName: 'Qwen3-Next-80B-A3B-Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 16384, + knowledgeCutoff: '2024-12', + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3.5-122b-a10b': { displayName: 'Qwen3.5 122B-A10B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'qwen/qwen3.5-397b-a17b': { displayName: 'Qwen3.5-397B-A17B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 262144, maxOutputTokens: 8192, + knowledgeCutoff: '2026-01', + structuredOutput: true, + lastUpdated: '2026-02-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'sarvamai/sarvam-m': { displayName: 'sarvam-m', + description: + 'Efficient Indian-language reasoning model for chat, coding, and multilingual work', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-07-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'stepfun-ai/step-3.5-flash': { displayName: 'Step 3.5 Flash', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 256000, maxOutputTokens: 16384, + lastUpdated: '2026-02-02', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'stepfun-ai/step-3.7-flash': { displayName: 'Step 3.7 Flash', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 256000, maxOutputTokens: 16384, + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high', 'xhigh', 'max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'thinkingmachines/inkling': { displayName: 'Inkling', + description: + 'Multimodal MoE reasoning model (975B total, 41B active) for text, image, and audio', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 1048576, maxOutputTokens: 16384, + lastUpdated: '2026-07-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'upstage/solar-10.7b-instruct': { displayName: 'solar-10.7b-instruct', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 128000, maxOutputTokens: 8192, + lastUpdated: '2025-04-10', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://docs.api.nvidia.com/nim/', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, @@ -5701,198 +7744,254 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'ollama-cloud': { 'deepseek-v4-flash': { displayName: 'deepseek-v4-flash', + description: 'Fast DeepSeek model for efficient chat, coding help, and agent loops', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 1048576, maxOutputTokens: 1048576, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-flash:0731': { displayName: 'DeepSeek V4 Flash 0731', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 1048576, maxOutputTokens: 1048576, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-pro': { displayName: 'deepseek-v4-pro', + description: 'Flagship DeepSeek model for coding, reasoning, and agentic work', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 1048576, maxOutputTokens: 1048576, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'gemma4:31b': { displayName: 'gemma4:31b', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'glm-5.1': { displayName: 'glm-5.1', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 202752, maxOutputTokens: 131072, + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 976000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'gpt-oss:120b': { displayName: 'gpt-oss:120b', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 131072, maxOutputTokens: 32768, + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'gpt-oss:20b': { displayName: 'gpt-oss:20b', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 131072, maxOutputTokens: 32768, + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2.5': { displayName: 'kimi-k2.5', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 262144, maxOutputTokens: 262144, + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.6': { displayName: 'kimi-k2.6', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 262144, maxOutputTokens: 262144, + lastUpdated: '2026-04-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.7-code': { displayName: 'kimi-k2.7-code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k3': { displayName: 'kimi-k3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'minimax-m2.5': { displayName: 'minimax-m2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax-m2.7': { displayName: 'minimax-m2.7', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 196608, maxOutputTokens: 196608, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax-m3': { displayName: 'minimax-m3', + description: 'MiniMax multimodal coding model for long-context reasoning and agent tasks', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 512000, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-05-31', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral-large-3:675b': { displayName: 'mistral-large-3:675b', + description: 'Flagship Mistral model for advanced reasoning, coding, and multilingual work', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 262144, maxOutputTokens: 262144, + lastUpdated: '2026-01-19', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nemotron-3-nano:30b': { displayName: 'nemotron-3-nano:30b', + description: 'Small Nemotron 3 MoE for efficient coding, math, and long-context agents', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 1048576, maxOutputTokens: 131072, + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nemotron-3-super': { displayName: 'nemotron-3-super', + description: + 'Nemotron middle tier for collaborative agents and high-volume reasoning workloads', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 262144, maxOutputTokens: 65536, + lastUpdated: '2026-03-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nemotron-3-ultra': { displayName: 'nemotron-3-ultra', + description: 'Largest Nemotron 3 model for maximum open-weight reasoning and agent accuracy', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 262144, maxOutputTokens: 128000, + lastUpdated: '2026-06-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.5:397b': { displayName: 'qwen3.5:397b', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://docs.ollama.com/cloud', contextWindow: 262144, maxOutputTokens: 65536, + lastUpdated: '2026-02-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -5901,451 +8000,664 @@ export const GENERATED_MODELS_DEV_METADATA: Record< openai: { 'chatgpt-image-latest': { displayName: 'chatgpt-image-latest', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 0, + inputLimit: 0, maxOutputTokens: 0, + lastUpdated: '2025-12-16', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gpt-3.5-turbo': { displayName: 'GPT-3.5-turbo', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'deprecated', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 16385, maxOutputTokens: 4096, + knowledgeCutoff: '2021-09-01', + structuredOutput: false, + lastUpdated: '2023-11-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'gpt-4': { displayName: 'GPT-4', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'deprecated', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 8192, maxOutputTokens: 8192, + knowledgeCutoff: '2023-11', + structuredOutput: false, + lastUpdated: '2024-04-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'gpt-4-turbo': { displayName: 'GPT-4 Turbo', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'deprecated', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-12', + structuredOutput: false, + lastUpdated: '2024-04-09', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-4.1': { displayName: 'GPT-4.1', + description: + 'Long-lived GPT workhorse for coding, instruction following, and production apps', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1047576, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-04-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-4.1-mini': { displayName: 'GPT-4.1 mini', + description: 'Affordable GPT-4.1 lane for fast coding help and structured extraction', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1047576, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-04-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-4.1-nano': { displayName: 'GPT-4.1 nano', + description: 'Tiny GPT-4.1 option for classification, routing, and very high-volume tasks', lifecycle: 'deprecated', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1047576, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-04-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-4o': { displayName: 'GPT-4o', + description: 'Omni-era GPT for multimodal chat, practical coding, and general assistants', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-08-06', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-4o-2024-05-13': { displayName: 'GPT-4o (2024-05-13)', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'deprecated', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-05-13', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-4o-2024-08-06': { displayName: 'GPT-4o (2024-08-06)', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-08-06', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-4o-2024-11-20': { displayName: 'GPT-4o (2024-11-20)', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-11-20', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-4o-mini': { displayName: 'GPT-4o mini', + description: 'Small omni GPT for cheap multimodal assistance and production-scale traffic', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-07-18', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5': { displayName: 'GPT-5', + description: 'Original GPT-5 workhorse for reasoning, coding, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5-mini': { displayName: 'GPT-5 Mini', + description: 'Small GPT-5 for responsive agents, coding help, and everyday automation', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-05-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5-nano': { displayName: 'GPT-5 Nano', + description: 'Tiny GPT-5 lane for routing, extraction, classification, and bulk jobs', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-05-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5-pro': { displayName: 'GPT-5 Pro', + description: 'Higher-accuracy GPT-5 tier for tough analysis, coding reviews, and planning', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 272000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-10-06', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.1': { displayName: 'GPT-5.1', + description: 'Sharper GPT-5 generation for coding, product work, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.2': { displayName: 'GPT-5.2', + description: + 'Reliable GPT generation for broad coding, writing, and tool-assisted product work', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.2-chat-latest': { displayName: 'GPT-5.2 Chat', + description: + 'Chat-tuned GPT model for conversational assistance, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.2-pro': { displayName: 'GPT-5.2 Pro', + description: 'Higher-accuracy GPT-5.2 variant for tougher reasoning and review workflows', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: false, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.3-chat-latest': { displayName: 'GPT-5.3 Chat (latest)', + description: + 'Chat-tuned GPT model for conversational assistance, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-03', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.3-codex': { displayName: 'GPT-5.3 Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-02-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.3-codex-spark': { displayName: 'GPT-5.3 Codex Spark', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 128000, + inputLimit: 100000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-02-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.4': { displayName: 'GPT-5.4', + description: 'Agent-ready GPT for coding and computer-use workflows at a lower cost', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.4-mini': { displayName: 'GPT-5.4 mini', + description: 'Strong small GPT for coding subagents, quick tool use, and high-volume work', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.4-nano': { displayName: 'GPT-5.4 nano', + description: 'Cheapest GPT-5.4 lane for simple routing, extraction, and bulk automation', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.4-pro': { displayName: 'GPT-5.4 Pro', + description: 'More exact GPT-5.4 tier for demanding professional reasoning and agent tasks', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: false, + lastUpdated: '2026-03-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.5': { displayName: 'GPT-5.5', + description: 'Default frontier GPT for coding, computer use, research, and knowledge work', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.5-pro': { displayName: 'GPT-5.5 Pro', + description: 'Highest-accuracy GPT-5.5 tier for slower, precision-heavy reasoning and coding', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.6': { displayName: 'GPT-5.6', + description: + 'Frontier GPT-5.6 model for complex professional work, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.6-luna': { displayName: 'GPT-5.6 Luna', + description: 'Cost-efficient GPT-5.6 model for fast, high-volume workloads', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.6-sol': { displayName: 'GPT-5.6 Sol', + description: + 'Frontier GPT-5.6 model for complex professional work, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.6-terra': { displayName: 'GPT-5.6 Terra', + description: 'Balanced GPT-5.6 model for capable, cost-efficient everyday work', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-image-1': { displayName: 'gpt-image-1', + description: + 'OpenAI image model for production generation, edits, and brand-safe visual workflows', lifecycle: 'deprecated', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 0, + inputLimit: 0, maxOutputTokens: 0, + lastUpdated: '2025-04-24', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['image'] }, }, 'gpt-image-1-mini': { displayName: 'gpt-image-1-mini', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 0, + inputLimit: 0, maxOutputTokens: 0, + lastUpdated: '2025-09-26', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gpt-image-1.5': { displayName: 'gpt-image-1.5', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 0, + inputLimit: 0, maxOutputTokens: 0, + lastUpdated: '2025-11-25', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'gpt-image-2': { displayName: 'gpt-image-2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 0, + inputLimit: 0, maxOutputTokens: 0, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['image'] }, }, 'gpt-realtime-2.1': { displayName: 'GPT-Realtime-2.1', + description: + 'Realtime speech-to-speech model with configurable reasoning, tool use, and robust voice-agent behavior', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 128000, + inputLimit: 96000, maxOutputTokens: 32000, + knowledgeCutoff: '2024-09-30', + structuredOutput: false, + lastUpdated: '2026-07-06', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'audio', 'image'], output: ['text', 'audio'] }, }, o1: { displayName: 'o1', + description: 'O-series reasoning model for hard analysis, math, coding, and planning', lifecycle: 'deprecated', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-12-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'o1-pro': { displayName: 'o1-pro', + description: 'O-series reasoning model for hard analysis, math, coding, and planning', lifecycle: 'deprecated', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2025-03-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, o3: { displayName: 'o3', + description: 'Deliberate o-series reasoner for hard math, coding, and multi-step analysis', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'o3-mini': { displayName: 'o3-mini', + description: 'Smaller o-series reasoner for economical coding, math, and planning tasks', lifecycle: 'deprecated', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-01-29', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'o3-pro': { displayName: 'o3-pro', + description: 'High-effort o3 tier for difficult technical reasoning and careful answers', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-06-10', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'o4-mini': { displayName: 'o4-mini', + description: 'Fast o-series model for compact reasoning, coding, and tool use', lifecycle: 'deprecated', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'text-embedding-3-large': { displayName: 'text-embedding-3-large', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 8191, maxOutputTokens: 3072, + knowledgeCutoff: '2024-01', + lastUpdated: '2024-01-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'text-embedding-3-small': { displayName: 'text-embedding-3-small', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 8191, maxOutputTokens: 1536, + knowledgeCutoff: '2024-01', + lastUpdated: '2024-01-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'text-embedding-ada-002': { displayName: 'text-embedding-ada-002', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://platform.openai.com/docs/models', contextWindow: 8192, maxOutputTokens: 1536, + knowledgeCutoff: '2022-12', + lastUpdated: '2022-12-15', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, @@ -6353,822 +8665,1159 @@ export const GENERATED_MODELS_DEV_METADATA: Record< opencode: { 'big-pickle': { displayName: 'Big Pickle', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 200000, + inputLimit: 160000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-10-17', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'claude-3-5-haiku': { displayName: 'Claude Haiku 3.5', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 200000, maxOutputTokens: 8192, + knowledgeCutoff: '2024-07-31', + lastUpdated: '2024-10-22', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-fable-5': { displayName: 'Claude Fable 5', + description: 'Claude model for creative writing, analysis, and controlled agent workflows', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-06-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-haiku-4-5': { displayName: 'Claude Haiku 4.5', + description: + 'Fast Claude model for responsive assistance, classification, and lightweight agents', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-02-28', + lastUpdated: '2025-10-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4-1': { displayName: 'Claude Opus 4.1', - lifecycle: 'active', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', + lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 200000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-03-31', + lastUpdated: '2025-08-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4-5': { displayName: 'Claude Opus 4.5', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-03-31', + lastUpdated: '2025-11-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4-6': { displayName: 'Claude Opus 4.6', + description: 'High-end Claude for difficult coding, planning, and slower expert reasoning', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-05-31', + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4-7': { displayName: 'Claude Opus 4.7', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-4-8': { displayName: 'Claude Opus 4.8', + description: + 'Top Claude Opus tier for the hardest reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-opus-5': { displayName: 'Claude Opus 5', + description: 'Strongest Claude Opus model for coding, agents, and professional work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-05', + lastUpdated: '2026-07-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-4': { displayName: 'Claude Sonnet 4', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-03-31', + lastUpdated: '2025-05-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-4-5': { displayName: 'Claude Sonnet 4.5', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-07-31', + lastUpdated: '2025-09-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-4-6': { displayName: 'Claude Sonnet 4.6', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-02-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'claude-sonnet-5': { displayName: 'Claude Sonnet 5', + description: 'Everyday Claude agent model for coding, planning, browsing, and general work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'deepseek-v4-flash': { - displayName: 'DeepSeek V4 Flash 0731', + displayName: 'DeepSeek V4 Flash (New)', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, - thinkingOptions: { efforts: ['high', 'max'], toggle: true }, + thinkingOptions: { efforts: ['low', 'high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-flash-free': { displayName: 'DeepSeek V4 Flash Free (New)', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 200000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, - thinkingOptions: { efforts: ['high', 'max'] }, + thinkingOptions: { efforts: ['low', 'high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'gemini-3-flash': { displayName: 'Gemini 3 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-12-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3-pro': { displayName: 'Gemini 3 Pro', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-11-18', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.1-pro': { displayName: 'Gemini 3.1 Pro Preview', + description: 'Advanced Gemini model for complex reasoning, coding, and multimodal analysis', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-02-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.5-flash': { displayName: 'Gemini 3.5 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.5-flash-lite': { displayName: 'Gemini 3.5 Flash Lite', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'gemini-3.6-flash': { displayName: 'Gemini 3.6 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'glm-4.6': { displayName: 'GLM-4.6', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-4.7': { displayName: 'GLM-4.7', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-4.7-free': { displayName: 'GLM-4.7 Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5': { displayName: 'GLM-5', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5-free': { displayName: 'GLM-5 Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.1': { displayName: 'GLM-5.1', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'gpt-5': { displayName: 'GPT-5', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5-codex': { displayName: 'GPT-5 Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-09-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5-nano': { displayName: 'GPT-5 Nano', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-05-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.1': { displayName: 'GPT-5.1', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.1-codex': { displayName: 'GPT-5.1 Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.1-codex-max': { displayName: 'GPT-5.1 Codex Max', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.1-codex-mini': { displayName: 'GPT-5.1 Codex Mini', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.2': { displayName: 'GPT-5.2', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'gpt-5.2-codex': { displayName: 'GPT-5.2 Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-01-14', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.3-codex': { displayName: 'GPT-5.3 Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-02-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.3-codex-spark': { displayName: 'GPT-5.3 Codex Spark', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 128000, + inputLimit: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text'], output: ['text'] }, }, 'gpt-5.4': { displayName: 'GPT-5.4', + description: 'Agent-ready GPT for coding and computer-use workflows at a lower cost', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.4-mini': { displayName: 'GPT-5.4 Mini', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.4-nano': { displayName: 'GPT-5.4 Nano', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.4-pro': { displayName: 'GPT-5.4 Pro', + description: 'Frontier GPT model for professional reasoning, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: false, + lastUpdated: '2026-03-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.5': { displayName: 'GPT-5.5', + description: 'Default frontier GPT for coding, computer use, research, and knowledge work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.5-pro': { displayName: 'GPT-5.5 Pro', + description: 'Frontier GPT model for professional reasoning, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: false, + lastUpdated: '2026-04-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.6-luna': { displayName: 'GPT-5.6 Luna', + description: 'Cost-efficient GPT-5.6 model for fast, high-volume workloads', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.6-sol': { displayName: 'GPT-5.6 Sol', + description: + 'Frontier GPT-5.6 model for complex professional work, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'gpt-5.6-terra': { displayName: 'GPT-5.6 Terra', + description: 'Balanced GPT-5.6 model for capable, cost-efficient everyday work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'grok-4.5': { displayName: 'Grok 4.5', + description: + "xAI's latest Grok for chat, coding, agentic tools, and lower hallucination risk", lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 500000, maxOutputTokens: 500000, + structuredOutput: true, + lastUpdated: '2026-07-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'grok-build-0.1': { displayName: 'Grok Build 0.1', + description: 'Grok coding model for agentic engineering, edits, and codebase workflows', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 256000, maxOutputTokens: 256000, + structuredOutput: true, + lastUpdated: '2026-05-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'grok-code': { displayName: 'Grok Code Fast 1', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 256000, maxOutputTokens: 256000, + lastUpdated: '2025-08-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'hy3-free': { displayName: 'Hy3 Free', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 190000, maxOutputTokens: 64000, + lastUpdated: '2026-06-26', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'hy3-preview-free': { displayName: 'Hy3 preview Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-06', + lastUpdated: '2026-04-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2': { displayName: 'Kimi K2', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2-thinking': { displayName: 'Kimi K2 Thinking', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2.5': { displayName: 'Kimi K2.5', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2024-10', + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.5-free': { displayName: 'Kimi K2.5 Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-10', + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.6': { displayName: 'Kimi K2.6', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2024-10', + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.7-code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k3': { displayName: 'Kimi K3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'laguna-s-2.1-free': { displayName: 'Laguna S 2.1 Free', + description: 'Agentic coding model from Poolside in the XS size class for local deployment', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 256000, maxOutputTokens: 32000, + structuredOutput: false, + lastUpdated: '2026-07-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'ling-2.6-flash-free': { displayName: 'Ling 2.6 Flash Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262100, maxOutputTokens: 32800, + knowledgeCutoff: '2025-06', + lastUpdated: '2026-04-21', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'ling-3.0-flash-free': { displayName: 'Ling-3.0-flash Free', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-07-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, + 'longcat-2.0-free': { + displayName: 'LongCat-2.0 Free', + description: + 'Meituan LongCat-2.0, a reasoning model with tool calling and a 1M-token context window', + lifecycle: 'active', + docsUrl: 'https://opencode.ai/docs/zen', + contextWindow: 1000000, + maxOutputTokens: 131072, + lastUpdated: '2026-06-30', + capabilities: { vision: false, reasoning: true, functionCalling: true }, + thinkingOptions: { toggle: true }, + modalities: { input: ['text'], output: ['text'] }, + }, 'mimo-v2-flash-free': { displayName: 'MiMo V2 Flash Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2024-12', + lastUpdated: '2025-12-16', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2-omni-free': { displayName: 'MiMo V2 Omni Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 64000, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-03-18', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'mimo-v2-pro-free': { displayName: 'MiMo V2 Pro Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 64000, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2.5-free': { displayName: 'MiMo V2.5 Free', + description: 'MiMo omni model for text, image, video, audio, and agents', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 200000, maxOutputTokens: 32000, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'minimax-m2.1': { displayName: 'MiniMax-M2.1', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-12-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax-m2.1-free': { displayName: 'MiniMax-M2.1 Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-12-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax-m2.5': { displayName: 'MiniMax-M2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax-m2.5-free': { displayName: 'MiniMax-M2.5 Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax-m2.7': { displayName: 'MiniMax-M2.7', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax-m3': { displayName: 'MiniMax-M3', + description: + 'MiniMax multimodal model for long-context coding, perception, and agent planning', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 512000, maxOutputTokens: 128000, + lastUpdated: '2026-06-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'minimax-m3-free': { displayName: 'MiniMax-M3 Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 200000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-05-31', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nemotron-3-super-free': { displayName: 'Nemotron 3 Super Free', + description: + 'Nemotron middle tier for collaborative agents and high-volume reasoning workloads', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02', + lastUpdated: '2026-03-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nemotron-3-ultra-free': { displayName: 'Nemotron 3 Ultra Free', + description: 'Largest Nemotron 3 model for maximum open-weight reasoning and agent accuracy', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02', + lastUpdated: '2026-06-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'north-mini-code-free': { displayName: 'North Mini Code Free', + description: 'Cohere coding model for practical software engineering and agentic edits', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-09-23', + structuredOutput: true, + lastUpdated: '2026-06-09', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3-coder': { displayName: 'Qwen3 Coder', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.5-plus': { displayName: 'Qwen3.5 Plus', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-plus': { displayName: 'Qwen3.6 Plus', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-plus-free': { displayName: 'Qwen3.6 Plus Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'ring-2.6-1t-free': { displayName: 'Ring 2.6 1T Free', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262000, maxOutputTokens: 66000, + knowledgeCutoff: '2025-06', + lastUpdated: '2026-05-08', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'trinity-large-preview-free': { displayName: 'Trinity Large Preview', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2025-06', + lastUpdated: '2026-01-28', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, @@ -7176,229 +9825,309 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'opencode-go': { 'deepseek-v4-flash': { displayName: 'DeepSeek V4 Flash (New)', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, - thinkingOptions: { efforts: ['high', 'max'] }, + thinkingOptions: { efforts: ['low', 'high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-v4-pro': { displayName: 'DeepSeek V4 Pro', + description: 'Flagship DeepSeek model for coding, reasoning, and agentic work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5': { displayName: 'GLM-5', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 202752, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.1': { displayName: 'GLM-5.1', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 202752, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'gpt-5.6-luna': { displayName: 'GPT-5.6 Luna (2x usage)', + description: 'Cost-efficient GPT-5.6 model for fast, high-volume workloads', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'grok-4.5': { displayName: 'Grok 4.5', + description: + "xAI's latest Grok for chat, coding, agentic tools, and lower hallucination risk", lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 500000, maxOutputTokens: 500000, + structuredOutput: true, + lastUpdated: '2026-07-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, hy3: { displayName: 'Hy3', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 256000, maxOutputTokens: 64000, + lastUpdated: '2026-07-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2.5': { displayName: 'Kimi K2.5', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2024-10', + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.6': { displayName: 'Kimi K2.6', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2024-10', + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k2.7-code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kimi-k3': { displayName: 'Kimi K3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mimo-v2-omni': { displayName: 'MiMo V2 Omni', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 128000, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-03-18', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'mimo-v2-pro': { displayName: 'MiMo V2 Pro', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 128000, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2.5': { displayName: 'MiMo V2.5', + description: 'MiMo omni model for text, image, video, audio, and agents', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'mimo-v2.5-pro': { displayName: 'MiMo V2.5 Pro', + description: 'MiMo pro model for strong multimodal reasoning and agent execution', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1048576, maxOutputTokens: 128000, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax-m2.5': { displayName: 'MiniMax-M2.5', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax-m2.7': { displayName: 'MiniMax-M2.7', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax-m3': { displayName: 'MiniMax-M3', + description: 'MiniMax multimodal coding model for long-context reasoning and agent tasks', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-05-31', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.5-plus': { displayName: 'Qwen3.5 Plus', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.6-plus': { displayName: 'Qwen3.6 Plus', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.7-max': { displayName: 'Qwen3.7 Max', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 65536, + lastUpdated: '2026-05-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen3.7-plus': { displayName: 'Qwen3.7 Plus', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 65536, + lastUpdated: '2026-06-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen3.8-max': { displayName: 'Qwen3.8 Max', + description: + '2.4-trillion-parameter multimodal flagship for coding, professional work, and long-horizon agentic workflows', lifecycle: 'active', docsUrl: 'https://opencode.ai/docs/zen', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-08-03', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -7407,3172 +10136,4515 @@ export const GENERATED_MODELS_DEV_METADATA: Record< openrouter: { '~anthropic/claude-fable-latest': { displayName: 'Claude Fable Latest', + description: 'Claude model for creative writing, analysis, and controlled agent workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-06-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, '~anthropic/claude-haiku-latest': { displayName: 'Anthropic Claude Haiku Latest', + description: + 'Fast Claude model for responsive assistance, classification, and lightweight agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 64000, + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, '~anthropic/claude-opus-latest': { displayName: 'Claude Opus Latest', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, '~anthropic/claude-sonnet-latest': { displayName: 'Anthropic Claude Sonnet Latest', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, '~deepseek/deepseek-v4-flash-latest': { displayName: 'DeepSeek V4 Flash Latest', + description: 'Fast DeepSeek model for efficient chat, coding help, and agent loops', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-08-01', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, '~google/gemini-flash-latest': { displayName: 'Google Gemini Flash Latest', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01-01', + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf', 'audio'], output: ['text'] }, }, '~google/gemini-pro-latest': { displayName: 'Google Gemini Pro Latest', + description: 'Advanced Gemini model for complex reasoning, coding, and multimodal analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['audio', 'image', 'text'], output: ['text'] }, + modalities: { input: ['audio', 'pdf', 'image', 'text'], output: ['text'] }, }, '~moonshotai/kimi-latest': { displayName: 'MoonshotAI Kimi Latest', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 1048576, + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, '~openai/gpt-latest': { displayName: 'OpenAI GPT Latest', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text'], output: ['text'] }, }, '~openai/gpt-mini-latest': { displayName: 'OpenAI GPT Mini Latest', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text'], output: ['text'] }, }, '~x-ai/grok-latest': { displayName: 'Grok Latest', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 500000, maxOutputTokens: 1000000, + structuredOutput: true, + lastUpdated: '2026-07-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'ai21/jamba-large-1.7': { displayName: 'Jamba Large 1.7', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 4096, + knowledgeCutoff: '2024-08-31', + structuredOutput: false, + lastUpdated: '2025-08-08', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'aion-labs/aion-2.0': { displayName: 'Aion-2.0', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-02-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'aion-labs/aion-3.0': { displayName: 'Aion-3.0', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-07-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'aion-labs/aion-3.0-mini': { displayName: 'Aion-3.0-Mini', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-07-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'aion-labs/aion-rp-llama-3.1-8b': { displayName: 'Aion-RP 1.0 (8B)', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2023-12-31', + structuredOutput: false, + lastUpdated: '2025-02-04', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'allenai/olmo-3-32b-think': { displayName: 'Olmo 3 32B Think', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 65536, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2025-11-21', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'amazon/nova-2-lite-v1': { displayName: 'Nova 2 Lite', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 65535, + structuredOutput: false, + lastUpdated: '2025-12-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'amazon/nova-lite-v1': { displayName: 'Nova Lite 1.0', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 300000, maxOutputTokens: 5120, + knowledgeCutoff: '2024-10-31', + structuredOutput: false, + lastUpdated: '2024-12-05', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'amazon/nova-micro-v1': { displayName: 'Nova Micro 1.0', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 5120, + knowledgeCutoff: '2024-10-31', + structuredOutput: false, + lastUpdated: '2024-12-05', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'amazon/nova-premier-v1': { displayName: 'Nova Premier 1.0', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 32000, + structuredOutput: false, + lastUpdated: '2025-10-31', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'amazon/nova-pro-v1': { displayName: 'Nova Pro 1.0', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 300000, maxOutputTokens: 5120, + knowledgeCutoff: '2024-10-31', + structuredOutput: false, + lastUpdated: '2024-12-05', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'anthracite-org/magnum-v4-72b': { displayName: 'Magnum v4 72B', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 16384, maxOutputTokens: 2048, + knowledgeCutoff: '2024-06-30', + structuredOutput: true, + lastUpdated: '2024-10-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'anthropic/claude-3-haiku': { displayName: 'Claude 3 Haiku', + description: + 'Fast Claude model for responsive assistance, classification, and lightweight agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-08-31', + structuredOutput: false, + lastUpdated: '2024-03-13', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'anthropic/claude-fable-5': { displayName: 'Claude Fable 5', + description: 'Claude model for creative writing, analysis, and controlled agent workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + structuredOutput: true, + lastUpdated: '2026-06-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-haiku-4.5': { displayName: 'Claude Haiku 4.5 (latest)', + description: 'Fast Claude lane for lightweight agents, office tasks, and responsive chat', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-02-28', + structuredOutput: true, + lastUpdated: '2025-10-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4': { displayName: 'Claude Opus 4', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-01-31', + structuredOutput: false, + lastUpdated: '2025-05-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.1': { displayName: 'Claude Opus 4.1 (latest)', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-03-31', + structuredOutput: false, + lastUpdated: '2025-08-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.5': { displayName: 'Claude Opus 4.5 (latest)', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2025-11-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.6': { displayName: 'Claude Opus 4.6', + description: 'High-end Claude for difficult coding, planning, and slower expert reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-05-31', + structuredOutput: true, + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.7': { displayName: 'Claude Opus 4.7', + description: 'Stronger Opus tier for advanced software work and high-stakes reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + structuredOutput: true, + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.7-fast': { displayName: 'Claude Opus 4.7 (Fast)', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + structuredOutput: true, + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.8': { displayName: 'Claude Opus 4.8', + description: + 'Top Claude Opus tier for the hardest reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01', + structuredOutput: true, + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.8-fast': { displayName: 'Claude Opus 4.8 (Fast)', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01', + structuredOutput: true, + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-5': { displayName: 'Claude Opus 5', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-05', + structuredOutput: true, + lastUpdated: '2026-07-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-5-fast': { displayName: 'Claude Opus 5 (Fast)', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-05', + structuredOutput: true, + lastUpdated: '2026-07-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-4': { displayName: 'Claude Sonnet 4', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-31', + structuredOutput: false, + lastUpdated: '2025-05-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-4.5': { displayName: 'Claude Sonnet 4.5 (latest)', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-07-31', + structuredOutput: true, + lastUpdated: '2025-09-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-4.6': { displayName: 'Claude Sonnet 4.6', + description: + 'Claude workhorse for coding agents, careful analysis, and production cost control', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-5': { displayName: 'Claude Sonnet 5', + description: 'Everyday Claude agent model for coding, planning, browsing, and general work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + structuredOutput: true, + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'arcee-ai/trinity-large-thinking': { displayName: 'Trinity Large Thinking', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-01', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'arcee-ai/virtuoso-large': { displayName: 'Virtuoso Large', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 64000, + knowledgeCutoff: '2025-03-31', + structuredOutput: false, + lastUpdated: '2025-05-05', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'baidu/ernie-4.5-vl-424b-a47b': { displayName: 'ERNIE 4.5 VL 424B A47B ', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 123000, maxOutputTokens: 16000, + knowledgeCutoff: '2025-03-31', + structuredOutput: false, + lastUpdated: '2025-06-30', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'bytedance-seed/seed-1.6': { displayName: 'Seed 1.6', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2025-12-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'bytedance-seed/seed-1.6-flash': { displayName: 'Seed 1.6 Flash', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2025-12-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'bytedance-seed/seed-2.0-lite': { displayName: 'Seed-2.0-Lite', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-03-10', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'bytedance-seed/seed-2.0-mini': { displayName: 'Seed-2.0-Mini', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-02-26', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'bytedance/ui-tars-1.5-7b': { displayName: 'UI-TARS 7B ', + description: 'Multimodal model for analyzing text, images, documents, and rich media', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 2048, + knowledgeCutoff: '2025-01-31', + structuredOutput: true, + lastUpdated: '2025-07-22', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'cognitivecomputations/dolphin-mistral-24b-venice-edition': { displayName: 'Uncensored', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 8192, + knowledgeCutoff: '2024-04-30', + structuredOutput: false, + lastUpdated: '2025-07-09', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'cohere/command-a': { displayName: 'Command A', + description: 'Cohere command model for multilingual enterprise agents, tools, and chat', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 8192, + knowledgeCutoff: '2024-08-31', + structuredOutput: true, + lastUpdated: '2025-03-13', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'cohere/command-r-08-2024': { displayName: 'Command R', + description: 'Cohere retrieval model for long-context chat and enterprise RAG workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 4000, + knowledgeCutoff: '2024-06-01', + structuredOutput: true, + lastUpdated: '2024-08-30', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'cohere/command-r-plus-08-2024': { displayName: 'Command R+', + description: "Cohere's RAG workhorse for long-context enterprise search and tool use", lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 4000, + knowledgeCutoff: '2024-06-01', + structuredOutput: true, + lastUpdated: '2024-08-30', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'cohere/command-r7b-12-2024': { displayName: 'Command R7B', + description: 'Cohere retrieval model for long-context chat and enterprise RAG workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 4000, + knowledgeCutoff: '2024-06-01', + structuredOutput: true, + lastUpdated: '2024-12-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'cohere/north-mini-code:free': { displayName: 'North Mini Code (free)', + description: 'Cohere coding model for practical software engineering and agentic edits', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 64000, + structuredOutput: false, + lastUpdated: '2026-06-17', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepcogito/cogito-v2.1-671b': { displayName: 'Cogito v2.1 671B', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-chat': { displayName: 'DeepSeek Chat', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 163840, maxOutputTokens: 16000, + knowledgeCutoff: '2025-09', + structuredOutput: true, + lastUpdated: '2026-02-28', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-chat-v3-0324': { displayName: 'DeepSeek V3 0324', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 163840, maxOutputTokens: 65536, + knowledgeCutoff: '2024-07-31', + structuredOutput: true, + lastUpdated: '2025-03-24', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-chat-v3.1': { displayName: 'DeepSeek V3.1', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 163840, maxOutputTokens: 32768, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-08-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-r1': { displayName: 'DeepSeek-R1', + description: + 'Classic open reasoning model for transparent math, coding, and deliberate problem solving', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 163840, maxOutputTokens: 16000, + knowledgeCutoff: '2024-07', + structuredOutput: true, + lastUpdated: '2025-05-29', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-r1-0528': { displayName: 'R1 0528', + description: 'DeepSeek reasoning model for multi-step analysis, math, coding, and tools', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 163840, maxOutputTokens: 32768, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-05-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-r1-distill-llama-70b': { displayName: 'R1 Distill Llama 70B', + description: 'DeepSeek reasoning model for multi-step analysis, math, coding, and tools', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 8192, maxOutputTokens: 8192, + knowledgeCutoff: '2024-07-31', + structuredOutput: false, + lastUpdated: '2025-01-23', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v3.1-terminus': { displayName: 'DeepSeek V3.1 Terminus', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 163840, maxOutputTokens: 32768, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-09-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v3.2': { displayName: 'DeepSeek V3.2', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 163840, maxOutputTokens: 65536, + knowledgeCutoff: '2024-07', + structuredOutput: true, + lastUpdated: '2025-12-01', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v3.2-exp': { displayName: 'DeepSeek V3.2 Exp', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 163840, maxOutputTokens: 65536, + knowledgeCutoff: '2025-07-31', + structuredOutput: true, + lastUpdated: '2025-09-29', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v4-flash': { displayName: 'DeepSeek V4 Flash', + description: 'Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, - maxOutputTokens: 393216, + maxOutputTokens: 131072, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'xhigh'] }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v4-flash-0731': { displayName: 'DeepSeek V4 Flash 0731', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v4-pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'xhigh'] }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemini-2.5-flash': { displayName: 'Gemini 2.5 Flash', + description: 'Fast Gemini workhorse for multimodal apps where latency and price matter', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65535, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-2.5-flash-image': { displayName: 'Nano Banana', + description: + 'Nano Banana image model for fast generation, edits, and character-consistent assets', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32768, maxOutputTokens: 8192, + knowledgeCutoff: '2024-06', + structuredOutput: true, + lastUpdated: '2025-08-26', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'google/gemini-2.5-flash-lite': { displayName: 'Gemini 2.5 Flash-Lite', + description: 'Lean Gemini 2.5 lane for cheap multimodal traffic and quick agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65535, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-2.5-pro': { displayName: 'Gemini 2.5 Pro', + description: "Google's proven reasoning model for coding, math, and multimodal analysis", lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-2.5-pro-preview': { displayName: 'Gemini 2.5 Pro Preview 06-05', + description: 'Advanced Gemini model for complex reasoning, coding, and multimodal analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01-31', + structuredOutput: true, + lastUpdated: '2025-06-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['image', 'text', 'audio'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text', 'audio'], output: ['text'] }, }, 'google/gemini-2.5-pro-preview-05-06': { displayName: 'Gemini 2.5 Pro Preview 05-06', + description: 'Advanced Gemini model for complex reasoning, coding, and multimodal analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65535, + knowledgeCutoff: '2025-01-31', + structuredOutput: true, + lastUpdated: '2025-05-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf', 'audio'], output: ['text'] }, }, 'google/gemini-3-flash-preview': { displayName: 'Gemini 3 Flash Preview', + description: + 'New Gemini flash lane bringing frontier-style multimodal reasoning to cheaper runs', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, - maxOutputTokens: 65535, + maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-12-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-3-pro-image': { displayName: 'Nano Banana Pro', + description: 'Nano Banana Pro for higher-fidelity image generation and design-heavy edits', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'google/gemini-3-pro-image-preview': { displayName: 'Nano Banana Pro', + description: 'Nano Banana Pro for higher-fidelity image generation and design-heavy edits', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 65536, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-11-20', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'google/gemini-3.1-flash-image': { displayName: 'Nano Banana 2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'high'] }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'google/gemini-3.1-flash-image-preview': { displayName: 'Nano Banana 2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-02-26', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'high'] }, modalities: { input: ['image', 'text'], output: ['text', 'image'] }, }, 'google/gemini-3.1-flash-lite': { displayName: 'Gemini 3.1 Flash Lite', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-3.1-flash-lite-image': { displayName: 'Nano Banana 2 Lite', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: false, + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'high'] }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'google/gemini-3.1-flash-lite-preview': { displayName: 'Gemini 3.1 Flash Lite Preview', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-03-03', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-3.1-pro-preview': { displayName: 'Gemini 3.1 Pro Preview', + description: 'Reasoning-first Gemini preview for agentic coding and complex problem solving', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-02-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-3.1-pro-preview-customtools': { displayName: 'Gemini 3.1 Pro Preview Custom Tools', + description: 'Advanced Gemini model for complex reasoning, coding, and multimodal analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-02-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-3.5-flash': { displayName: 'Gemini 3.5 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-3.5-flash-lite': { displayName: 'Gemini 3.5 Flash Lite', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-3.6-flash': { displayName: 'Gemini 3.6 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemma-2-27b-it': { displayName: 'Gemma 2 27B', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 8192, maxOutputTokens: 2048, + knowledgeCutoff: '2024-06-30', + structuredOutput: true, + lastUpdated: '2024-07-13', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemma-3-12b-it': { displayName: 'Gemma 3 12B', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2024-08-31', + structuredOutput: true, + lastUpdated: '2025-03-13', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/gemma-3-27b-it': { displayName: 'Gemma 3 27B', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 131072, + knowledgeCutoff: '2024-08-31', + structuredOutput: true, + lastUpdated: '2025-03-12', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/gemma-3-4b-it': { displayName: 'Gemma 3 4B', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2024-08-31', + structuredOutput: true, + lastUpdated: '2025-03-13', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'google/gemma-3n-e4b-it': { displayName: 'Gemma 3n 4B', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2024-08-31', + structuredOutput: true, + lastUpdated: '2025-05-20', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemma-4-26b-a4b-it': { displayName: 'Gemma 4 26B A4B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'google/gemma-4-26b-a4b-it:free': { displayName: 'Gemma 4 26B A4B (free)', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'google/gemma-4-31b-it': { displayName: 'Gemma 4 31B IT', + description: 'Largest Gemma 4 instruction model for open, self-hosted chat and reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'google/gemma-4-31b-it:free': { displayName: 'Gemma 4 31B (free)', + description: 'Largest Gemma 4 instruction model for open, self-hosted chat and reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'google/lyria-3-clip-preview': { displayName: 'Lyria 3 Clip Preview', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + structuredOutput: false, + lastUpdated: '2026-03-25', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'audio'] }, }, 'google/lyria-3-pro-preview': { displayName: 'Lyria 3 Pro Preview', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 65536, + structuredOutput: false, + lastUpdated: '2026-03-25', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'audio'] }, }, 'gryphe/mythomax-l2-13b': { displayName: 'MythoMax 13B', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 8192, maxOutputTokens: 4096, + knowledgeCutoff: '2023-06-30', + structuredOutput: true, + lastUpdated: '2023-07-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'ibm-granite/granite-4.0-h-micro': { displayName: 'Granite 4.0 Micro', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131000, maxOutputTokens: 131000, + structuredOutput: false, + lastUpdated: '2025-10-20', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'ibm-granite/granite-4.1-8b': { displayName: 'Granite 4.1 8B', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-04-30', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'inception/mercury-2': { displayName: 'Mercury 2', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 50000, + structuredOutput: true, + lastUpdated: '2026-03-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'inclusionai/ling-2.6-1t': { displayName: 'Ling-2.6-1T', + description: + 'Tool-capable chat model for instruction following and agentic application workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'inclusionai/ling-2.6-flash': { displayName: 'Ling-2.6-flash', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, - 'inclusionai/ling-3.0-flash:free': { - displayName: 'Ling-3.0-flash (free)', + 'inclusionai/ling-3.0-flash': { + displayName: 'Ling-3.0-flash', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-07-23', + capabilities: { vision: false, reasoning: true, functionCalling: true }, + modalities: { input: ['text'], output: ['text'] }, + }, + 'inclusionai/ling-3.0-tiny:free': { + displayName: 'Ling 3.0 Tiny (free)', + description: 'Free provider route for experiments, demos, and cost-sensitive chat workloads', + lifecycle: 'active', + docsUrl: 'https://openrouter.ai/models', + contextWindow: 262144, + maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-08-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, - thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'inclusionai/ring-2.6-1t': { displayName: 'Ring-2.6-1T', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: false, + lastUpdated: '2026-05-08', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'xhigh'] }, modalities: { input: ['text'], output: ['text'] }, }, 'kwaipilot/kat-coder-air-v2.5': { displayName: 'KAT-Coder-Air V2.5', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 80000, + structuredOutput: true, + lastUpdated: '2026-07-10', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kwaipilot/kat-coder-pro-v2': { displayName: 'KAT-Coder-Pro V2', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 80000, + structuredOutput: true, + lastUpdated: '2026-03-27', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kwaipilot/kat-coder-pro-v2.5': { displayName: 'KAT-Coder-Pro V2.5', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 80000, + structuredOutput: true, + lastUpdated: '2026-07-10', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mancer/weaver': { displayName: 'Weaver (alpha)', + description: 'General-purpose chat model for instruction following, writing, and analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 8000, maxOutputTokens: 2000, + knowledgeCutoff: '2023-06-30', + structuredOutput: true, + lastUpdated: '2023-08-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'meituan/longcat-2.0': { displayName: 'LongCat 2.0', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048756, maxOutputTokens: 262144, + structuredOutput: false, + lastUpdated: '2026-07-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta-llama/llama-3.1-70b-instruct': { displayName: 'Llama 3.1 70B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2023-12-31', + structuredOutput: true, + lastUpdated: '2024-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta-llama/llama-3.1-8b-instruct': { displayName: 'Llama 3.1 8B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2023-12-31', + structuredOutput: true, + lastUpdated: '2024-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta-llama/llama-3.2-1b-instruct': { displayName: 'Llama 3.2 1B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 60000, maxOutputTokens: 60000, + knowledgeCutoff: '2023-12-31', + structuredOutput: false, + lastUpdated: '2024-09-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'meta-llama/llama-3.2-3b-instruct': { displayName: 'Llama 3.2 3B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2023-12-31', + structuredOutput: true, + lastUpdated: '2024-09-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'meta-llama/llama-3.3-70b-instruct': { displayName: 'Llama-3.3-70B-Instruct', + description: 'Popular open Llama workhorse for multilingual chat, coding, and self-hosting', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2023-12', + structuredOutput: true, + lastUpdated: '2024-12-06', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta-llama/llama-4-maverick': { displayName: 'Llama 4 Maverick', + description: 'Open multimodal Llama model for strong reasoning and fast responses', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 16384, + knowledgeCutoff: '2024-08-31', + structuredOutput: true, + lastUpdated: '2025-04-05', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta-llama/llama-4-scout': { displayName: 'Llama 4 Scout', + description: 'Open multimodal Llama model for long-context analysis and efficient agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1310720, maxOutputTokens: 16384, + knowledgeCutoff: '2024-08-31', + structuredOutput: true, + lastUpdated: '2025-04-05', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta-llama/llama-guard-4-12b': { displayName: 'Llama Guard 4 12B', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 16384, + knowledgeCutoff: '2024-08-31', + structuredOutput: false, + lastUpdated: '2025-04-30', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'meta/muse-spark-1.1': { displayName: 'Muse Spark 1.1', + description: 'Open Llama multimodal model for image understanding and text reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 1048576, + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf', 'audio'], output: ['text'] }, + }, + 'meta/muse-spark-1.2': { + displayName: 'Muse Spark 1.2', + description: + 'Muse Spark 1.2 is a coding-focused update to Muse Spark 1.1 with improvements in code generation, complex debugging, codebase understanding, and end-to-end developer workflows.', + lifecycle: 'active', + docsUrl: 'https://openrouter.ai/models', + contextWindow: 1048576, + maxOutputTokens: 1048576, + structuredOutput: true, + lastUpdated: '2026-08-05', + capabilities: { vision: true, reasoning: true, functionCalling: true }, + thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high', 'xhigh'] }, + modalities: { input: ['text', 'image', 'pdf', 'audio'], output: ['text'] }, }, 'microsoft/phi-4': { displayName: 'Phi 4', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 16384, maxOutputTokens: 16384, + knowledgeCutoff: '2024-06-30', + structuredOutput: true, + lastUpdated: '2025-01-10', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'microsoft/wizardlm-2-8x22b': { displayName: 'WizardLM-2 8x22B', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 65535, maxOutputTokens: 8000, + knowledgeCutoff: '2024-04-30', + structuredOutput: false, + lastUpdated: '2024-04-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-01': { displayName: 'MiniMax-01', + description: 'MiniMax multimodal coding model for long-context reasoning and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000192, maxOutputTokens: 1000192, + knowledgeCutoff: '2024-03-31', + structuredOutput: false, + lastUpdated: '2025-01-15', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'minimax/minimax-m1': { displayName: 'MiniMax M1', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 40000, + knowledgeCutoff: '2024-06-30', + structuredOutput: false, + lastUpdated: '2025-06-17', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2': { displayName: 'MiniMax-M2', + description: 'Efficient open MiniMax model built for coding agents and tool-heavy workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 204800, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2025-10-27', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2-her': { displayName: 'MiniMax M2-her', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 65536, maxOutputTokens: 2048, + structuredOutput: false, + lastUpdated: '2026-01-23', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.1': { displayName: 'MiniMax-M2.1', + description: 'Earlier MiniMax agent model for practical coding and productivity tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 204800, maxOutputTokens: 131072, + structuredOutput: false, + lastUpdated: '2025-12-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.5': { displayName: 'MiniMax-M2.5', + description: 'Prior MiniMax coding model for agent workflows, office edits, and automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 204800, maxOutputTokens: 196608, + structuredOutput: true, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.7': { displayName: 'MiniMax-M2.7', + description: + 'Open MiniMax flagship for coding agents, office automation, and complex environments', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 204800, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m3': { displayName: 'MiniMax-M3', + description: + 'MiniMax multimodal model for long-context coding, perception, and agent planning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 512000, + structuredOutput: true, + lastUpdated: '2026-06-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/codestral-2508': { displayName: 'Codestral 2508', + description: 'Mistral coding model for code completion, generation, and developer workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-08-01', capabilities: { vision: false, reasoning: false, functionCalling: true }, - modalities: { input: ['text'], output: ['text'] }, + modalities: { input: ['text', 'pdf'], output: ['text'] }, }, 'mistralai/ministral-14b-2512': { displayName: 'Ministral 3 14B 2512', + description: + 'Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2025-12-02', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/ministral-3b-2512': { displayName: 'Ministral 3 3B 2512', + description: + 'Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2025-12-02', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/ministral-8b-2512': { displayName: 'Ministral 3 8B 2512', + description: + 'Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2025-12-02', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/mistral-large': { displayName: 'Mistral Large', + description: 'Flagship Mistral model for advanced reasoning, coding, and multilingual work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-11-30', + structuredOutput: true, + lastUpdated: '2024-02-26', capabilities: { vision: false, reasoning: false, functionCalling: true }, - modalities: { input: ['text'], output: ['text'] }, + modalities: { input: ['text', 'pdf'], output: ['text'] }, }, 'mistralai/mistral-large-2407': { displayName: 'Mistral Large 2407', + description: 'Flagship Mistral model for advanced reasoning, coding, and multilingual work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-03-31', + structuredOutput: true, + lastUpdated: '2024-11-19', capabilities: { vision: false, reasoning: false, functionCalling: true }, - modalities: { input: ['text'], output: ['text'] }, + modalities: { input: ['text', 'pdf'], output: ['text'] }, }, 'mistralai/mistral-large-2512': { displayName: 'Mistral Large 3', + description: + "Mistral's largest general model for enterprise agents, coding, and multilingual reasoning", lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-11', + structuredOutput: true, + lastUpdated: '2025-12-02', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'mistralai/mistral-medium-3': { displayName: 'Mistral Medium 3', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-05-07', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'mistralai/mistral-medium-3-5': { displayName: 'Mistral Medium 3.5', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'mistralai/mistral-medium-3.1': { displayName: 'Mistral Medium 3.1', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 262144, + knowledgeCutoff: '2025-06-30', + structuredOutput: true, + lastUpdated: '2025-08-13', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'mistralai/mistral-nemo': { displayName: 'Mistral Nemo', + description: 'Efficient Mistral-NVIDIA open model for multilingual chat and local deployment', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2024-07', + structuredOutput: true, + lastUpdated: '2024-07-01', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistralai/mistral-saba': { displayName: 'Saba', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-02-17', capabilities: { vision: false, reasoning: false, functionCalling: true }, - modalities: { input: ['text'], output: ['text'] }, + modalities: { input: ['text', 'pdf'], output: ['text'] }, }, 'mistralai/mistral-small-24b-instruct-2501': { displayName: 'Mistral Small 3', + description: 'Efficient Mistral model for fast chat, extraction, and production assistants', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32768, maxOutputTokens: 16384, + knowledgeCutoff: '2023-10-31', + structuredOutput: true, + lastUpdated: '2025-01-30', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'mistralai/mistral-small-2603': { displayName: 'Mistral Small 4', + description: 'Fast Mistral production model for chat, extraction, and cost-sensitive agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-06', + structuredOutput: true, + lastUpdated: '2026-03-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/mistral-small-3.1-24b-instruct': { displayName: 'Mistral Small 3.1 24B', + description: 'Efficient Mistral model for fast chat, extraction, and production assistants', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2023-10-31', + structuredOutput: false, + lastUpdated: '2025-03-17', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistralai/mistral-small-3.2-24b-instruct': { displayName: 'Mistral Small 3.2 24B', + description: 'Efficient Mistral model for fast chat, extraction, and production assistants', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-10-31', + structuredOutput: true, + lastUpdated: '2025-06-20', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'mistralai/mixtral-8x22b-instruct': { displayName: 'Mixtral 8x22B Instruct', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2024-01-31', + structuredOutput: true, + lastUpdated: '2024-04-17', capabilities: { vision: false, reasoning: false, functionCalling: true }, - modalities: { input: ['text'], output: ['text'] }, + modalities: { input: ['text', 'pdf'], output: ['text'] }, }, 'mistralai/voxtral-small-24b-2507': { displayName: 'Voxtral Small 24B 2507', + description: 'Efficient Mistral model for fast chat, extraction, and production assistants', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32000, maxOutputTokens: 32000, + structuredOutput: true, + lastUpdated: '2025-10-30', capabilities: { vision: false, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'audio', 'pdf'], output: ['text'] }, }, 'moonshotai/kimi-k2': { displayName: 'Kimi K2 0711', + description: 'Kimi model for long-context chat, coding, and agentic reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 100352, + knowledgeCutoff: '2024-12-31', + structuredOutput: false, + lastUpdated: '2025-07-11', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/kimi-k2-0905': { displayName: 'Kimi K2 0905', + description: 'Kimi model for long-context chat, coding, and agentic reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 100352, + knowledgeCutoff: '2024-12-31', + structuredOutput: true, + lastUpdated: '2025-09-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/kimi-k2-thinking': { displayName: 'Kimi K2 Thinking', + description: + 'Thinking Kimi model for slower research passes, planning, and hard technical questions', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 100352, + knowledgeCutoff: '2024-08', + structuredOutput: true, + lastUpdated: '2025-11-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/kimi-k2.5': { displayName: 'Kimi K2.5', + description: + 'Earlier Kimi frontier model for long-context agents, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k2.6': { displayName: 'Kimi K2.6', + description: 'Multimodal Kimi workhorse for agent loops, coding tasks, and visual context', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k2.7-code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k3': { displayName: 'Kimi K3', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 1048576, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'morph/morph-v3-fast': { displayName: 'Morph V3 Fast', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 81920, maxOutputTokens: 38000, + structuredOutput: false, + lastUpdated: '2025-07-07', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'morph/morph-v3-large': { displayName: 'Morph V3 Large', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2025-07-07', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nex-agi/nex-n2-mini': { displayName: 'Nex-N2-Mini', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-06-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nex-agi/nex-n2-pro': { displayName: 'Nex-N2-Pro', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: false, + lastUpdated: '2026-06-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nousresearch/hermes-3-llama-3.1-405b': { displayName: 'Hermes 3 405B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2023-12-31', + structuredOutput: true, + lastUpdated: '2024-08-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nousresearch/hermes-3-llama-3.1-70b': { displayName: 'Hermes 3 70B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2023-12-31', + structuredOutput: true, + lastUpdated: '2024-08-18', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nousresearch/hermes-4-405b': { displayName: 'Hermes 4 405B', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-08-31', + structuredOutput: false, + lastUpdated: '2025-08-26', capabilities: { vision: false, reasoning: true, functionCalling: false }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nousresearch/hermes-4-70b': { displayName: 'Hermes 4 70B', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-08-31', + structuredOutput: false, + lastUpdated: '2025-08-26', capabilities: { vision: false, reasoning: true, functionCalling: false }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-nano-30b-a3b': { displayName: 'Nemotron 3 Nano 30B A3B', + description: 'Small Nemotron 3 MoE for efficient coding, math, and long-context agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2025-12-15', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-nano-30b-a3b:free': { displayName: 'Nemotron 3 Nano 30B A3B (free)', + description: 'Small Nemotron 3 MoE for efficient coding, math, and long-context agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 256000, + structuredOutput: false, + lastUpdated: '2025-12-15', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free': { displayName: 'Nemotron 3 Nano Omni (free)', + description: 'Open Nemotron omni model combining reasoning with text, vision, and audio', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 65536, + structuredOutput: false, + lastUpdated: '2026-04-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'nvidia/nemotron-3-super-120b-a12b': { displayName: 'Nemotron 3 Super 120B A12B', + description: + 'Nemotron middle tier for collaborative agents and high-volume reasoning workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-03-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium'] }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-super-120b-a12b:free': { displayName: 'Nemotron 3 Super (free)', + description: + 'Nemotron middle tier for collaborative agents and high-volume reasoning workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-03-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium'] }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-ultra-550b-a55b': { displayName: 'Nemotron 3 Ultra 550B A55B', + description: 'Largest Nemotron 3 model for maximum open-weight reasoning and agent accuracy', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 512288, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-06-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-ultra-550b-a55b:free': { displayName: 'Nemotron 3 Ultra (free)', + description: 'Largest Nemotron 3 model for maximum open-weight reasoning and agent accuracy', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 65536, + structuredOutput: false, + lastUpdated: '2026-06-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3.5-content-safety:free': { displayName: 'Nemotron 3.5 Content Safety (free)', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 8192, + structuredOutput: false, + lastUpdated: '2026-06-04', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/nemotron-nano-12b-v2-vl:free': { displayName: 'Nemotron Nano 12B 2 VL (free)', + description: 'Nemotron multimodal model for visual reasoning and agentic AI workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 128000, + structuredOutput: false, + lastUpdated: '2025-10-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/nemotron-nano-9b-v2:free': { displayName: 'Nemotron Nano 9B V2 (free)', + description: 'Compact Nemotron model for efficient reasoning and deployable AI agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2025-08-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-3.5-turbo': { displayName: 'GPT-3.5-turbo', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 16385, maxOutputTokens: 4096, + knowledgeCutoff: '2021-09-01', + structuredOutput: true, + lastUpdated: '2023-11-06', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-3.5-turbo-0613': { displayName: 'GPT-3.5 Turbo (older v0613)', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 4095, maxOutputTokens: 4096, + knowledgeCutoff: '2021-09-30', + structuredOutput: true, + lastUpdated: '2024-01-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-3.5-turbo-16k': { displayName: 'GPT-3.5 Turbo 16k', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 16385, maxOutputTokens: 4096, + knowledgeCutoff: '2021-09-30', + structuredOutput: true, + lastUpdated: '2023-08-28', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-3.5-turbo-instruct': { displayName: 'GPT-3.5 Turbo Instruct', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 4095, maxOutputTokens: 4096, + knowledgeCutoff: '2021-09-30', + structuredOutput: true, + lastUpdated: '2023-09-28', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-4': { displayName: 'GPT-4', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 8191, maxOutputTokens: 4096, + knowledgeCutoff: '2023-11', + structuredOutput: true, + lastUpdated: '2024-04-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-4-turbo': { displayName: 'GPT-4 Turbo', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-12', + structuredOutput: true, + lastUpdated: '2024-04-09', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-4-turbo-preview': { displayName: 'GPT-4 Turbo Preview', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-12-31', + structuredOutput: true, + lastUpdated: '2024-01-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-4.1': { displayName: 'GPT-4.1', + description: + 'Long-lived GPT workhorse for coding, instruction following, and production apps', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1047576, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-04-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4.1-mini': { displayName: 'GPT-4.1 mini', + description: 'Affordable GPT-4.1 lane for fast coding help and structured extraction', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1047576, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-04-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4.1-nano': { displayName: 'GPT-4.1 nano', + description: 'Tiny GPT-4.1 option for classification, routing, and very high-volume tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1047576, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-04-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'openai/gpt-4o': { displayName: 'GPT-4o', + description: 'Omni-era GPT for multimodal chat, practical coding, and general assistants', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-08-06', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4o-2024-05-13': { displayName: 'GPT-4o (2024-05-13)', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-05-13', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4o-2024-08-06': { displayName: 'GPT-4o (2024-08-06)', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-08-06', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4o-2024-11-20': { displayName: 'GPT-4o (2024-11-20)', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-11-20', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4o-mini': { displayName: 'GPT-4o mini', + description: 'Small omni GPT for cheap multimodal assistance and production-scale traffic', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-07-18', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4o-mini-2024-07-18': { displayName: 'GPT-4o-mini (2024-07-18)', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-10-31', + structuredOutput: true, + lastUpdated: '2024-07-18', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5': { displayName: 'GPT-5', + description: 'Original GPT-5 workhorse for reasoning, coding, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5-image': { displayName: 'GPT-5 Image', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10-01', + structuredOutput: true, + lastUpdated: '2025-10-14', capabilities: { vision: true, reasoning: true, functionCalling: false }, - modalities: { input: ['image', 'text'], output: ['image', 'text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['image', 'text'] }, }, 'openai/gpt-5-image-mini': { displayName: 'GPT-5 Image Mini', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2025-10-16', capabilities: { vision: true, reasoning: true, functionCalling: false }, - modalities: { input: ['image', 'text'], output: ['image', 'text'] }, + modalities: { input: ['pdf', 'image', 'text'], output: ['image', 'text'] }, }, 'openai/gpt-5-mini': { displayName: 'GPT-5 Mini', + description: 'Small GPT-5 for responsive agents, coding help, and everyday automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-05-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5-nano': { displayName: 'GPT-5 Nano', + description: 'Tiny GPT-5 lane for routing, extraction, classification, and bulk jobs', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-05-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5-pro': { displayName: 'GPT-5 Pro', + description: 'Higher-accuracy GPT-5 tier for tough analysis, coding reviews, and planning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-10-06', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.1': { displayName: 'GPT-5.1', + description: 'Sharper GPT-5 generation for coding, product work, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.1-codex': { displayName: 'GPT-5.1 Codex', + description: 'Codex GPT for repository edits, code review, and practical software agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5.1-codex-max': { displayName: 'GPT-5.1 Codex Max', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5.1-codex-mini': { displayName: 'GPT-5.1 Codex mini', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5.2': { displayName: 'GPT-5.2', + description: + 'Reliable GPT generation for broad coding, writing, and tool-assisted product work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text'], output: ['text'] }, }, 'openai/gpt-5.2-chat': { displayName: 'GPT-5.2 Chat', + description: + 'Chat-tuned GPT model for conversational assistance, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2025-12-10', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text'], output: ['text'] }, }, 'openai/gpt-5.2-codex': { displayName: 'GPT-5.2 Codex', + description: + 'Code-specialist GPT for repository edits, reviews, and long-running software agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5.2-pro': { displayName: 'GPT-5.2 Pro', + description: 'Higher-accuracy GPT-5.2 variant for tougher reasoning and review workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.3-chat': { displayName: 'GPT-5.3 Chat', + description: + 'Chat-tuned GPT model for conversational assistance, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-03-03', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.3-codex': { displayName: 'GPT-5.3 Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-02-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.4': { displayName: 'GPT-5.4', + description: 'Agent-ready GPT for coding and computer-use workflows at a lower cost', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.4-image-2': { displayName: 'GPT-5.4 Image 2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 272000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['image', 'text'], output: ['image', 'text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['image', 'text'] }, }, 'openai/gpt-5.4-mini': { displayName: 'GPT-5.4 mini', + description: 'Strong small GPT for coding subagents, quick tool use, and high-volume work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text'], output: ['text'] }, }, 'openai/gpt-5.4-nano': { displayName: 'GPT-5.4 nano', + description: 'Cheapest GPT-5.4 lane for simple routing, extraction, and bulk automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text'], output: ['text'] }, }, 'openai/gpt-5.4-pro': { displayName: 'GPT-5.4 Pro', + description: 'More exact GPT-5.4 tier for demanding professional reasoning and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.5': { displayName: 'GPT-5.5', + description: 'Default frontier GPT for coding, computer use, research, and knowledge work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.5-pro': { displayName: 'GPT-5.5 Pro', + description: 'Highest-accuracy GPT-5.5 tier for slower, precision-heavy reasoning and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-luna': { displayName: 'GPT-5.6 Luna', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-luna-pro': { displayName: 'GPT-5.6 Luna Pro', + description: 'Frontier GPT model for professional reasoning, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-sol': { displayName: 'GPT-5.6 Sol', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-sol-pro': { displayName: 'GPT-5.6 Sol Pro', + description: 'Frontier GPT model for professional reasoning, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-terra': { displayName: 'GPT-5.6 Terra', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-terra-pro': { displayName: 'GPT-5.6 Terra Pro', + description: 'Frontier GPT model for professional reasoning, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-audio': { displayName: 'GPT Audio', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'audio'], output: ['text', 'audio'] }, }, 'openai/gpt-audio-mini': { displayName: 'GPT Audio Mini', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'audio'], output: ['text', 'audio'] }, }, 'openai/gpt-chat-latest': { displayName: 'GPT Chat Latest', + description: + 'Chat-tuned GPT model for conversational assistance, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 400000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-05-05', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-oss-120b': { displayName: 'GPT OSS 120B', + description: 'Open GPT reasoning model for self-hosted agents and controllable deployments', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-20b': { displayName: 'GPT OSS 20B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-20b:free': { displayName: 'gpt-oss-20b (free)', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-safeguard-20b': { displayName: 'gpt-oss-safeguard-20b', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2025-10-29', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/o1': { displayName: 'o1', + description: 'O-series reasoning model for hard analysis, math, coding, and planning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-12-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/o1-pro': { displayName: 'o1-pro', + description: 'O-series reasoning model for hard analysis, math, coding, and planning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2025-03-19', capabilities: { vision: true, reasoning: true, functionCalling: false }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/o3': { displayName: 'o3', + description: 'Deliberate o-series reasoner for hard math, coding, and multi-step analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/o3-mini': { displayName: 'o3-mini', + description: 'Smaller o-series reasoner for economical coding, math, and planning tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-01-29', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text'], output: ['text'] }, + modalities: { input: ['text', 'pdf'], output: ['text'] }, }, 'openai/o3-mini-high': { displayName: 'o3 Mini High', + description: 'O-series reasoning model for hard analysis, math, coding, and planning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2023-10-31', + structuredOutput: true, + lastUpdated: '2025-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high'] }, - modalities: { input: ['text'], output: ['text'] }, + modalities: { input: ['text', 'pdf'], output: ['text'] }, }, 'openai/o3-pro': { displayName: 'o3-pro', + description: 'High-effort o3 tier for difficult technical reasoning and careful answers', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-06-10', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'pdf', 'image'], output: ['text'] }, }, 'openai/o4-mini': { displayName: 'o4-mini', + description: 'Fast o-series model for compact reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'openai/o4-mini-high': { displayName: 'o4 Mini High', + description: 'O-series reasoning model for hard analysis, math, coding, and planning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-06-30', + structuredOutput: true, + lastUpdated: '2025-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'openrouter/auto': { displayName: 'Auto Router', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 2000000, maxOutputTokens: 2000000, + structuredOutput: true, + lastUpdated: '2023-11-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text', 'image'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text', 'image'] }, }, 'openrouter/bodybuilder': { displayName: 'Body Builder (beta)', + description: + 'Preview model for early access evaluation, prototyping, and compatibility testing', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 128000, + structuredOutput: false, + lastUpdated: '2025-12-05', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'openrouter/free': { displayName: 'Free Models Router', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, + inputLimit: 200000, maxOutputTokens: 8000, + structuredOutput: true, + lastUpdated: '2026-02-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openrouter/fusion': { displayName: 'Fusion', + description: 'General-purpose chat model for instruction following, writing, and analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + structuredOutput: false, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'openrouter/pareto-code': { displayName: 'Pareto Code Router', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 2000000, maxOutputTokens: 200000, + structuredOutput: false, + lastUpdated: '2026-04-21', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'perceptron/perceptron-mk1': { displayName: 'Perceptron Mk1', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32768, maxOutputTokens: 8192, + structuredOutput: true, + lastUpdated: '2026-05-12', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'perplexity/sonar': { displayName: 'Sonar', + description: 'Sonar search model for current answers, retrieval, and citation-backed chat', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 127072, maxOutputTokens: 127072, + structuredOutput: false, + lastUpdated: '2025-01-27', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'perplexity/sonar-deep-research': { displayName: 'Sonar Deep Research', + description: 'Sonar search model for current answers, retrieval, and citation-backed chat', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 128000, + structuredOutput: false, + lastUpdated: '2025-03-07', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'perplexity/sonar-pro': { displayName: 'Sonar Pro', + description: 'Advanced Sonar search model for deeper research and cited synthesis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 8000, + structuredOutput: false, + lastUpdated: '2025-03-07', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'perplexity/sonar-pro-search': { displayName: 'Sonar Pro Search', + description: 'Advanced Sonar search model for deeper research and cited synthesis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 200000, maxOutputTokens: 8000, + structuredOutput: true, + lastUpdated: '2025-10-30', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'perplexity/sonar-reasoning-pro': { displayName: 'Sonar Reasoning Pro', + description: 'Web-grounded reasoning model for multi-step research and cited answers', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 128000, + structuredOutput: false, + lastUpdated: '2025-03-07', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'poolside/laguna-s-2.1': { displayName: 'Laguna S 2.1', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: false, + lastUpdated: '2026-07-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'poolside/laguna-s-2.1:free': { displayName: 'Laguna S 2.1 (free)', + description: 'Free provider route for experiments, demos, and cost-sensitive chat workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-07-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'poolside/laguna-xs-2.1': { displayName: 'Laguna XS 2.1', + description: 'Agentic coding model from Poolside in the XS size class for local deployment', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'poolside/laguna-xs-2.1:free': { displayName: 'Laguna XS 2.1 (free)', + description: 'Free provider route for experiments, demos, and cost-sensitive chat workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen-2.5-72b-instruct': { displayName: 'Qwen2.5 72B Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32768, maxOutputTokens: 16384, + knowledgeCutoff: '2024-06-30', + structuredOutput: true, + lastUpdated: '2024-09-19', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen-2.5-7b-instruct': { displayName: 'Qwen2.5 7B Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2024-06-30', + structuredOutput: true, + lastUpdated: '2024-10-16', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen-2.5-coder-32b-instruct': { displayName: 'Qwen2.5 Coder 32B Instruct', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2024-06-30', + structuredOutput: false, + lastUpdated: '2024-11-11', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen-plus': { displayName: 'Qwen Plus', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-09-11', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen-plus-2025-07-28': { displayName: 'Qwen Plus 0728', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 32768, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-09-08', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen-plus-2025-07-28:thinking': { displayName: 'Qwen Plus 0728 (thinking)', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 32768, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-09-08', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen2.5-vl-72b-instruct': { displayName: 'Qwen2.5 VL 72B Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-06-30', + structuredOutput: true, + lastUpdated: '2025-02-01', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3-14b': { displayName: 'Qwen3 14B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-04-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-235b-a22b': { displayName: 'Qwen3 235B-A22B', + description: 'Large open Qwen MoE for multilingual reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2025-04', + structuredOutput: false, + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-235b-a22b-2507': { displayName: 'Qwen3 235B A22B Instruct 2507', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, - maxOutputTokens: 32768, + maxOutputTokens: 16384, + knowledgeCutoff: '2025-06-30', + structuredOutput: true, + lastUpdated: '2025-07-21', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-235b-a22b-thinking-2507': { displayName: 'Qwen3 235B A22B Thinking 2507', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-06-30', + structuredOutput: false, + lastUpdated: '2025-07-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-30b-a3b': { displayName: 'Qwen3 30B A3B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2025-03-31', + structuredOutput: false, + lastUpdated: '2025-04-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-30b-a3b-instruct-2507': { displayName: 'Qwen3 30B A3B Instruct 2507', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32000, + knowledgeCutoff: '2025-06-30', + structuredOutput: true, + lastUpdated: '2025-07-29', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-30b-a3b-thinking-2507': { displayName: 'Qwen3 30B A3B Thinking 2507', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 81920, maxOutputTokens: 32768, + knowledgeCutoff: '2025-06-30', + structuredOutput: false, + lastUpdated: '2025-08-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-32b': { displayName: 'Qwen3 32B', + description: 'Dense open Qwen model for self-hosted chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-8b': { displayName: 'Qwen3 8B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 8192, + knowledgeCutoff: '2025-03-31', + structuredOutput: false, + lastUpdated: '2025-04-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-coder': { displayName: 'Qwen3 Coder 480B A35B', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-06-30', + structuredOutput: true, + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-coder-30b-a3b-instruct': { displayName: 'Qwen3-Coder 30B-A3B Instruct', + description: 'Smaller Qwen coder for efficient local agents and repo-level fixes', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-coder-flash': { displayName: 'Qwen3 Coder Flash', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: false, + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-coder-next': { displayName: 'Qwen3 Coder Next', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-09', + structuredOutput: true, + lastUpdated: '2026-02-03', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-coder-plus': { displayName: 'Qwen3 Coder Plus', + description: 'Hosted Qwen coder for software agents, repo edits, and long-context code', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-max': { displayName: 'Qwen3 Max', + description: 'Flagship Qwen3 model for coding agents, complex reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-09-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-max-thinking': { displayName: 'Qwen3 Max Thinking', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-09', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-next-80b-a3b-instruct': { displayName: 'Qwen3-Next 80B-A3B Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-next-80b-a3b-thinking': { displayName: 'Qwen3-Next 80B-A3B (Thinking)', + description: 'Efficient Qwen thinking model for local reasoning, math, and coding agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-09', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-vl-235b-a22b-instruct': { displayName: 'Qwen3 VL 235B A22B Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-09-23', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3-vl-235b-a22b-thinking': { displayName: 'Qwen3 VL 235B A22B Thinking', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-09-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3-vl-30b-a3b-instruct': { displayName: 'Qwen3 VL 30B A3B Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, - maxOutputTokens: 32768, + maxOutputTokens: 16384, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-10-06', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3-vl-30b-a3b-thinking': { displayName: 'Qwen3 VL 30B A3B Thinking', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-10-06', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3-vl-32b-instruct': { displayName: 'Qwen3 VL 32B Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2025-10-23', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3-vl-8b-instruct': { displayName: 'Qwen3 VL 8B Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2025-10-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'qwen/qwen3-vl-8b-thinking': { displayName: 'Qwen3 VL 8B Thinking', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2025-10-14', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'qwen/qwen3.5-122b-a10b': { displayName: 'Qwen3.5 122B-A10B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, - maxOutputTokens: 65536, + maxOutputTokens: 81920, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.5-27b': { displayName: 'Qwen3.5 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.5-35b-a3b': { displayName: 'Qwen3.5 35B-A3B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.5-397b-a17b': { displayName: 'Qwen3.5 397B-A17B', + description: 'Large open Qwen multimodal MoE for visual agents and long technical tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.5-9b': { displayName: 'Qwen3.5 9B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.5-flash-02-23': { displayName: 'Qwen3.5-Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-02-25', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.5-plus-02-15': { displayName: 'Qwen3.5 Plus 2026-02-15', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-02-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.5-plus-20260420': { displayName: 'Qwen3.5 Plus 2026-04-20', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.6-27b': { displayName: 'Qwen3.6 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, - maxOutputTokens: 131072, + maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.6-35b-a3b': { displayName: 'Qwen3.6 35B-A3B', + description: 'Open multimodal Qwen MoE for local agents that need vision, audio, and code', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.6-flash': { displayName: 'Qwen3.6 Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-04-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.6-max-preview': { displayName: 'Qwen3.6 Max Preview', + description: 'Flagship Qwen model for complex reasoning, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-04-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3.6-plus': { displayName: 'Qwen3.6 Plus', + description: 'Earlier Qwen multimodal workhorse for million-token agent and document tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.7-flash': { displayName: 'Qwen3.7 Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, + inputLimit: 991000, maxOutputTokens: 65536, + structuredOutput: false, + lastUpdated: '2026-07-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.7-max': { displayName: 'Qwen3.7 Max', + description: + 'Qwen frontier model tuned for agent frameworks, coding assistants, and long tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-05-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3.7-plus': { displayName: 'Qwen3.7 Plus', + description: 'Multimodal Qwen workhorse for long-context agents, visual inputs, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-06-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.8-max': { displayName: 'Qwen3.8 Max', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-08-03', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'rekaai/reka-edge': { displayName: 'Reka Edge', + description: 'Multimodal model for analyzing text, images, documents, and rich media', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 16384, maxOutputTokens: 16384, + structuredOutput: true, + lastUpdated: '2026-03-20', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'rekaai/reka-flash-3': { displayName: 'Reka Flash 3', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01-31', + structuredOutput: true, + lastUpdated: '2025-03-12', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'relace/relace-apply-3': { displayName: 'Relace Apply 3', + description: 'General-purpose chat model for instruction following, writing, and analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 128000, + structuredOutput: false, + lastUpdated: '2025-09-26', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'relace/relace-search': { displayName: 'Relace Search', + description: + 'Tool-capable chat model for instruction following and agentic application workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 128000, + structuredOutput: false, + lastUpdated: '2025-12-08', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'sakana/fugu-ultra': { displayName: 'Fugu Ultra', + description: 'Quality-first multi-agent model for hard research, analysis, and competitions', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-06-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'xhigh', 'max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'sao10k/l3-lunaris-8b': { displayName: 'Llama 3 8B Lunaris', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 8192, maxOutputTokens: 16384, + knowledgeCutoff: '2023-12-31', + structuredOutput: true, + lastUpdated: '2024-08-13', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'sao10k/l3.1-euryale-70b': { displayName: 'Llama 3.1 Euryale 70B v2.2', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2023-12-31', + structuredOutput: true, + lastUpdated: '2024-08-28', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'sao10k/l3.3-euryale-70b': { displayName: 'Llama 3.3 Euryale 70B', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 16384, + knowledgeCutoff: '2023-12-31', + structuredOutput: true, + lastUpdated: '2024-12-18', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'stepfun/step-3.5-flash': { displayName: 'Step 3.5 Flash', + description: 'StepFun flash lane for quick multimodal reasoning and coding assistance', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: false, + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'stepfun/step-3.7-flash': { displayName: 'Step 3.7 Flash', + description: 'Newer StepFun flash model for faster agents, coding, and multimodal prompts', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2026-03-01', + structuredOutput: true, + lastUpdated: '2026-05-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'tencent/hunyuan-a13b-instruct': { displayName: 'Hunyuan A13B Instruct', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2025-03-31', + structuredOutput: true, + lastUpdated: '2025-07-08', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'tencent/hy3': { displayName: 'Hy3', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-07-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'tencent/hy3-preview': { displayName: 'Hy3 preview', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: false, + lastUpdated: '2026-04-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'thedrummer/cydonia-24b-v4.1': { displayName: 'Cydonia 24B V4.1', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-04-30', + structuredOutput: true, + lastUpdated: '2025-09-27', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'thedrummer/rocinante-12b': { displayName: 'Rocinante 12B', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2024-04-30', + structuredOutput: true, + lastUpdated: '2024-09-30', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'thedrummer/skyfall-36b-v2': { displayName: 'Skyfall 36B V2', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2024-06-30', + structuredOutput: true, + lastUpdated: '2025-03-10', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'thedrummer/unslopnemo-12b': { displayName: 'UnslopNemo 12B', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1024000, maxOutputTokens: 1024000, + knowledgeCutoff: '2024-04-30', + structuredOutput: true, + lastUpdated: '2024-11-08', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'thinkingmachines/inkling': { displayName: 'Inkling', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, maxOutputTokens: 1048576, + structuredOutput: false, + lastUpdated: '2026-07-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'minimal', 'low', 'medium', 'high', 'max'] }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'thinkingmachines/inkling-small': { displayName: 'Inkling Small', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 524288, maxOutputTokens: 262144, + structuredOutput: false, + lastUpdated: '2026-07-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'minimal', 'low', 'medium', 'high', 'max'] }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'undi95/remm-slerp-l2-13b': { displayName: 'ReMM SLERP 13B', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 6144, maxOutputTokens: 2048, + knowledgeCutoff: '2023-06-30', + structuredOutput: true, + lastUpdated: '2023-07-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'upstage/solar-pro-3': { displayName: 'Solar Pro 3', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', - contextWindow: 128000, - maxOutputTokens: 128000, + contextWindow: 131072, + maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-01-27', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'writer/palmyra-x5': { displayName: 'Palmyra X5', + description: 'General-purpose chat model for instruction following, writing, and analysis', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1040000, maxOutputTokens: 8192, + structuredOutput: false, + lastUpdated: '2026-01-21', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'x-ai/grok-4.20': { displayName: 'Grok 4.20', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 2000000, maxOutputTokens: 2000000, + knowledgeCutoff: '2025-09-01', + structuredOutput: true, + lastUpdated: '2026-03-31', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'x-ai/grok-4.20-multi-agent': { displayName: 'Grok 4.20 Multi-Agent', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 2000000, maxOutputTokens: 2000000, + knowledgeCutoff: '2025-09-01', + structuredOutput: true, + lastUpdated: '2026-03-31', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'x-ai/grok-4.3': { displayName: 'Grok 4.3', + description: + "xAI's default Grok for chat, coding, agentic tools, and lower hallucination risk", lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1000000, maxOutputTokens: 1000000, + structuredOutput: true, + lastUpdated: '2026-04-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'x-ai/grok-4.5': { displayName: 'Grok 4.5', + description: + "xAI's latest Grok for chat, coding, agentic tools, and lower hallucination risk", lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 500000, maxOutputTokens: 500000, + structuredOutput: true, + lastUpdated: '2026-07-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'x-ai/grok-build-0.1': { displayName: 'Grok Build 0.1', + description: 'Fast Grok coding model tuned for agentic engineering and iterative edits', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 256000, maxOutputTokens: 256000, + structuredOutput: true, + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xiaomi/mimo-v2.5': { displayName: 'MiMo-V2.5', + description: 'Open MiMo model for multimodal coding agents and long-context automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'xiaomi/mimo-v2.5-pro': { displayName: 'MiMo-V2.5-Pro', + description: 'Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1050000, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.5': { displayName: 'GLM-4.5', + description: 'Hybrid-reasoning GLM release that made the 4.5 line broadly useful', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 98304, + knowledgeCutoff: '2025-04', + structuredOutput: false, + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.5-air': { displayName: 'GLM-4.5-Air', + description: 'Lighter GLM-4.5 variant for fast coding assistance and cheaper agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 98304, + knowledgeCutoff: '2025-04', + structuredOutput: false, + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.5v': { displayName: 'GLM-4.5V', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 65536, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + structuredOutput: false, + lastUpdated: '2025-08-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'z-ai/glm-4.6': { displayName: 'GLM-4.6', + description: 'Late GLM-4 workhorse for coding agents, reasoning, and structured tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-09-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.6v': { displayName: 'GLM-4.6V', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + structuredOutput: false, + lastUpdated: '2025-12-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'z-ai/glm-4.7': { displayName: 'GLM-4.7', + description: 'Mature GLM model for dependable coding, reasoning, and structured agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.7-flash': { displayName: 'GLM-4.7-Flash', + description: 'Budget GLM lane for fast coding help, routing, and everyday automation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 202752, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + structuredOutput: true, + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5': { displayName: 'GLM-5', + description: + 'General GLM flagship for coding, analysis, and tool-heavy engineering workflows', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 204800, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5-turbo': { displayName: 'GLM-5-Turbo', + description: 'Faster GLM-5 lane for coding agents that need lower latency', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 202752, maxOutputTokens: 131072, + structuredOutput: false, + lastUpdated: '2026-03-16', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5.1': { displayName: 'GLM-5.1', + description: + 'Strong GLM coding model for agentic engineering, terminals, and repository generation', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 204800, - maxOutputTokens: 128000, + maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 1048576, - maxOutputTokens: 262144, + maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'xhigh'] }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5v-turbo': { displayName: 'GLM-5V-Turbo', + description: 'Fast GLM vision model for screenshots, documents, and multimodal agent tasks', lifecycle: 'active', docsUrl: 'https://openrouter.ai/models', contextWindow: 202752, maxOutputTokens: 131072, + structuredOutput: false, + lastUpdated: '2026-04-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, @@ -10580,451 +14652,603 @@ export const GENERATED_MODELS_DEV_METADATA: Record< siliconflow: { 'baidu/ERNIE-4.5-300B-A47B': { displayName: 'baidu/ERNIE-4.5-300B-A47B', + description: + 'Tool-capable chat model for instruction following and agentic application workflows', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 131000, maxOutputTokens: 131000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'ByteDance-Seed/Seed-OSS-36B-Instruct': { displayName: 'ByteDance-Seed/Seed-OSS-36B-Instruct', + description: + 'Tool-capable chat model for instruction following and agentic application workflows', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-R1': { displayName: 'deepseek-ai/DeepSeek-R1', + description: 'DeepSeek reasoning model for multi-step analysis, math, coding, and tools', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 164000, maxOutputTokens: 164000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V3': { displayName: 'deepseek-ai/DeepSeek-V3', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 164000, maxOutputTokens: 164000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V3.1': { displayName: 'deepseek-ai/DeepSeek-V3.1', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 164000, maxOutputTokens: 164000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V3.1-Terminus': { displayName: 'deepseek-ai/DeepSeek-V3.1-Terminus', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 164000, maxOutputTokens: 164000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V3.2': { displayName: 'deepseek-ai/DeepSeek-V3.2', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 164000, maxOutputTokens: 164000, + structuredOutput: true, + lastUpdated: '2025-12-03', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V3.2-Exp': { displayName: 'deepseek-ai/DeepSeek-V3.2-Exp', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 164000, maxOutputTokens: 164000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V4-Flash': { displayName: 'DeepSeek V4 Flash', + description: 'Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V4-Pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemma-4-26B-A4B-it': { displayName: 'Gemma 4 26B A4B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemma-4-31B-it': { displayName: 'Gemma 4 31B IT', + description: 'Largest Gemma 4 instruction model for open, self-hosted chat and reasoning', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'inclusionAI/Ling-flash-2.0': { displayName: 'inclusionAI/Ling-flash-2.0', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 131000, maxOutputTokens: 131000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M2.5': { displayName: 'MiniMaxAI/MiniMax-M2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 197000, maxOutputTokens: 131000, + structuredOutput: false, + lastUpdated: '2026-06-15', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/Kimi-K2.5': { displayName: 'moonshotai/Kimi-K2.5', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K2.6': { displayName: 'moonshotai/Kimi-K2.6', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2026-06-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-oss-120b': { displayName: 'openai/gpt-oss-120b', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 131000, maxOutputTokens: 8000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-20b': { displayName: 'openai/gpt-oss-20b', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 131000, maxOutputTokens: 8000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen2.5-72B-Instruct': { displayName: 'Qwen/Qwen2.5-72B-Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 33000, maxOutputTokens: 4000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen2.5-7B-Instruct': { displayName: 'Qwen/Qwen2.5-7B-Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 33000, maxOutputTokens: 4000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-14B': { displayName: 'Qwen/Qwen3-14B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 131000, maxOutputTokens: 131000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-235B-A22B-Thinking-2507': { displayName: 'Qwen/Qwen3-235B-A22B-Thinking-2507', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-30B-A3B-Instruct-2507': { displayName: 'Qwen/Qwen3-30B-A3B-Instruct-2507', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-32B': { displayName: 'Qwen/Qwen3-32B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 131000, maxOutputTokens: 131000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-8B': { displayName: 'Qwen/Qwen3-8B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 131000, maxOutputTokens: 131000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Coder-30B-A3B-Instruct': { displayName: 'Qwen/Qwen3-Coder-30B-A3B-Instruct', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Coder-480B-A35B-Instruct': { displayName: 'Qwen/Qwen3-Coder-480B-A35B-Instruct', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-VL-235B-A22B-Instruct': { displayName: 'Qwen/Qwen3-VL-235B-A22B-Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3-VL-235B-A22B-Thinking': { displayName: 'Qwen/Qwen3-VL-235B-A22B-Thinking', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3-VL-30B-A3B-Instruct': { displayName: 'Qwen/Qwen3-VL-30B-A3B-Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3-VL-30B-A3B-Thinking': { displayName: 'Qwen/Qwen3-VL-30B-A3B-Thinking', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3-VL-32B-Instruct': { displayName: 'Qwen/Qwen3-VL-32B-Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3-VL-32B-Thinking': { displayName: 'Qwen/Qwen3-VL-32B-Thinking', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3-VL-8B-Instruct': { displayName: 'Qwen/Qwen3-VL-8B-Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.5-122B-A10B': { displayName: 'Qwen3.5 122B-A10B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.5-27B': { displayName: 'Qwen3.5 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.5-35B-A3B': { displayName: 'Qwen3.5 35B-A3B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.5-397B-A17B': { displayName: 'Qwen3.5 397B-A17B', + description: 'Large open Qwen multimodal MoE for visual agents and long technical tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-02-15', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.5-9B': { displayName: 'Qwen/Qwen3.5-9B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.6-27B': { displayName: 'Qwen3.6 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.6-35B-A3B': { displayName: 'Qwen3.6 35B-A3B', + description: 'Open multimodal Qwen MoE for local agents that need vision, audio, and code', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262144, maxOutputTokens: 262144, + structuredOutput: true, + lastUpdated: '2026-04-17', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'stepfun-ai/Step-3.5-Flash': { displayName: 'stepfun-ai/Step-3.5-Flash', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2026-02-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'tencent/Hunyuan-A13B-Instruct': { displayName: 'tencent/Hunyuan-A13B-Instruct', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 131000, maxOutputTokens: 131000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'tencent/Hy3-preview': { displayName: 'Hy3 preview', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 262144, maxOutputTokens: 262144, + lastUpdated: '2026-04-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-4.5-Air': { displayName: 'zai-org/GLM-4.5-Air', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 131000, maxOutputTokens: 131000, + structuredOutput: true, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5': { displayName: 'zai-org/GLM-5', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 205000, maxOutputTokens: 205000, + structuredOutput: true, + lastUpdated: '2026-06-15', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5.1': { displayName: 'zai-org/GLM-5.1', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 205000, maxOutputTokens: 205000, + structuredOutput: true, + lastUpdated: '2026-04-08', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 1049000, maxOutputTokens: 262000, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5V-Turbo': { displayName: 'zai-org/GLM-5V-Turbo', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://cloud.siliconflow.com/models', contextWindow: 200000, maxOutputTokens: 131072, + lastUpdated: '2026-04-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -11033,76 +15257,102 @@ export const GENERATED_MODELS_DEV_METADATA: Record< stepfun: { 'step-1-32k': { displayName: 'Step 1 (32K)', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/overview/concept', contextWindow: 32768, + inputLimit: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2024-06', + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'step-2-16k': { displayName: 'Step 2 (16K)', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/overview/concept', contextWindow: 16384, + inputLimit: 16384, maxOutputTokens: 8192, + knowledgeCutoff: '2024-06', + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'step-3.5-flash': { displayName: 'Step 3.5 Flash', + description: 'StepFun flash lane for quick multimodal reasoning and coding assistance', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/overview/concept', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-06-15', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'step-3.5-flash-2603': { displayName: 'Step 3.5 Flash 2603', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/overview/concept', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-02', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'step-3.7-flash': { displayName: 'Step 3.7 Flash', + description: 'Newer StepFun flash model for faster agents, coding, and multimodal prompts', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/overview/concept', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2026-03-01', + lastUpdated: '2026-06-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'step-tts-2': { displayName: 'Step TTS 2', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/overview/concept', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'stepaudio-2.5-asr': { displayName: 'StepAudio 2.5 ASR', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/overview/concept', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'stepaudio-2.5-tts': { displayName: 'StepAudio 2.5 TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/overview/concept', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, @@ -11110,76 +15360,102 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'stepfun-ai': { 'step-1-32k': { displayName: 'Step 1 (32K)', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/overview/concept', contextWindow: 32768, + inputLimit: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2024-06', + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'step-2-16k': { displayName: 'Step 2 (16K)', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/overview/concept', contextWindow: 16384, + inputLimit: 16384, maxOutputTokens: 8192, + knowledgeCutoff: '2024-06', + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'step-3.5-flash': { displayName: 'Step 3.5 Flash', + description: 'StepFun flash lane for quick multimodal reasoning and coding assistance', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/overview/concept', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-06-15', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'step-3.5-flash-2603': { displayName: 'Step 3.5 Flash 2603', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/overview/concept', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-02', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'step-3.7-flash': { displayName: 'Step 3.7 Flash', + description: 'Newer StepFun flash model for faster agents, coding, and multimodal prompts', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/overview/concept', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2026-03-01', + lastUpdated: '2026-06-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'step-tts-2': { displayName: 'Step TTS 2', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/overview/concept', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'stepaudio-2.5-asr': { displayName: 'StepAudio 2.5 ASR', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/overview/concept', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'stepaudio-2.5-tts': { displayName: 'StepAudio 2.5 TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/overview/concept', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, @@ -11187,30 +15463,42 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'stepfun-ai-step-plan': { 'step-3.5-flash': { displayName: 'Step 3.5 Flash', + description: 'StepFun flash lane for quick multimodal reasoning and coding assistance', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/step-plan/integrations/reasoning-api', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'step-3.5-flash-2603': { displayName: 'Step 3.5 Flash 2603', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/step-plan/integrations/reasoning-api', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-02', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'step-3.7-flash': { displayName: 'Step 3.7 Flash', + description: 'Newer StepFun flash model for faster agents, coding, and multimodal prompts', lifecycle: 'active', docsUrl: 'https://platform.stepfun.ai/docs/en/step-plan/integrations/reasoning-api', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2026-03-01', + lastUpdated: '2026-05-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -11219,40 +15507,56 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'stepfun-step-plan': { 'step-3.5-flash': { displayName: 'Step 3.5 Flash', + description: 'StepFun flash lane for quick multimodal reasoning and coding assistance', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/step-plan/integrations/reasoning-api', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'step-3.5-flash-2603': { displayName: 'Step 3.5 Flash 2603', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/step-plan/integrations/reasoning-api', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-04-02', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'step-3.7-flash': { displayName: 'Step 3.7 Flash', + description: 'Newer StepFun flash model for faster agents, coding, and multimodal prompts', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/step-plan/integrations/reasoning-api', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2026-03-01', + lastUpdated: '2026-05-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'step-router-v1': { displayName: 'Step Router v1', + description: 'StepFun routing model that dispatches requests to the appropriate Step model.', lifecycle: 'active', docsUrl: 'https://platform.stepfun.com/docs/zh/step-plan/integrations/reasoning-api', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-05-29', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, @@ -11260,322 +15564,443 @@ export const GENERATED_MODELS_DEV_METADATA: Record< togetherai: { 'deepcogito/cogito-v2-1-671b': { displayName: 'Cogito v2.1 671B', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 163840, maxOutputTokens: 163840, + lastUpdated: '2025-11-13', capabilities: { vision: false, reasoning: true, functionCalling: false }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-R1': { displayName: 'DeepSeek-R1', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 163839, maxOutputTokens: 163839, + knowledgeCutoff: '2024-07', + lastUpdated: '2025-03-24', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V3': { displayName: 'DeepSeek-V3', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-07', + lastUpdated: '2025-05-29', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek-ai/DeepSeek-V3-1': { displayName: 'DeepSeek V3.1', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2025-08', + lastUpdated: '2025-08-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, + 'deepseek-ai/DeepSeek-V4-Flash-0731': { + displayName: 'DeepSeek V4 Flash 0731', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', + lifecycle: 'active', + docsUrl: 'https://docs.together.ai/docs/serverless-models', + contextWindow: 1000000, + maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', + capabilities: { vision: false, reasoning: true, functionCalling: true }, + thinkingOptions: { efforts: ['high', 'max'], toggle: true }, + modalities: { input: ['text'], output: ['text'] }, + }, 'deepseek-ai/DeepSeek-V4-Pro': { displayName: 'DeepSeek V4 Pro', + description: 'Flagship DeepSeek model for coding, reasoning, and agentic work', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 512000, maxOutputTokens: 384000, + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'essentialai/Rnj-1-Instruct': { displayName: 'Rnj-1 Instruct', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 32768, maxOutputTokens: 32768, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-12-05', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemma-3n-E4B-it': { displayName: 'Gemma 3N E4B Instruct', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 32768, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2025-05-20', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemma-4-31B-it': { displayName: 'Gemma 4 31B Instruct', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 262144, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'LiquidAI/LFM2-24B-A2B': { displayName: 'LFM2-24B-A2B', + description: + 'Open-weight instruction model for adaptable chat and self-hosted production workloads', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 32768, maxOutputTokens: 32768, + lastUpdated: '2026-02-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'meta-llama/Llama-3.3-70B-Instruct-Turbo': { displayName: 'Llama 3.3 70B', + description: 'Compact Llama instruction model for fast chat and local deployment', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2023-12', + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta-llama/Meta-Llama-3-8B-Instruct-Lite': { displayName: 'Meta Llama 3 8B Instruct Lite', + description: 'Compact Llama instruction model for fast chat and local deployment', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2024-04-18', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M2.5': { displayName: 'MiniMax-M2.5', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M2.7': { displayName: 'MiniMax-M2.7', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 202752, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'MiniMaxAI/MiniMax-M3': { displayName: 'MiniMax-M3', + description: 'MiniMax multimodal coding model for long-context reasoning and agent tasks', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 524288, maxOutputTokens: 250000, + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K2.5': { displayName: 'Kimi K2.5', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2026-01', + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K2.6': { displayName: 'Kimi K2.6', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 262144, maxOutputTokens: 131000, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/Kimi-K2.7-Code': { displayName: 'Kimi K2.7 Code', + description: 'Kimi coding model for software agents, refactors, and repository reasoning', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 262144, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-14', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/Kimi-K3': { displayName: 'Kimi K3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/nemotron-3-ultra-550b-a55b': { displayName: 'Nemotron 3 Ultra 550B A55B', + description: 'Largest Nemotron 3 model for maximum open-weight reasoning and agent accuracy', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 512300, maxOutputTokens: 512300, + structuredOutput: true, + lastUpdated: '2026-06-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-120b': { displayName: 'GPT OSS 120B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2025-08', + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-20b': { displayName: 'GPT OSS 20B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 131072, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'pearl-ai/gemma-4-31b-it': { displayName: 'Pearl AI Gemma 4 31B Instruct', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 32000, maxOutputTokens: 32000, + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen2.5-7B-Instruct-Turbo': { displayName: 'Qwen 2.5 7B Instruct Turbo', + description: 'Efficient Qwen model for fast chat, extraction, and high-volume workloads', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 32768, maxOutputTokens: 32768, + structuredOutput: true, + lastUpdated: '2024-09-19', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-235B-A22B-Instruct-2507-tput': { displayName: 'Qwen3 235B A22B Instruct 2507 FP8', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-07', + lastUpdated: '2025-07-25', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8': { displayName: 'Qwen3 Coder 480B A35B Instruct', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3-Coder-Next-FP8': { displayName: 'Qwen3 Coder Next FP8', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2026-02-03', + lastUpdated: '2026-02-03', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.5-397B-A17B': { displayName: 'Qwen3.5 397B A17B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 262144, maxOutputTokens: 130000, + lastUpdated: '2026-06-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.5-9B': { displayName: 'Qwen3.5 9B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 262144, maxOutputTokens: 65536, + structuredOutput: true, + lastUpdated: '2026-03-03', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'Qwen/Qwen3.6-Plus': { displayName: 'Qwen3.6 Plus', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 1000000, maxOutputTokens: 500000, + lastUpdated: '2026-04-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'Qwen/Qwen3.7-Max': { displayName: 'Qwen3.7 Max', + description: 'Flagship Qwen model for complex reasoning, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 1000000, maxOutputTokens: 500000, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'thinkingmachines/Inkling': { displayName: 'Inkling', + description: + 'Multimodal MoE reasoning model (975B total, 41B active) for text, image, and audio', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 524288, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['max', 'xhigh', 'high', 'medium', 'low', 'none'] }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'zai-org/GLM-5': { displayName: 'GLM-5', + description: + 'General GLM flagship for coding, analysis, and tool-heavy engineering workflows', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 202752, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-02-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5.1': { displayName: 'GLM-5.1', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'deprecated', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 202752, maxOutputTokens: 131072, + knowledgeCutoff: '2025-11', + structuredOutput: true, + lastUpdated: '2026-07-02', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai-org/GLM-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://docs.together.ai/docs/serverless-models', contextWindow: 262144, maxOutputTokens: 164000, + structuredOutput: true, + lastUpdated: '2026-06-16', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, @@ -11584,75 +16009,92 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'tencent-coding-plan': { 'glm-5': { displayName: 'GLM-5', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1772/128947', contextWindow: 202752, maxOutputTokens: 16384, + lastUpdated: '2026-02-11', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'hunyuan-2.0-instruct': { displayName: 'Tencent HY 2.0 Instruct', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1772/128947', contextWindow: 131072, maxOutputTokens: 16384, + lastUpdated: '2026-03-08', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'hunyuan-2.0-thinking': { displayName: 'Tencent HY 2.0 Think', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1772/128947', contextWindow: 131072, maxOutputTokens: 16384, + lastUpdated: '2026-03-08', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'hunyuan-t1': { displayName: 'Hunyuan-T1', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1772/128947', contextWindow: 131072, maxOutputTokens: 16384, + lastUpdated: '2026-03-08', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'hunyuan-turbos': { displayName: 'Hunyuan-TurboS', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1772/128947', contextWindow: 131072, maxOutputTokens: 16384, + lastUpdated: '2026-03-08', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kimi-k2.5': { displayName: 'Kimi-K2.5', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1772/128947', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'minimax-m2.5': { displayName: 'MiniMax-M2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1772/128947', contextWindow: 204800, maxOutputTokens: 32768, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'tc-code-latest': { displayName: 'Auto', + description: 'Automatic model router for matching prompts to suitable backends and budgets', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1772/128947', contextWindow: 131072, maxOutputTokens: 16384, + lastUpdated: '2026-03-08', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, @@ -11660,10 +16102,12 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'tencent-token-plan': { hy3: { displayName: 'Hy3', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1823/130060', contextWindow: 256000, maxOutputTokens: 64000, + lastUpdated: '2026-07-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, @@ -11672,20 +16116,24 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'tencent-tokenhub': { hy3: { displayName: 'Hy3', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1823/130050', contextWindow: 256000, maxOutputTokens: 64000, + lastUpdated: '2026-07-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'hy3-preview': { displayName: 'Hy3 preview', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://cloud.tencent.com/document/product/1823/130050', contextWindow: 256000, maxOutputTokens: 64000, + lastUpdated: '2026-04-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, @@ -11694,3419 +16142,4495 @@ export const GENERATED_MODELS_DEV_METADATA: Record< vercel: { 'alibaba/qwen-3-14b': { displayName: 'Qwen3-14B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 40960, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen-3-235b': { displayName: 'Qwen3 235B A22B Instruct 2507', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262144, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen-3-30b': { displayName: 'Qwen3-30B-A3B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 40960, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen-3-32b': { displayName: 'Qwen 3.32B', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 8192, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen-3.6-max-preview': { displayName: 'Qwen 3.6 Max Preview', + description: 'Flagship Qwen model for complex reasoning, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 240000, maxOutputTokens: 64000, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-235b-a22b-thinking': { displayName: 'Qwen3 235B A22B Thinking 2507', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'alibaba/qwen3-coder': { displayName: 'Qwen3 Coder 480B A35B Instruct', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-coder-30b-a3b': { displayName: 'Qwen 3 Coder 30B A3B Instruct', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262144, maxOutputTokens: 8192, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-coder-next': { displayName: 'Qwen3 Coder Next', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2025-09', + structuredOutput: true, + lastUpdated: '2026-02-03', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-coder-plus': { displayName: 'Qwen3 Coder Plus', + description: 'Hosted Qwen coder for software agents, repo edits, and long-context code', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-embedding-0.6b': { displayName: 'Qwen3 Embedding 0.6B', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32768, maxOutputTokens: 32768, + lastUpdated: '2025-11-14', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-embedding-4b': { displayName: 'Qwen3 Embedding 4B', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32768, maxOutputTokens: 32768, + lastUpdated: '2025-06-05', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-embedding-8b': { displayName: 'Qwen3 Embedding 8B', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32768, maxOutputTokens: 32768, + lastUpdated: '2025-06-05', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-max': { displayName: 'Qwen3 Max', + description: 'Flagship Qwen3 model for coding agents, complex reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-max-preview': { displayName: 'Qwen3 Max Preview', + description: 'Flagship Qwen model for complex reasoning, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-max-thinking': { displayName: 'Qwen 3 Max Thinking', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-01', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-next-80b-a3b-instruct': { displayName: 'Qwen3 Next 80B A3B Instruct', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-next-80b-a3b-thinking': { displayName: 'Qwen3 Next 80B A3B Thinking', + description: 'Efficient Qwen thinking model for local reasoning, math, and coding agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-09', + lastUpdated: '2025-09', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3-vl-235b-a22b-instruct': { displayName: 'Qwen3 VL 235B A22B Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 129024, + lastUpdated: '2026-05-01', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'alibaba/qwen3-vl-instruct': { displayName: 'Qwen3 VL Instruct', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 129024, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-24', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'alibaba/qwen3-vl-thinking': { displayName: 'Qwen3 VL Thinking', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-09', + lastUpdated: '2025-09-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'alibaba/qwen3.5-flash': { displayName: 'Qwen 3.5 Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 64000, + structuredOutput: true, + lastUpdated: '2026-02-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'alibaba/qwen3.5-plus': { displayName: 'Qwen 3.5 Plus', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-02-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'alibaba/qwen3.6-27b': { displayName: 'Qwen 3.6 27B', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 256000, + structuredOutput: true, + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'alibaba/qwen3.6-plus': { displayName: 'Qwen 3.6 Plus', + description: 'Earlier Qwen multimodal workhorse for million-token agent and document tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'alibaba/qwen3.7-flash': { displayName: 'Qwen 3.7 Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 991000, maxOutputTokens: 64000, + structuredOutput: true, + lastUpdated: '2026-07-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'alibaba/qwen3.7-max': { displayName: 'Qwen 3.7 Max', + description: + 'Qwen frontier model tuned for agent frameworks, coding assistants, and long tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 991000, maxOutputTokens: 64000, + lastUpdated: '2026-05-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'alibaba/qwen3.7-plus': { displayName: 'Qwen 3.7 Plus', + description: 'Multimodal Qwen workhorse for long-context agents, visual inputs, and coding', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-06-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'alibaba/qwen3.8-max': { displayName: 'Qwen 3.8 Max', + description: + 'Preview Qwen flagship for million-token multimodal reasoning and long-horizon agentic workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + lastUpdated: '2026-07-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'alibaba/wan-v2.5-t2v-preview': { displayName: 'Wan v2.5 Text-to-Video Preview', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-09-24', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'alibaba/wan-v2.6-i2v': { displayName: 'Wan v2.6 Image-to-Video', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-12-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'alibaba/wan-v2.6-i2v-flash': { displayName: 'Wan v2.6 Image-to-Video Flash', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-12-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'alibaba/wan-v2.6-r2v': { displayName: 'Wan v2.6 Reference-to-Video', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-12-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'alibaba/wan-v2.6-r2v-flash': { displayName: 'Wan v2.6 Reference-to-Video Flash', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-12-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'alibaba/wan-v2.6-t2v': { displayName: 'Wan v2.6 Text-to-Video', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-12-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'alibaba/wan-v2.7-r2v': { displayName: 'Wan v2.7 Reference-to-Video', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'alibaba/wan-v2.7-t2v': { displayName: 'Wan v2.7 Text-to-Video', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'amazon/nova-2-lite': { displayName: 'Nova 2 Lite', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 1000000, + knowledgeCutoff: '2024-10', + lastUpdated: '2024-12-01', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'amazon/nova-lite': { displayName: 'Nova Lite', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 300000, maxOutputTokens: 8192, + knowledgeCutoff: '2024-10', + lastUpdated: '2024-12-03', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'amazon/nova-micro': { displayName: 'Nova Micro', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 8192, + knowledgeCutoff: '2024-10', + lastUpdated: '2024-12-03', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'amazon/nova-pro': { displayName: 'Nova Pro', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 300000, maxOutputTokens: 8192, + knowledgeCutoff: '2024-10', + lastUpdated: '2024-12-03', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'amazon/titan-embed-text-v2': { displayName: 'Titan Text Embeddings V2', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2024-04', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'anthropic/claude-3-haiku': { displayName: 'Claude Haiku 3', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-08-31', + lastUpdated: '2024-03-13', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'anthropic/claude-fable-5': { displayName: 'Claude Fable 5', + description: 'Claude model for creative writing, analysis, and controlled agent workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-06-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-haiku-4.5': { displayName: 'Claude Haiku 4.5', + description: 'Fast Claude lane for lightweight agents, office tasks, and responsive chat', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-02-28', + lastUpdated: '2025-10-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4': { displayName: 'Claude Opus 4', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 8192, + knowledgeCutoff: '2025-03-31', + lastUpdated: '2025-05-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, - }, - 'anthropic/claude-opus-4.1': { - displayName: 'Claude Opus 4.1', - lifecycle: 'deprecated', - docsUrl: - 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', - contextWindow: 200000, - maxOutputTokens: 32000, - capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.5': { displayName: 'Claude Opus 4.5', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-11-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.6': { displayName: 'Claude Opus 4.6', + description: 'High-end Claude for difficult coding, planning, and slower expert reasoning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-05-31', + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.7': { displayName: 'Claude Opus 4.7', + description: 'Stronger Opus tier for advanced software work and high-stakes reasoning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.8': { displayName: 'Claude Opus 4.8', + description: + 'Top Claude Opus tier for the hardest reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.8-fast': { displayName: 'Claude Opus 4.8 (Fast)', + description: + 'Top Claude Opus tier for the hardest reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-5': { displayName: 'Claude Opus 5', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-05', + lastUpdated: '2026-07-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, - }, - 'anthropic/claude-opus-5-fast': { - displayName: 'Claude Opus 5 (Fast)', - lifecycle: 'active', - docsUrl: - 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', - contextWindow: 1000000, - maxOutputTokens: 128000, - capabilities: { vision: true, reasoning: true, functionCalling: true }, - thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-4': { displayName: 'Claude Sonnet 4', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 8192, + knowledgeCutoff: '2025-03-31', + lastUpdated: '2025-05-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-4.5': { displayName: 'Claude Sonnet 4.5', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-07-31', + structuredOutput: true, + lastUpdated: '2025-09-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-4.6': { displayName: 'Claude Sonnet 4.6', + description: + 'Claude workhorse for coding agents, careful analysis, and production cost control', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-5': { displayName: 'Claude Sonnet 5', + description: 'Everyday Claude agent model for coding, planning, browsing, and general work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'], toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'arcee-ai/trinity-large-thinking': { displayName: 'Trinity Large Thinking', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262100, maxOutputTokens: 80000, + lastUpdated: '2026-04-03', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'arcee-ai/trinity-mini': { displayName: 'Trinity Mini', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-12', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'bfl/flux-2-flex': { displayName: 'FLUX.2 [flex]', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bfl/flux-2-klein-4b': { displayName: 'FLUX.2 [klein] 4B', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bfl/flux-2-klein-9b': { displayName: 'FLUX.2 [klein] 9B', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bfl/flux-2-max': { displayName: 'FLUX.2 [max]', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 67300, maxOutputTokens: 67300, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bfl/flux-2-pro': { displayName: 'FLUX.2 [pro]', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 67300, maxOutputTokens: 67300, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, + 'bfl/flux-3-video': { + displayName: 'Flux 3', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', + lifecycle: 'active', + docsUrl: + 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', + contextWindow: 0, + maxOutputTokens: 0, + lastUpdated: '2026-08-04', + capabilities: { vision: false, reasoning: false, functionCalling: false }, + modalities: { input: ['text'], output: [] }, + }, 'bfl/flux-kontext-max': { displayName: 'FLUX.1 Kontext Max', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 512, maxOutputTokens: 0, + lastUpdated: '2025-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bfl/flux-kontext-pro': { displayName: 'FLUX.1 Kontext Pro', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 512, maxOutputTokens: 0, + lastUpdated: '2025-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bfl/flux-pro-1.0-fill': { displayName: 'FLUX.1 Fill [pro]', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 512, maxOutputTokens: 0, + lastUpdated: '2024-10', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bfl/flux-pro-1.1': { displayName: 'FLUX1.1 [pro]', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 512, maxOutputTokens: 0, + lastUpdated: '2024-10', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bfl/flux-pro-1.1-ultra': { displayName: 'FLUX1.1 [pro] Ultra', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 512, maxOutputTokens: 0, + lastUpdated: '2024-11', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bytedance/seed-1.6': { displayName: 'Seed 1.6', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 32000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'bytedance/seed-1.8': { displayName: 'Seed 1.8', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-10', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'bytedance/seedance-2.0': { displayName: 'Seedance 2.0', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-04-14', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'bytedance/seedance-2.0-fast': { displayName: 'Seedance 2.0 Fast', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-04-14', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'bytedance/seedance-v1.0-pro': { displayName: 'Seedance v1.0 Pro', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-06-11', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'bytedance/seedance-v1.0-pro-fast': { displayName: 'Seedance v1.0 Pro Fast', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-10-31', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'bytedance/seedance-v1.5-pro': { displayName: 'Seedance v1.5 Pro', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-12-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'bytedance/seedream-4.0': { displayName: 'Seedream 4.0', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-08-28', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bytedance/seedream-4.5': { displayName: 'Seedream 4.5', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-11-28', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bytedance/seedream-5.0-lite': { displayName: 'Seedream 5.0 Lite', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-01-28', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'bytedance/seedream-5.0-pro': { displayName: 'Seedream 5.0 Pro', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-11', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'cohere/command-a': { displayName: 'Command A', + description: 'Cohere command model for multilingual enterprise agents, tools, and chat', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 8000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-03-13', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'cohere/embed-v4.0': { displayName: 'Embed v4.0', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 1536, + lastUpdated: '2025-04-15', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'cohere/rerank-v3.5': { displayName: 'Cohere Rerank 3.5', + description: + 'Reranking model for improving retrieval quality in search and recommendation systems', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 4096, maxOutputTokens: 4096, + lastUpdated: '2024-12-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'cohere/rerank-v4-fast': { displayName: 'Cohere Rerank 4 Fast', + description: + 'Reranking model for improving retrieval quality in search and recommendation systems', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 32000, + lastUpdated: '2025-12-11', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'cohere/rerank-v4-pro': { displayName: 'Cohere Rerank 4 Pro', + description: + 'Reranking model for improving retrieval quality in search and recommendation systems', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 32000, + lastUpdated: '2025-12-11', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-r1': { displayName: 'DeepSeek-R1', + description: 'DeepSeek reasoning model for multi-step analysis, math, coding, and tools', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 32768, + knowledgeCutoff: '2024-07', + lastUpdated: '2025-05-29', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v3': { displayName: 'DeepSeek V3 0324', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 163840, maxOutputTokens: 163840, + knowledgeCutoff: '2024-07', + lastUpdated: '2024-12-26', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v3.1': { displayName: 'DeepSeek-V3.1', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 163840, maxOutputTokens: 128000, + knowledgeCutoff: '2024-07', + lastUpdated: '2025-08-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v3.1-terminus': { displayName: 'DeepSeek V3.1 Terminus', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 65536, + knowledgeCutoff: '2025-07', + lastUpdated: '2025-09-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v3.2': { displayName: 'DeepSeek V3.2', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 8000, + knowledgeCutoff: '2024-07', + structuredOutput: true, + lastUpdated: '2025-12-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v3.2-thinking': { displayName: 'DeepSeek V3.2 Thinking', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 8000, + knowledgeCutoff: '2024-07', + lastUpdated: '2025-12-01', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v4-flash': { displayName: 'DeepSeek V4 Flash', + description: 'Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'xhigh'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v4-flash-0731': { displayName: 'DeepSeek V4 Flash 0731', + description: + 'Official DeepSeek V4 Flash release with enhanced agentic capabilities and integrated DSpark speculative decoding', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-07-31', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v4-pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', - contextWindow: 1000000, - maxOutputTokens: 384000, + contextWindow: 1048600, + maxOutputTokens: 1048600, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'xhigh'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, + 'fish-audio/s1': { + displayName: 'S1', + description: 'Speech generation model for controllable voice, narration, and audio delivery', + lifecycle: 'active', + docsUrl: + 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', + contextWindow: 0, + maxOutputTokens: 0, + lastUpdated: '2025-10-20', + capabilities: { vision: false, reasoning: false, functionCalling: false }, + modalities: { input: ['text'], output: ['audio'] }, + }, + 'fish-audio/s2-pro': { + displayName: 'S2 Pro', + description: 'Speech generation model for controllable voice, narration, and audio delivery', + lifecycle: 'active', + docsUrl: + 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', + contextWindow: 0, + maxOutputTokens: 0, + lastUpdated: '2026-03-09', + capabilities: { vision: false, reasoning: false, functionCalling: false }, + modalities: { input: ['text'], output: ['audio'] }, + }, + 'fish-audio/s2.1-pro': { + displayName: 'S2.1 Pro', + description: 'Speech generation model for controllable voice, narration, and audio delivery', + lifecycle: 'active', + docsUrl: + 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', + contextWindow: 0, + maxOutputTokens: 0, + lastUpdated: '2026-07-28', + capabilities: { vision: false, reasoning: false, functionCalling: false }, + modalities: { input: ['text'], output: ['audio'] }, + }, + 'fish-audio/transcribe-1': { + displayName: 'Transcribe-1', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', + lifecycle: 'active', + docsUrl: + 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', + contextWindow: 0, + maxOutputTokens: 0, + lastUpdated: '2026-03-01', + capabilities: { vision: false, reasoning: false, functionCalling: false }, + modalities: { input: ['audio'], output: ['text'] }, + }, 'google/gemini-2.5-flash': { displayName: 'Gemini 2.5 Flash', + description: 'Fast Gemini workhorse for multimodal apps where latency and price matter', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-2.5-flash-image': { displayName: 'Nano Banana (Gemini 2.5 Flash Image)', + description: + 'Nano Banana image model for fast generation, edits, and character-consistent assets', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32768, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + lastUpdated: '2025-08-26', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'google/gemini-2.5-flash-lite': { displayName: 'Gemini 2.5 Flash Lite', + description: 'Lean Gemini 2.5 lane for cheap multimodal traffic and quick agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'google/gemini-2.5-pro': { displayName: 'Gemini 2.5 Pro', + description: "Google's proven reasoning model for coding, math, and multimodal analysis", lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-3-flash': { displayName: 'Gemini 3 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 65000, + knowledgeCutoff: '2025-03', + lastUpdated: '2025-12-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'google/gemini-3-pro-image': { displayName: 'Nano Banana Pro', + description: 'Nano Banana Pro for higher-fidelity image generation and design-heavy edits', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 65536, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'google/gemini-3.1-flash-image': { displayName: 'Nano Banana 2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'high'] }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'google/gemini-3.1-flash-image-preview': { displayName: 'Gemini 3.1 Flash Image Preview (Nano Banana 2)', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-26', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'high'] }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'google/gemini-3.1-flash-lite': { displayName: 'Gemini 3.1 Flash Lite', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 65000, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'google/gemini-3.1-flash-lite-image': { displayName: 'Gemini 3.1 Flash Lite Image (Nano Banana 2 Lite)', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 65536, maxOutputTokens: 4096, + knowledgeCutoff: '2025-01', + structuredOutput: false, + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text', 'image'] }, }, 'google/gemini-3.1-pro-preview': { displayName: 'Gemini 3.1 Pro Preview', + description: 'Reasoning-first Gemini preview for agentic coding and complex problem solving', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-02-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'google/gemini-3.5-flash': { displayName: 'Gemini 3.5 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'google/gemini-3.5-flash-lite': { displayName: 'Gemini 3.5 Flash Lite', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 65000, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'google/gemini-3.6-flash': { displayName: 'Gemini 3.6 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2026-03', + structuredOutput: true, + lastUpdated: '2026-07-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'google/gemini-embedding-001': { displayName: 'Gemini Embedding 001', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + knowledgeCutoff: '2025-05', + lastUpdated: '2025-05-20', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemini-embedding-2': { displayName: 'Gemini Embedding 2', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + knowledgeCutoff: '2025-11', + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemini-omni-flash-preview': { displayName: 'Gemini Omni Flash Preview', + description: 'Omni-modal model for text, vision, audio, and multimodal agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 57920, + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: false }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'google/gemma-4-26b-a4b-it': { displayName: 'Gemma 4 26B A4B IT', + description: 'Open Gemma instruction model for efficient chat and self-hosted deployments', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262144, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'google/gemma-4-31b-it': { displayName: 'Gemma 4 31B IT', + description: 'Largest Gemma 4 instruction model for open, self-hosted chat and reasoning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', - contextWindow: 262144, + contextWindow: 256000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-04-02', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'google/imagen-4.0-fast-generate-001': { displayName: 'Imagen 4 Fast', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 480, maxOutputTokens: 0, + lastUpdated: '2025-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'google/imagen-4.0-generate-001': { displayName: 'Imagen 4', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 480, maxOutputTokens: 0, + lastUpdated: '2025-05-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'google/imagen-4.0-ultra-generate-001': { displayName: 'Imagen 4 Ultra', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 480, maxOutputTokens: 0, + lastUpdated: '2025-05-24', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'google/text-embedding-005': { displayName: 'Text Embedding 005', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2024-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'google/text-multilingual-embedding-002': { displayName: 'Text Multilingual Embedding 002', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2024-03', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'google/veo-3.0-fast-generate-001': { displayName: 'Veo 3.0 Fast Generate', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'google/veo-3.0-generate-001': { displayName: 'Veo 3.0', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'google/veo-3.1-fast-generate-001': { displayName: 'Veo 3.1 Fast Generate', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'google/veo-3.1-generate-001': { displayName: 'Veo 3.1', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'google/veo-3.1-lite-generate-001': { displayName: 'Veo 3.1 Lite Generate', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-04-02', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'inception/mercury-2': { displayName: 'Mercury 2', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 128000, + lastUpdated: '2026-03-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'inception/mercury-coder-small': { displayName: 'Mercury Coder Small Beta', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 16384, + lastUpdated: '2025-02-26', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, - 'inclusionai/ling-3.0-flash-free': { + 'inclusionai/ling-3.0-flash': { displayName: 'Ling 3.0 Flash', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, - maxOutputTokens: 256000, + maxOutputTokens: 32000, + lastUpdated: '2026-08-06', + capabilities: { vision: false, reasoning: true, functionCalling: true }, + modalities: { input: ['text'], output: ['text'] }, + }, + 'inclusionai/ling-3.0-tiny-free': { + displayName: 'Ling 3.0 Tiny (Free)', + description: 'Free provider route for experiments, demos, and cost-sensitive chat workloads', + lifecycle: 'active', + docsUrl: + 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', + contextWindow: 256000, + maxOutputTokens: 32000, + lastUpdated: '2026-08-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'interfaze/interfaze-beta': { displayName: 'Interfaze Beta', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 32000, + lastUpdated: '2026-04-29', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'klingai/kling-v2.5-turbo-i2v': { displayName: 'Kling v2.5 Turbo Image-to-Video', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-09-23', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'klingai/kling-v2.5-turbo-t2v': { displayName: 'Kling v2.5 Turbo Text-to-Video', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-09-23', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'klingai/kling-v2.6-i2v': { displayName: 'Kling v2.6 Image-to-Video', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-12-21', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'klingai/kling-v2.6-motion-control': { displayName: 'Kling v2.6 Motion Control', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-12-21', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'klingai/kling-v2.6-t2v': { displayName: 'Kling v2.6 Text-to-Video', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-12-21', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'klingai/kling-v3.0-i2v': { displayName: 'Kling v3.0 Image-to-Video', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-02-05', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'klingai/kling-v3.0-motion-control': { displayName: 'Kling v3.0 Motion Control', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-03-04', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'klingai/kling-v3.0-t2v': { displayName: 'Kling v3.0 Text-to-Video', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-02-05', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'kwaipilot/kat-coder-air-v2.5': { displayName: 'Kat Coder Air V2.5', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 80000, + lastUpdated: '2026-07-10', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'kwaipilot/kat-coder-pro-v1': { displayName: 'KAT-Coder-Pro V1', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 32000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-10-24', capabilities: { vision: false, reasoning: true, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'kwaipilot/kat-coder-pro-v2': { displayName: 'Kat Coder Pro V2', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 256000, + lastUpdated: '2026-03-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kwaipilot/kat-coder-pro-v2.5': { displayName: 'Kat Coder Pro V2.5', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 80000, + lastUpdated: '2026-07-10', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta/llama-3.1-70b': { displayName: 'Llama 3.1 70B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 8192, + knowledgeCutoff: '2023-12', + lastUpdated: '2024-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta/llama-3.1-8b': { displayName: 'Llama 3.1 8B Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 8192, + knowledgeCutoff: '2023-12', + lastUpdated: '2024-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta/llama-3.3-70b': { displayName: 'Llama-3.3-70B-Instruct', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-12', + lastUpdated: '2024-12-06', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'meta/llama-4-maverick': { displayName: 'Llama-4-Maverick-17B-128E-Instruct-FP8', + description: 'Open multimodal Llama model for strong reasoning and fast responses', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2024-08', + lastUpdated: '2025-04-05', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta/llama-4-scout': { displayName: 'Llama-4-Scout-17B-16E-Instruct-FP8', + description: 'Open multimodal Llama model for long-context analysis and efficient agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2024-08', + lastUpdated: '2025-04-05', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'meta/muse-spark-1.1': { displayName: 'Muse Spark 1.1', + description: 'Open Llama instruction model for multilingual chat, reasoning, and coding', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1048576, maxOutputTokens: 1048576, + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, + }, + 'meta/muse-spark-1.2': { + displayName: 'Muse Spark 1.2', + description: 'Open Llama multimodal model for image understanding and text reasoning', + lifecycle: 'active', + docsUrl: + 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', + contextWindow: 1048576, + maxOutputTokens: 1048576, + structuredOutput: true, + lastUpdated: '2026-08-05', + capabilities: { vision: true, reasoning: true, functionCalling: true }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, + }, + 'meta/muse-spark-1.2-contributor': { + displayName: 'Muse Spark 1.2 Contributor', + description: 'Open Llama multimodal model for image understanding and text reasoning', + lifecycle: 'active', + docsUrl: + 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', + contextWindow: 1048576, + maxOutputTokens: 1048576, + lastUpdated: '2026-08-05', + capabilities: { vision: true, reasoning: true, functionCalling: true }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'minimax/minimax-h3': { displayName: 'MiniMax H3', + description: 'Video model for prompt-guided generation, editing, and motion workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-30', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: [] }, }, 'minimax/minimax-m2': { displayName: 'MiniMax M2', + description: 'Efficient open MiniMax model built for coding agents and tool-heavy workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 205000, maxOutputTokens: 205000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-10-27', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.1': { displayName: 'MiniMax M2.1', + description: 'Earlier MiniMax agent model for practical coding and productivity tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-12-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.1-lightning': { displayName: 'MiniMax M2.1 Lightning', + description: 'High-speed MiniMax model for low-latency coding and agent workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-10-27', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.5': { displayName: 'MiniMax M2.5', + description: 'Prior MiniMax coding model for agent workflows, office edits, and automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 204800, maxOutputTokens: 131000, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.5-highspeed': { displayName: 'MiniMax M2.5 High Speed', + description: 'High-speed MiniMax model for low-latency coding and agent workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 204800, maxOutputTokens: 131000, + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.7': { displayName: 'Minimax M2.7', + description: + 'Open MiniMax flagship for coding agents, office automation, and complex environments', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 204800, maxOutputTokens: 131000, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.7-highspeed': { displayName: 'MiniMax M2.7 High Speed', + description: 'Low-latency M2.7 variant for interactive coding plans and agent loops', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 204800, maxOutputTokens: 131100, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m3': { displayName: 'MiniMax M3', + description: + 'MiniMax multimodal model for long-context coding, perception, and agent planning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 1000000, + lastUpdated: '2026-06-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'mistral/codestral': { displayName: 'Codestral (latest)', + description: 'Mistral code model for completions, refactors, and developer IDE workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 4096, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-01-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral/codestral-embed': { displayName: 'Codestral Embed', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2025-05-28', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral/devstral-2': { displayName: 'Devstral 2', + description: + 'Mistral coding agent model for repository tasks and software engineering workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-12-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral/devstral-small-2': { displayName: 'Devstral Small 2', + description: + 'Mistral coding agent model for repository tasks and software engineering workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-05-07', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral/magistral-medium': { displayName: 'Magistral Medium (latest)', + description: 'Mistral reasoning model for transparent analysis, math, and complex decisions', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2025-06', + lastUpdated: '2025-03-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral/magistral-small': { displayName: 'Magistral Small', + description: 'Mistral reasoning model for transparent analysis, math, and complex decisions', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-06', + lastUpdated: '2025-03-17', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral/ministral-14b': { displayName: 'Ministral 14B', + description: + 'Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-12-01', capabilities: { vision: true, reasoning: false, functionCalling: false }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'mistral/ministral-3b': { displayName: 'Ministral 3B (latest)', + description: + 'Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + lastUpdated: '2024-10-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral/ministral-8b': { displayName: 'Ministral 8B (latest)', + description: + 'Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + lastUpdated: '2024-10-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral/mistral-embed': { displayName: 'Mistral Embed', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2023-12-11', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'mistral/mistral-large-3': { displayName: 'Mistral Large 3', + description: 'Flagship Mistral model for advanced reasoning, coding, and multilingual work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-12-02', capabilities: { vision: true, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral/mistral-medium': { displayName: 'Mistral Medium 3.1', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-05-07', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral/mistral-medium-3.5': { displayName: 'Mistral Medium Latest', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 256000, + lastUpdated: '2026-05-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral/mistral-nemo': { displayName: 'Mistral Nemo', + description: 'Mistral model for multilingual chat, reasoning, and tool-assisted workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-04', + lastUpdated: '2024-07-01', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral/mistral-small': { displayName: 'Mistral Small (latest)', + description: 'Efficient Mistral model for fast chat, extraction, and production assistants', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 4000, + knowledgeCutoff: '2025-06', + lastUpdated: '2026-03-16', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'mistral/pixtral-12b': { displayName: 'Pixtral 12B', + description: 'Mistral vision-language model for image understanding and multimodal chat', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09', + lastUpdated: '2024-09-01', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k2': { displayName: 'Kimi K2 Instruct', + description: 'Kimi model for long-context chat, coding, and agentic reasoning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 131072, + lastUpdated: '2025-09-05', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/kimi-k2-thinking': { displayName: 'Kimi K2 Thinking', + description: + 'Thinking Kimi model for slower research passes, planning, and hard technical questions', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 216144, maxOutputTokens: 216144, + knowledgeCutoff: '2024-08', + lastUpdated: '2025-11-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/kimi-k2.5': { displayName: 'Kimi K2.5', + description: + 'Earlier Kimi frontier model for long-context agents, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262114, maxOutputTokens: 262114, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k2.6': { displayName: 'Kimi K2.6', + description: 'Multimodal Kimi workhorse for agent loops, coding tasks, and visual context', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262000, maxOutputTokens: 262000, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-04-21', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k2.7-code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'moonshotai/kimi-k2.7-code-highspeed': { displayName: 'Kimi K2.7 Code High Speed', + description: 'Lower-latency Kimi Code variant for interactive edits and coding-agent loops', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262144, maxOutputTokens: 32768, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'moonshotai/kimi-k3': { displayName: 'Kimi K3', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'moonshotai/kimi-k3-fast': { displayName: 'Kimi K3 Fast', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'high', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'morph/morph-v3-fast': { displayName: 'Morph v3 Fast', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 16000, maxOutputTokens: 16000, + lastUpdated: '2024-08-15', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'morph/morph-v3-large': { displayName: 'Morph v3 Large', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 32000, + lastUpdated: '2024-08-15', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-nano-30b-a3b': { displayName: 'Nemotron 3 Nano 30B A3B', + description: 'Small Nemotron 3 MoE for efficient coding, math, and long-context agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-12-15', capabilities: { vision: false, reasoning: true, functionCalling: false }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-super-120b-a12b': { displayName: 'NVIDIA Nemotron 3 Super 120B A12B', + description: + 'Nemotron middle tier for collaborative agents and high-volume reasoning workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 32000, + lastUpdated: '2026-03-11', capabilities: { vision: false, reasoning: true, functionCalling: false }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-3-ultra-550b-a55b': { displayName: 'Nemotron 3 Ultra', + description: 'Largest Nemotron 3 model for maximum open-weight reasoning and agent accuracy', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 65000, + lastUpdated: '2026-06-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'nvidia/nemotron-nano-12b-v2-vl': { displayName: 'Nvidia Nemotron Nano 12B V2 VL', + description: 'Nemotron multimodal model for visual reasoning and agentic AI workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-10-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'nvidia/nemotron-nano-9b-v2': { displayName: 'Nvidia Nemotron Nano 9B V2', + description: 'Compact Nemotron model for efficient reasoning and deployable AI agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-08-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-3.5-turbo': { displayName: 'GPT-3.5 Turbo', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 16385, + inputLimit: 12289, maxOutputTokens: 4096, + knowledgeCutoff: '2021-09', + structuredOutput: false, + lastUpdated: '2023-11-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-4-turbo': { displayName: 'GPT-4 Turbo', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'deprecated', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 4096, + knowledgeCutoff: '2023-12', + structuredOutput: false, + lastUpdated: '2024-04-09', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-4.1': { displayName: 'GPT-4.1', + description: + 'Long-lived GPT workhorse for coding, instruction following, and production apps', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1047576, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-04-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4.1-mini': { displayName: 'GPT-4.1 mini', + description: 'Affordable GPT-4.1 lane for fast coding help and structured extraction', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1047576, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-04-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4.1-nano': { displayName: 'GPT-4.1 nano', + description: 'Tiny GPT-4.1 option for classification, routing, and very high-volume tasks', lifecycle: 'deprecated', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1047576, maxOutputTokens: 32768, + knowledgeCutoff: '2024-04', + structuredOutput: true, + lastUpdated: '2025-04-14', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-4o': { displayName: 'GPT-4o', + description: 'Omni-era GPT for multimodal chat, practical coding, and general assistants', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-08-06', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4o-mini': { displayName: 'GPT-4o mini', + description: 'Small omni GPT for cheap multimodal assistance and production-scale traffic', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-07-18', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-4o-mini-search-preview': { displayName: 'GPT 4o Mini Search Preview', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, + inputLimit: 111616, maxOutputTokens: 16384, + knowledgeCutoff: '2023-09', + structuredOutput: false, + lastUpdated: '2025-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-4o-mini-transcribe': { displayName: 'GPT-4o mini Transcribe', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2024-03-13', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'openai/gpt-4o-transcribe': { displayName: 'GPT-4o Transcribe', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2024-03-13', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'openai/gpt-5': { displayName: 'GPT-5', + description: 'Original GPT-5 workhorse for reasoning, coding, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5-codex': { displayName: 'GPT-5-Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-09-30', + structuredOutput: true, + lastUpdated: '2025-09-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5-mini': { displayName: 'GPT-5 Mini', + description: 'Small GPT-5 for responsive agents, coding help, and everyday automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-05-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5-nano': { displayName: 'GPT-5 Nano', + description: 'Tiny GPT-5 lane for routing, extraction, classification, and bulk jobs', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-05-30', + structuredOutput: true, + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5-pro': { displayName: 'GPT-5 pro', + description: 'Higher-accuracy GPT-5 tier for tough analysis, coding reviews, and planning', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 128000, maxOutputTokens: 272000, + knowledgeCutoff: '2024-10', + structuredOutput: true, + lastUpdated: '2025-10-06', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.1-codex': { displayName: 'GPT-5.1-Codex', + description: 'Codex GPT for repository edits, code review, and practical software agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.1-codex-max': { displayName: 'GPT 5.1 Codex Max', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.1-codex-mini': { displayName: 'GPT-5.1 Codex mini', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + structuredOutput: true, + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.1-instant': { displayName: 'GPT-5.1 Instant', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, + inputLimit: 111616, maxOutputTokens: 16384, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.1-thinking': { displayName: 'GPT 5.1 Thinking', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text', 'image'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text', 'image'] }, }, 'openai/gpt-5.2': { displayName: 'GPT-5.2', + description: + 'Reliable GPT generation for broad coding, writing, and tool-assisted product work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + structuredOutput: true, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.2-codex': { displayName: 'GPT-5.2-Codex', + description: + 'Code-specialist GPT for repository edits, reviews, and long-running software agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + structuredOutput: true, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.2-pro': { displayName: 'GPT 5.2 ', + description: 'Higher-accuracy GPT-5.2 variant for tougher reasoning and review workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2024-10', + structuredOutput: false, + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.3-chat': { displayName: 'GPT-5.3 Chat', + description: + 'Chat-tuned GPT model for conversational assistance, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, + inputLimit: 111616, maxOutputTokens: 16384, + lastUpdated: '2026-03-06', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.3-codex': { displayName: 'GPT 5.3 Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-02-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.4': { displayName: 'GPT 5.4', + description: 'Agent-ready GPT for coding and computer-use workflows at a lower cost', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.4-mini': { displayName: 'GPT 5.4 Mini', + description: 'Strong small GPT for coding subagents, quick tool use, and high-volume work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.4-nano': { displayName: 'GPT 5.4 Nano', + description: 'Cheapest GPT-5.4 lane for simple routing, extraction, and bulk automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 400000, + inputLimit: 272000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: true, + lastUpdated: '2026-03-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.4-pro': { displayName: 'GPT 5.4 Pro', + description: 'More exact GPT-5.4 tier for demanding professional reasoning and agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + structuredOutput: false, + lastUpdated: '2026-03-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.5': { displayName: 'GPT 5.5', + description: 'Default frontier GPT for coding, computer use, research, and knowledge work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, + inputLimit: 872000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.5-pro': { displayName: 'GPT 5.5 Pro', + description: 'Highest-accuracy GPT-5.5 tier for slower, precision-heavy reasoning and coding', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, + inputLimit: 872000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-luna': { displayName: 'GPT 5.6 Luna', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-sol': { displayName: 'GPT 5.6 Sol', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-terra': { displayName: 'GPT 5.6 Terra', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-image-1': { displayName: 'GPT Image 1', + description: + 'OpenAI image model for production generation, edits, and brand-safe visual workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-04-24', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'openai/gpt-image-1-mini': { displayName: 'GPT Image 1 Mini', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-10-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'openai/gpt-image-1.5': { displayName: 'GPT Image 1.5', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-11-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'openai/gpt-image-2': { displayName: 'GPT Image 2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-04-21', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'openai/gpt-oss-120b': { displayName: 'GPT OSS 120B', + description: 'Open GPT reasoning model for self-hosted agents and controllable deployments', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 131072, + knowledgeCutoff: '2024-10', + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-20b': { displayName: 'GPT OSS 20B', + description: + 'Open-weight GPT model for self-hosted reasoning and instruction-following workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, + inputLimit: 122880, maxOutputTokens: 8192, + knowledgeCutoff: '2024-10', + structuredOutput: true, + lastUpdated: '2025-08-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-oss-safeguard-20b': { displayName: 'gpt-oss-safeguard-20b', + description: + 'Safety model for policy screening, moderation, and risk-aware routing workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, + inputLimit: 65536, maxOutputTokens: 65536, + knowledgeCutoff: '2024-10', + lastUpdated: '2024-12-01', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-realtime-1.5': { displayName: 'GPT-Realtime-1.5', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-02-23', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'audio'], output: ['text', 'audio'] }, }, 'openai/gpt-realtime-2': { displayName: 'gpt-realtime-2', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-05-07', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'audio'], output: ['text', 'audio'] }, }, 'openai/gpt-realtime-2.1': { displayName: 'gpt-realtime-2.1', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, + inputLimit: 96000, maxOutputTokens: 32000, + knowledgeCutoff: '2024-09-30', + structuredOutput: false, + lastUpdated: '2026-07-06', capabilities: { vision: false, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'audio'], output: ['text', 'audio'] }, }, 'openai/gpt-realtime-mini': { displayName: 'GPT-Realtime mini', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2025-10-10', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'audio'], output: ['text', 'audio'] }, }, 'openai/gpt-realtime-whisper': { displayName: 'gpt-realtime-whisper', + description: + 'Streaming speech-to-text model for low-latency transcript deltas from live audio', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-05-07', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'openai/o1': { displayName: 'o1', + description: 'O-series reasoning model for hard analysis, math, coding, and planning', lifecycle: 'deprecated', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2023-09', + structuredOutput: true, + lastUpdated: '2024-12-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/o3': { displayName: 'o3', + description: 'Deliberate o-series reasoner for hard math, coding, and multi-step analysis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/o3-deep-research': { displayName: 'o3-deep-research', + description: + 'Research model for long-horizon investigation, synthesis, and analytical reports', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, + inputLimit: 100000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-10', + lastUpdated: '2024-06-26', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/o3-mini': { displayName: 'o3-mini', + description: 'Smaller o-series reasoner for economical coding, math, and planning tasks', lifecycle: 'deprecated', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-01-29', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/o3-pro': { displayName: 'o3 Pro', + description: 'High-effort o3 tier for difficult technical reasoning and careful answers', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, + inputLimit: 100000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-10', + structuredOutput: true, + lastUpdated: '2025-06-10', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/o4-mini': { displayName: 'o4-mini', + description: 'Fast o-series model for compact reasoning, coding, and tool use', lifecycle: 'deprecated', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 100000, + knowledgeCutoff: '2024-05', + structuredOutput: true, + lastUpdated: '2025-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/text-embedding-3-large': { displayName: 'text-embedding-3-large', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, + inputLimit: 6656, maxOutputTokens: 1536, + lastUpdated: '2024-01-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/text-embedding-3-small': { displayName: 'text-embedding-3-small', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, + inputLimit: 6656, maxOutputTokens: 1536, + lastUpdated: '2024-01-25', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/text-embedding-ada-002': { displayName: 'text-embedding-ada-002', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, + inputLimit: 6656, maxOutputTokens: 1536, + lastUpdated: '2022-12-15', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/tts-1': { displayName: 'TTS-1', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2023-11-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'openai/tts-1-hd': { displayName: 'TTS-1 HD', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2023-11-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'openai/whisper-1': { displayName: 'Whisper', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2022-09-21', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'perplexity/pplx-embed-v1-0.6b': { displayName: 'Embed v1 0.6b', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 0, + lastUpdated: '2026-02-26', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'perplexity/pplx-embed-v1-4b': { displayName: 'Embed v1 4b', + description: + 'Embedding model for semantic search, retrieval, clustering, and ranking pipelines', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 0, + lastUpdated: '2026-02-26', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'perplexity/sonar': { displayName: 'Sonar', + description: 'Sonar search model for current answers, retrieval, and citation-backed chat', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 127000, maxOutputTokens: 8000, + knowledgeCutoff: '2025-02', + lastUpdated: '2025-02-19', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'perplexity/sonar-pro': { displayName: 'Sonar Pro', + description: 'Advanced Sonar search model for deeper research and cited synthesis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 8000, + knowledgeCutoff: '2025-09', + lastUpdated: '2025-02-19', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'perplexity/sonar-reasoning-pro': { displayName: 'Sonar Reasoning Pro', + description: 'Web-grounded reasoning model for multi-step research and cited answers', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 127000, maxOutputTokens: 8000, + knowledgeCutoff: '2025-09', + lastUpdated: '2025-02-19', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['minimal', 'low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'poolside/laguna-s-2.1': { displayName: 'Laguna S 2.1', + description: 'Agentic coding model from Poolside in the XS size class for local deployment', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: false, + lastUpdated: '2026-07-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'poolside/laguna-s-2.1-free': { displayName: 'Laguna S 2.1 Free', + description: 'Free provider route for experiments, demos, and cost-sensitive chat workloads', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 32768, + structuredOutput: false, + lastUpdated: '2026-07-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'prodia/flux-fast-schnell': { displayName: 'Flux Schnell', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 512, maxOutputTokens: 0, + lastUpdated: '2026-06-08', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'quiverai/arrow-1.1': { displayName: 'Arrow 1.1', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 131072, maxOutputTokens: 131072, + lastUpdated: '2026-04-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'recraft/recraft-v2': { displayName: 'Recraft V2', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 512, maxOutputTokens: 0, + lastUpdated: '2024-03', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'recraft/recraft-v3': { displayName: 'Recraft V3', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 512, maxOutputTokens: 0, + lastUpdated: '2024-10', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'recraft/recraft-v4': { displayName: 'Recraft V4', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-02-17', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'recraft/recraft-v4-pro': { displayName: 'Recraft V4 Pro', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-02-17', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'recraft/recraft-v4.1': { displayName: 'Recraft V4.1', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-05-14', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'recraft/recraft-v4.1-pro': { displayName: 'Recraft V4.1 Pro', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-05-14', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'recraft/recraft-v4.1-utility': { displayName: 'Recraft V4.1 Utility', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-05-14', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'recraft/recraft-v4.1-utility-pro': { displayName: 'Recraft V4.1 Utility Pro', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-05-14', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['image'] }, }, 'sakana/fugu-ultra': { displayName: 'Fugu Ultra', + description: 'Quality-first multi-agent model for hard research, analysis, and competitions', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 1000000, + structuredOutput: true, + lastUpdated: '2026-06-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'stepfun/step-3.5-flash': { displayName: 'StepFun 3.5 Flash', + description: 'StepFun flash lane for quick multimodal reasoning and coding assistance', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262114, maxOutputTokens: 262114, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-02-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'stepfun/step-3.7-flash': { displayName: 'Step 3.7 Flash', + description: 'Newer StepFun flash model for faster agents, coding, and multimodal prompts', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2026-03-01', + lastUpdated: '2026-05-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'tencent/hy3': { displayName: 'Hy3', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 262144, maxOutputTokens: 262144, + lastUpdated: '2026-07-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'thinkingmachines/inkling': { displayName: 'Inkling', + description: + 'Multimodal MoE reasoning model (975B total, 41B active) for text, image, and audio', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 256000, + lastUpdated: '2026-07-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'thinkingmachines/inkling-small': { displayName: 'Inkling Small', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 1000000, + lastUpdated: '2026-07-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'voyage/rerank-2.5': { displayName: 'Voyage Rerank 2.5', + description: + 'Reranking model for improving retrieval quality in search and recommendation systems', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 32000, + lastUpdated: '2025-08-11', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/rerank-2.5-lite': { displayName: 'Voyage Rerank 2.5 Lite', + description: + 'Reranking model for improving retrieval quality in search and recommendation systems', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 32000, + lastUpdated: '2025-08-11', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/voyage-3-large': { displayName: 'voyage-3-large', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2024-09', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/voyage-3.5': { displayName: 'voyage-3.5', + description: 'General-purpose chat model for instruction following, writing, and analysis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2025-05-20', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/voyage-3.5-lite': { displayName: 'voyage-3.5-lite', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2025-05-20', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/voyage-4': { displayName: 'voyage-4', + description: 'General-purpose chat model for instruction following, writing, and analysis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 0, + lastUpdated: '2026-03-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/voyage-4-large': { displayName: 'voyage-4-large', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 0, + lastUpdated: '2026-03-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/voyage-4-lite': { displayName: 'voyage-4-lite', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 32000, maxOutputTokens: 0, + lastUpdated: '2026-03-06', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/voyage-code-2': { displayName: 'voyage-code-2', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2024-01', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/voyage-code-3': { displayName: 'voyage-code-3', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2024-09', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/voyage-finance-2': { displayName: 'voyage-finance-2', + description: 'General-purpose chat model for instruction following, writing, and analysis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2024-03', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'voyage/voyage-law-2': { displayName: 'voyage-law-2', + description: 'General-purpose chat model for instruction following, writing, and analysis', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 8192, maxOutputTokens: 1536, + lastUpdated: '2024-03', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text'] }, }, 'xai/grok-4.1-fast-non-reasoning': { displayName: 'Grok 4.1 Fast Non-Reasoning', + description: 'Fast Grok model for responsive chat, reasoning, and tool-assisted work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 1000000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-07-09', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xai/grok-4.1-fast-reasoning': { displayName: 'Grok 4.1 Fast Reasoning', + description: 'Fast Grok model for responsive chat, reasoning, and tool-assisted work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 1000000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xai/grok-4.20-multi-agent': { displayName: 'Grok 4.20 Multi-Agent', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 2000000, maxOutputTokens: 2000000, + lastUpdated: '2026-03-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xai/grok-4.20-multi-agent-beta': { displayName: 'Grok 4.20 Multi Agent Beta', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 2000000, maxOutputTokens: 2000000, + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xai/grok-4.20-non-reasoning': { displayName: 'Grok 4.20 Non-Reasoning', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 2000000, maxOutputTokens: 2000000, + lastUpdated: '2026-03-23', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xai/grok-4.20-non-reasoning-beta': { displayName: 'Grok 4.20 Beta Non-Reasoning', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 2000000, maxOutputTokens: 2000000, + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xai/grok-4.20-reasoning': { displayName: 'Grok 4.20 Reasoning', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 2000000, maxOutputTokens: 2000000, + lastUpdated: '2026-03-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xai/grok-4.20-reasoning-beta': { displayName: 'Grok 4.20 Beta Reasoning', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 2000000, maxOutputTokens: 2000000, + lastUpdated: '2026-03-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xai/grok-4.3': { displayName: 'Grok 4.3', + description: + "xAI's default Grok for chat, coding, agentic tools, and lower hallucination risk", lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 1000000, + structuredOutput: true, + lastUpdated: '2026-04-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xai/grok-4.5': { displayName: 'Grok 4.5', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 500000, maxOutputTokens: 500000, + structuredOutput: true, + lastUpdated: '2026-07-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xai/grok-build-0.1': { displayName: 'Grok Build 0.1', + description: 'Fast Grok coding model tuned for agentic engineering and iterative edits', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 256000, maxOutputTokens: 256000, + structuredOutput: true, + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'xai/grok-imagine-image': { displayName: 'Grok Imagine Image', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-02-19', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['text', 'image'] }, }, 'xai/grok-imagine-video': { displayName: 'Grok Imagine', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-01-28', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'xai/grok-imagine-video-1.5': { displayName: 'Grok Imagine Video 1.5', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-05-30', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'xai/grok-imagine-video-1.5-preview': { displayName: 'Grok Imagine Video 1.5 Preview', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-05-30', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: [] }, }, 'xai/grok-stt': { displayName: 'Grok STT', + description: 'Speech transcription model for accurate audio-to-text and captioning workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-03-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['audio'], output: ['text'] }, }, 'xai/grok-tts': { displayName: 'Grok TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-03-16', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'xai/grok-voice-think-fast-1.0': { displayName: 'Grok Voice Think Fast 1.0', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-04-23', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'audio'], output: ['text', 'audio'] }, }, 'xai/grok-voice-think-fast-2.0': { displayName: 'Grok Voice Think Fast 2.0', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 0, maxOutputTokens: 0, + lastUpdated: '2026-07-29', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text', 'audio'], output: ['text', 'audio'] }, }, 'xiaomi/mimo-v2.5': { displayName: 'MiMo M2.5', + description: 'Open MiMo model for multimodal coding agents and long-context automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1050000, maxOutputTokens: 131100, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'xiaomi/mimo-v2.5-pro': { displayName: 'MiMo V2.5 Pro', + description: 'Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1050000, maxOutputTokens: 131000, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-4.5': { displayName: 'GLM 4.5', + description: 'Hybrid-reasoning GLM release that made the 4.5 line broadly useful', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 96000, + knowledgeCutoff: '2025-07', + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-4.5-air': { displayName: 'GLM 4.5 Air', + description: 'Lighter GLM-4.5 variant for fast coding assistance and cheaper agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 96000, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-4.5v': { displayName: 'GLM 4.5V', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 66000, maxOutputTokens: 16000, + knowledgeCutoff: '2025-08', + lastUpdated: '2025-08-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'zai/glm-4.6': { displayName: 'GLM 4.6', + description: 'Late GLM-4 workhorse for coding agents, reasoning, and structured tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 96000, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-4.6v': { displayName: 'GLM-4.6V', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 24000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-12-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'zai/glm-4.6v-flash': { displayName: 'GLM-4.6V-Flash', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 128000, maxOutputTokens: 24000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-09-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'zai/glm-4.7': { displayName: 'GLM 4.7', + description: 'Mature GLM model for dependable coding, reasoning, and structured agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 120000, + knowledgeCutoff: '2024-10', + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-4.7-flash': { displayName: 'GLM 4.7 Flash', + description: 'Budget GLM lane for fast coding help, routing, and everyday automation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 131000, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-4.7-flashx': { displayName: 'GLM 4.7 FlashX', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-01', + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-5': { displayName: 'GLM-5', + description: + 'General GLM flagship for coding, analysis, and tool-heavy engineering workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 202800, maxOutputTokens: 131100, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-5-turbo': { displayName: 'GLM 5 Turbo', + description: 'Faster GLM-5 lane for coding agents that need lower latency', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 202800, maxOutputTokens: 131100, + structuredOutput: true, + lastUpdated: '2026-03-16', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-5.1': { displayName: 'GLM 5.1', + description: + 'Strong GLM coding model for agentic engineering, terminals, and repository generation', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', - contextWindow: 202000, - maxOutputTokens: 202000, + contextWindow: 202800, + maxOutputTokens: 64000, + structuredOutput: true, + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-5.2': { displayName: 'GLM 5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'xhigh'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-5.2-fast': { displayName: 'GLM 5.2 Fast', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 1000000, maxOutputTokens: 128000, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'xhigh'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'zai/glm-5v-turbo': { displayName: 'GLM 5V Turbo', + description: 'Fast GLM vision model for screenshots, documents, and multimodal agent tasks', lifecycle: 'active', docsUrl: 'https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway', contextWindow: 200000, maxOutputTokens: 128000, + lastUpdated: '2026-04-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, }, xai: { 'grok-4.20-0309-non-reasoning': { displayName: 'Grok 4.20 (Non-Reasoning)', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://docs.x.ai/docs/models', contextWindow: 1000000, maxOutputTokens: 30000, + structuredOutput: true, + lastUpdated: '2026-03-09', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'grok-4.20-0309-reasoning': { displayName: 'Grok 4.20 (Reasoning)', + description: 'Reasoning Grok for document-heavy analysis and long-horizon tool use', lifecycle: 'active', docsUrl: 'https://docs.x.ai/docs/models', contextWindow: 1000000, maxOutputTokens: 30000, + structuredOutput: true, + lastUpdated: '2026-03-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'grok-4.20-multi-agent-0309': { displayName: 'Grok 4.20 Multi-Agent', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://docs.x.ai/docs/models', contextWindow: 1000000, maxOutputTokens: 30000, + structuredOutput: true, + lastUpdated: '2026-03-09', capabilities: { vision: true, reasoning: true, functionCalling: false }, thinkingOptions: { efforts: ['low', 'medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'grok-4.3': { displayName: 'Grok 4.3', + description: "xAI's Grok for chat, coding, agentic tools, and lower hallucination risk", lifecycle: 'active', docsUrl: 'https://docs.x.ai/docs/models', contextWindow: 1000000, maxOutputTokens: 30000, + structuredOutput: true, + lastUpdated: '2026-04-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'grok-4.5': { displayName: 'Grok 4.5', + description: + "xAI's latest Grok for chat, coding, agentic tools, and lower hallucination risk", lifecycle: 'active', docsUrl: 'https://docs.x.ai/docs/models', contextWindow: 500000, maxOutputTokens: 500000, + structuredOutput: true, + lastUpdated: '2026-07-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'grok-build-0.1': { displayName: 'Grok Build 0.1', + description: 'Fast Grok coding model tuned for agentic engineering and iterative edits', lifecycle: 'active', docsUrl: 'https://docs.x.ai/docs/models', contextWindow: 256000, maxOutputTokens: 256000, + structuredOutput: true, + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'grok-imagine-image': { displayName: 'Grok Imagine Image', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://docs.x.ai/docs/models', contextWindow: 8000, maxOutputTokens: 0, + lastUpdated: '2026-01-28', capabilities: { vision: true, reasoning: false, functionCalling: false }, - modalities: { input: ['text', 'image'], output: ['image'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['image'] }, }, 'grok-imagine-image-quality': { displayName: 'Grok Imagine Image Quality', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://docs.x.ai/docs/models', contextWindow: 8000, maxOutputTokens: 0, + lastUpdated: '2026-04-03', capabilities: { vision: true, reasoning: false, functionCalling: false }, - modalities: { input: ['text', 'image'], output: ['image'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['image'] }, }, 'grok-imagine-video': { displayName: 'Grok Imagine Video', + description: 'Image model for prompt-driven generation, editing, and visual design workflows', lifecycle: 'active', docsUrl: 'https://docs.x.ai/docs/models', contextWindow: 1024, maxOutputTokens: 0, + lastUpdated: '2026-01-28', capabilities: { vision: true, reasoning: false, functionCalling: false }, - modalities: { input: ['text', 'image'], output: [] }, + modalities: { input: ['text', 'image', 'pdf'], output: [] }, }, 'grok-imagine-video-1.5': { displayName: 'Grok Imagine Video 1.5', + description: 'Video model for image-to-video generation, editing, and extension workflows', lifecycle: 'active', docsUrl: 'https://docs.x.ai/docs/models', contextWindow: 1024, maxOutputTokens: 0, + lastUpdated: '2026-05-30', capabilities: { vision: true, reasoning: false, functionCalling: false }, - modalities: { input: ['text', 'image', 'audio'], output: [] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: [] }, }, }, xiaomi: { 'mimo-v2-flash': { displayName: 'MiMo-V2-Flash', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2024-12-01', + lastUpdated: '2026-06-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2-omni': { displayName: 'MiMo-V2-Omni', + description: 'Legacy model retained for compatibility with older integrations', lifecycle: 'deprecated', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 262144, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-06-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'mimo-v2-pro': { displayName: 'MiMo-V2-Pro', + description: 'Earlier MiMo Pro model for multimodal agents, reasoning, and code tasks', lifecycle: 'deprecated', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-06-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2.5': { displayName: 'MiMo-V2.5', + description: 'Open MiMo model for multimodal coding agents and long-context automation', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-06-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'mimo-v2.5-pro': { displayName: 'MiMo-V2.5-Pro', + description: 'Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-06-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2.5-pro-ultraspeed': { displayName: 'MiMo-V2.5-Pro-UltraSpeed', - lifecycle: 'active', + description: 'MiMo pro model for strong multimodal reasoning and agent execution', + lifecycle: 'beta', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-06-09', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, @@ -15115,67 +20639,84 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'xiaomi-token-plan-cn': { 'mimo-v2-pro': { displayName: 'MiMo-V2-Pro', + description: 'Earlier MiMo Pro model for multimodal agents, reasoning, and code tasks', lifecycle: 'deprecated', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2-tts': { displayName: 'MiMo-V2-TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'mimo-v2.5': { displayName: 'MiMo-V2.5', + description: 'Open MiMo model for multimodal coding agents and long-context automation', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'mimo-v2.5-pro': { displayName: 'MiMo-V2.5-Pro', + description: 'Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2.5-tts': { displayName: 'MiMo-V2.5-TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'mimo-v2.5-tts-voiceclone': { displayName: 'MiMo-V2.5-TTS-VoiceClone', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'mimo-v2.5-tts-voicedesign': { displayName: 'MiMo-V2.5-TTS-VoiceDesign', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, @@ -15183,67 +20724,84 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'xiaomi-token-plan-sgp': { 'mimo-v2-pro': { displayName: 'MiMo-V2-Pro', + description: 'Earlier MiMo Pro model for multimodal agents, reasoning, and code tasks', lifecycle: 'deprecated', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2-tts': { displayName: 'MiMo-V2-TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'mimo-v2.5': { displayName: 'MiMo-V2.5', + description: 'Open MiMo model for multimodal coding agents and long-context automation', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'mimo-v2.5-pro': { displayName: 'MiMo-V2.5-Pro', + description: 'Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2.5-tts': { displayName: 'MiMo-V2.5-TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'mimo-v2.5-tts-voiceclone': { displayName: 'MiMo-V2.5-TTS-VoiceClone', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'mimo-v2.5-tts-voicedesign': { displayName: 'MiMo-V2.5-TTS-VoiceDesign', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, @@ -15251,67 +20809,84 @@ export const GENERATED_MODELS_DEV_METADATA: Record< 'xiaomi-token-plan-ams': { 'mimo-v2-pro': { displayName: 'MiMo-V2-Pro', + description: 'Earlier MiMo Pro model for multimodal agents, reasoning, and code tasks', lifecycle: 'deprecated', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2-tts': { displayName: 'MiMo-V2-TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'mimo-v2.5': { displayName: 'MiMo-V2.5', + description: 'Open MiMo model for multimodal coding agents and long-context automation', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'mimo-v2.5-pro': { displayName: 'MiMo-V2.5-Pro', + description: 'Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'mimo-v2.5-tts': { displayName: 'MiMo-V2.5-TTS', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'mimo-v2.5-tts-voiceclone': { displayName: 'MiMo-V2.5-TTS-VoiceClone', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, 'mimo-v2.5-tts-voicedesign': { displayName: 'MiMo-V2.5-TTS-VoiceDesign', + description: 'Speech generation model for controllable voice, narration, and audio delivery', lifecycle: 'active', docsUrl: 'https://platform.xiaomimimo.com/#/docs', contextWindow: 8192, maxOutputTokens: 8192, + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: false, functionCalling: false }, modalities: { input: ['text'], output: ['audio'] }, }, @@ -15319,182 +20894,239 @@ export const GENERATED_MODELS_DEV_METADATA: Record< zai: { 'glm-4.5': { displayName: 'GLM-4.5', + description: 'Hybrid-reasoning GLM release that made the 4.5 line broadly useful', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 131072, maxOutputTokens: 98304, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-4.5-air': { displayName: 'GLM-4.5-Air', + description: 'Lighter GLM-4.5 variant for fast coding assistance and cheaper agents', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 131072, maxOutputTokens: 98304, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-4.5-flash': { displayName: 'GLM-4.5-Flash', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 131072, maxOutputTokens: 98304, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-07-28', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-4.5v': { displayName: 'GLM-4.5V', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 64000, maxOutputTokens: 16384, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-08-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'glm-4.6': { displayName: 'GLM-4.6', + description: 'Late GLM-4 workhorse for coding agents, reasoning, and structured tasks', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-09-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-4.6v': { displayName: 'GLM-4.6V', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 128000, maxOutputTokens: 32768, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-12-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'glm-4.7': { displayName: 'GLM-4.7', + description: 'Mature GLM model for dependable coding, reasoning, and structured agent tasks', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-4.7-flash': { displayName: 'GLM-4.7-Flash', + description: 'Budget GLM lane for fast coding help, routing, and everyday automation', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 200000, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-4.7-flashx': { displayName: 'GLM-4.7-FlashX', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 200000, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5': { displayName: 'GLM-5', + description: + 'General GLM flagship for coding, analysis, and tool-heavy engineering workflows', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 204800, maxOutputTokens: 131072, + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5-turbo': { displayName: 'GLM-5-Turbo', + description: 'Faster GLM-5 lane for coding agents that need lower latency', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 200000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-03-16', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.1': { displayName: 'GLM-5.1', + description: + 'Strong GLM coding model for agentic engineering, terminals, and repository generation', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 200000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-04-07', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5v-turbo': { displayName: 'GLM-5V-Turbo', + description: 'Fast GLM vision model for screenshots, documents, and multimodal agent tasks', lifecycle: 'active', docsUrl: 'https://docs.z.ai/guides/overview/pricing', contextWindow: 200000, maxOutputTokens: 131072, + lastUpdated: '2026-04-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, }, 'zai-coding-plan': { 'glm-4.7': { displayName: 'GLM-4.7', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://docs.z.ai/devpack/overview', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-04', + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5-turbo': { displayName: 'GLM-5-Turbo', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://docs.z.ai/devpack/overview', contextWindow: 200000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-03-16', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.2': { displayName: 'GLM-5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://docs.z.ai/devpack/overview', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'glm-5.2-highspeed': { displayName: 'GLM-5.2 Highspeed', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://docs.z.ai/devpack/overview', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, @@ -15503,1154 +21135,1552 @@ export const GENERATED_MODELS_DEV_METADATA: Record< zenmux: { 'anthropic/claude-3.5-haiku': { displayName: 'Claude 3.5 Haiku', + description: + 'Fast Claude model for responsive assistance, classification, and lightweight agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2024-11-04', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'anthropic/claude-3.7-sonnet': { displayName: 'Claude 3.7 Sonnet', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-02-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-fable-5': { displayName: 'Claude Fable 5', + description: 'Claude model for creative writing, analysis, and controlled agent workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-06-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-haiku-4.5': { displayName: 'Claude Haiku 4.5', + description: + 'Fast Claude model for responsive assistance, classification, and lightweight agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-10-15', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'anthropic/claude-opus-4': { displayName: 'Claude Opus 4', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-05-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.1': { displayName: 'Claude Opus 4.1', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-08-05', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.5': { displayName: 'Claude Opus 4.5', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-11-24', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text'], output: ['text'] }, }, 'anthropic/claude-opus-4.6': { displayName: 'Claude Opus 4.6', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-05-31', + lastUpdated: '2026-02-06', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'anthropic/claude-opus-4.7': { displayName: 'Claude Opus 4.7', + description: 'Flagship Claude model for deep reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-opus-4.8': { displayName: 'Claude Opus 4.8', + description: + 'Top Claude Opus tier for the hardest reasoning, coding, and long-horizon agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01', + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-4': { displayName: 'Claude Sonnet 4', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-05-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-4.5': { displayName: 'Claude Sonnet 4.5', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-09-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-4.6': { displayName: 'Claude Sonnet 4.6', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-02-18', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'anthropic/claude-sonnet-5': { displayName: 'Claude Sonnet 5', + description: 'Everyday Claude agent model for coding, planning, browsing, and general work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'anthropic/claude-sonnet-5-free': { displayName: 'Claude Sonnet 5 (Free)', + description: 'Everyday Claude agent model for coding, planning, browsing, and general work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-01-31', + lastUpdated: '2026-06-30', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'baidu/ernie-5.0-thinking-preview': { displayName: 'ERNIE 5.0', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-01-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'deepseek/deepseek-chat': { displayName: 'DeepSeek-V3.2 (Non-thinking Mode)', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-12-01', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v3.2': { displayName: 'DeepSeek V3.2', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-12-05', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v3.2-exp': { displayName: 'DeepSeek-V3.2-Exp', + description: 'DeepSeek chat model for instruction following, coding, and analysis', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 163000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-09-29', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v4-flash': { displayName: 'DeepSeek V4 Flash', + description: 'Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'deepseek/deepseek-v4-pro': { displayName: 'DeepSeek V4 Pro', + description: 'Open MoE flagship with million-token context for coding and long agent runs', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 384000, + knowledgeCutoff: '2025-05', + structuredOutput: true, + lastUpdated: '2026-04-24', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'], toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'google/gemini-2.5-flash': { displayName: 'Gemini 2.5 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['image', 'text', 'audio'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text', 'audio'], output: ['text'] }, }, 'google/gemini-2.5-flash-lite': { displayName: 'Gemini 2.5 Flash Lite', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-07-22', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['image', 'text', 'audio'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text', 'audio'], output: ['text'] }, }, 'google/gemini-2.5-pro': { displayName: 'Gemini 2.5 Pro', + description: 'Advanced Gemini model for complex reasoning, coding, and multimodal analysis', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-06-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['image', 'text', 'audio'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text', 'audio'], output: ['text'] }, }, 'google/gemini-3-flash-preview': { displayName: 'Gemini 3 Flash Preview', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-12-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf', 'audio'], output: ['text'] }, }, 'google/gemini-3.1-flash-lite': { displayName: 'Gemini 3.1 Flash Lite', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'google/gemini-3.1-flash-lite-preview': { displayName: 'Gemini 3.1 Flash Lite Preview', + description: 'Low-latency Gemini model for high-volume multimodal and agent workloads', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1050000, maxOutputTokens: 65530, + lastUpdated: '2025-03-20', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'google/gemini-3.1-pro-preview': { displayName: 'Gemini 3.1 Pro Preview', + description: 'Advanced Gemini model for complex reasoning, coding, and multimodal analysis', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048000, maxOutputTokens: 64000, + knowledgeCutoff: '2026-02-19', + lastUpdated: '2026-02-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf', 'audio'], output: ['text'] }, }, 'google/gemini-3.5-flash': { displayName: 'Gemini 3.5 Flash', + description: 'Fast Gemini model balancing multimodal reasoning, tool use, and cost', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048576, maxOutputTokens: 65536, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-05-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'inclusionai/ling-1t': { displayName: 'Ling-1T', + description: + 'Tool-capable chat model for instruction following and agentic application workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-10-09', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'inclusionai/ring-1t': { displayName: 'Ring-1T', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-10-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'inclusionai/ring-2.6-1t': { displayName: 'inclusionAI: Ring-2.6-1T', + description: + 'Reasoning model for deliberate analysis, multi-step problem solving, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 262000, maxOutputTokens: 65000, + knowledgeCutoff: '2025-12-31', + lastUpdated: '2026-05-14', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'kuaishou/kat-coder-pro-v2': { displayName: 'KAT-Coder-Pro-V2', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 80000, + lastUpdated: '2026-03-30', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2': { displayName: 'MiniMax M2', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 204000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-10-27', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.1': { displayName: 'MiniMax M2.1', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 204000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-12-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.5': { displayName: 'MiniMax M2.5', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.5-lightning': { displayName: 'MiniMax M2.5 highspeed', + description: 'High-speed MiniMax model for low-latency coding and agent workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 204800, maxOutputTokens: 131072, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-02-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.7': { displayName: 'MiniMax M2.7', + description: 'MiniMax model for chat, coding, office work, and agentic tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 204800, maxOutputTokens: 131070, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-03-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m2.7-highspeed': { displayName: 'MiniMax M2.7 highspeed', + description: 'High-speed MiniMax model for low-latency coding and agent workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 204800, maxOutputTokens: 131070, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-03-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'minimax/minimax-m3': { displayName: 'MiniMax-M3', + description: + 'MiniMax multimodal model for long-context coding, perception, and agent planning', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 512000, maxOutputTokens: 128000, + lastUpdated: '2026-06-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k2-0905': { displayName: 'Kimi K2 0905', + description: 'Kimi model for long-context chat, coding, and agentic reasoning', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 262000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-09-04', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/kimi-k2-thinking': { displayName: 'Kimi K2 Thinking', + description: 'Kimi reasoning model for long-horizon research, planning, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 262000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-11-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/kimi-k2-thinking-turbo': { displayName: 'Kimi K2 Thinking Turbo', + description: 'Kimi reasoning model for long-horizon research, planning, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 262000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-11-06', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'moonshotai/kimi-k2.5': { displayName: 'Kimi K2.5', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 262000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-01-27', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k2.6': { displayName: 'Kimi K2.6', + description: 'Kimi multimodal agent model for visual understanding, coding, and planning', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 262140, maxOutputTokens: 262140, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-04-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k2.7-code': { displayName: 'Kimi K2.7 Code', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k2.7-code-free': { displayName: 'Kimi K2.7 Code (Free)', + description: + 'Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 262144, maxOutputTokens: 262144, + knowledgeCutoff: '2025-01', + structuredOutput: true, + lastUpdated: '2026-06-12', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k3': { displayName: 'Kimi K3', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['max'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'moonshotai/kimi-k3-free': { displayName: 'Kimi K3 (Free)', + description: + 'Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048576, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-07-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['max'], toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5': { displayName: 'GPT-5', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-08-07', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5-codex': { displayName: 'GPT-5 Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-09-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5.1': { displayName: 'GPT-5.1', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.1-chat': { displayName: 'GPT-5.1 Chat', + description: + 'Chat-tuned GPT model for conversational assistance, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: false, functionCalling: true }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['pdf', 'image', 'text'], output: ['text'] }, }, 'openai/gpt-5.1-codex': { displayName: 'GPT-5.1-Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5.1-codex-mini': { displayName: 'GPT-5.1-Codex-Mini', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-11-13', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'openai/gpt-5.2': { displayName: 'GPT-5.2', + description: 'GPT model for general reasoning, writing, coding, and tool-assisted tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['image', 'text'], output: ['text'] }, + modalities: { input: ['image', 'text', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.2-codex': { displayName: 'GPT-5.2-Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-01-15', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.2-pro': { displayName: 'GPT-5.2-Pro', + description: 'Frontier GPT model for professional reasoning, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2025-12-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.3-chat': { displayName: 'GPT-5.3 Chat', + description: + 'Chat-tuned GPT model for conversational assistance, writing, and tool workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 128000, maxOutputTokens: 16380, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-03-20', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-5.3-codex': { displayName: 'GPT-5.3 Codex', + description: + 'Coding-optimized GPT model for repository edits, reviews, and agentic software work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-03-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-5.4': { displayName: 'GPT-5.4', + description: 'Frontier GPT model for professional reasoning, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1050000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-03-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5.4-mini': { displayName: 'GPT-5.4 Mini', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-03-20', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-5.4-nano': { displayName: 'GPT-5.4 Nano', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-03-20', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'openai/gpt-5.4-pro': { displayName: 'GPT-5.4 Pro', + description: 'Frontier GPT model for professional reasoning, coding, and multimodal work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1050000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-03-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'openai/gpt-5.5': { displayName: 'GPT-5.5', + description: 'Default frontier GPT for coding, computer use, research, and knowledge work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.5-instant': { displayName: 'GPT-5.5 Instant', + description: 'Compact GPT model for low-latency assistance and high-volume workloads', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 400000, + inputLimit: 400000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-05-28', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.5-pro': { displayName: 'GPT-5.5 Pro', + description: 'Highest-accuracy GPT-5.5 tier for slower, precision-heavy reasoning and coding', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-12-01', + structuredOutput: true, + lastUpdated: '2026-04-23', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['medium', 'high', 'xhigh'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-luna': { displayName: 'GPT-5.6 Luna', + description: 'Cost-efficient GPT-5.6 model for fast, high-volume workloads', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-sol': { displayName: 'GPT-5.6 Sol', + description: + 'Frontier GPT-5.6 model for complex professional work, coding, and agentic workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'openai/gpt-5.6-terra': { displayName: 'GPT-5.6 Terra', + description: 'Balanced GPT-5.6 model for capable, cost-efficient everyday work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1050000, + inputLimit: 922000, maxOutputTokens: 128000, + knowledgeCutoff: '2026-02-16', + structuredOutput: true, + lastUpdated: '2026-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'qwen/qwen3-coder-plus': { displayName: 'Qwen3-Coder-Plus', + description: 'Qwen coding model for software agents, repository edits, and code reasoning', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-07-23', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3-max': { displayName: 'Qwen3-Max-Thinking', + description: 'Qwen reasoning model for deliberate problem solving, math, and coding', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-01-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3.5-flash': { displayName: 'Qwen3.5 Flash', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1020000, maxOutputTokens: 1020000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-03-20', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.5-plus': { displayName: 'Qwen3.5 Plus', + description: 'Qwen vision-language model for visual reasoning, documents, and agent tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-03-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'qwen/qwen3.6-plus': { displayName: 'Qwen3.6-Plus', + description: 'Qwen instruction model for multilingual chat, reasoning, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 64000, + lastUpdated: '2026-03-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3.7-max': { displayName: 'Qwen3.7 Max', + description: + 'Qwen frontier model tuned for agent frameworks, coding assistants, and long tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 65536, + lastUpdated: '2026-05-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'qwen/qwen3.7-plus': { displayName: 'Qwen3.7 Plus', + description: 'Multimodal Qwen workhorse for long-context agents, visual inputs, and coding', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-04', + lastUpdated: '2026-06-02', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'sapiens-ai/agnes-1.5-lite': { displayName: 'Agnes 1.5 Lite', + description: 'Efficient model for low-latency assistance, extraction, and routine automation', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 256000, + lastUpdated: '2026-03-26', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'sapiens-ai/agnes-1.5-pro': { displayName: 'Agnes 1.5 Pro', + description: 'Flagship model for demanding analysis, coding, and production agent workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 256000, + lastUpdated: '2026-03-21', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'stepfun/step-3': { displayName: 'Step-3', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 65536, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-07-31', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'stepfun/step-3.5-flash': { displayName: 'Step 3.5 Flash', + description: 'StepFun flash model for efficient multimodal reasoning, coding, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-02-02', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'stepfun/step-3.7-flash': { displayName: 'Step 3.7 Flash', + description: 'Newer StepFun flash model for faster agents, coding, and multimodal prompts', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2026-03-01', + lastUpdated: '2026-05-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'stepfun/step-3.7-flash-free': { displayName: 'Step 3.7 Flash (Free)', + description: 'Newer StepFun flash model for faster agents, coding, and multimodal prompts', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, + inputLimit: 256000, maxOutputTokens: 256000, + knowledgeCutoff: '2026-03-01', + lastUpdated: '2026-05-29', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'tencent/hy3-preview': { displayName: 'Hy3 preview', + description: 'Tencent Hy reasoning model for coding, instruction following, and agent tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 64000, + lastUpdated: '2026-04-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'high'] }, modalities: { input: ['text'], output: ['text'] }, }, 'volcengine/doubao-seed-1.8': { displayName: 'Doubao-Seed-1.8', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-12-18', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'volcengine/doubao-seed-2.0-code': { displayName: 'Doubao Seed 2.0 Code', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 32000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-03-20', capabilities: { vision: false, reasoning: false, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'volcengine/doubao-seed-2.0-lite': { displayName: 'Doubao-Seed-2.0-lite', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2026-02-14', + lastUpdated: '2026-02-14', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'volcengine/doubao-seed-2.0-mini': { displayName: 'Doubao-Seed-2.0-mini', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2026-02-14', + lastUpdated: '2026-02-14', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'volcengine/doubao-seed-2.0-pro': { displayName: 'Doubao-Seed-2.0-pro', + description: 'Multimodal reasoning model for visual analysis, planning, and tool use', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2026-02-14', + lastUpdated: '2026-02-14', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'volcengine/doubao-seed-code': { displayName: 'Doubao-Seed-Code', + description: + 'Coding model for repository understanding, refactors, and agentic engineering tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-11-11', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'x-ai/grok-4': { displayName: 'Grok 4', + description: 'Grok model for agentic tool use, reasoning, coding, and live assistance', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-07-09', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['image', 'text'], output: ['text'] }, }, 'x-ai/grok-4-fast': { displayName: 'Grok 4 Fast', + description: 'Fast Grok model for responsive chat, reasoning, and tool-assisted work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 2000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-09-19', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'x-ai/grok-4.1-fast': { displayName: 'Grok 4.1 Fast', + description: 'Fast Grok model for responsive chat, reasoning, and tool-assisted work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 2000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-11-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'x-ai/grok-4.1-fast-non-reasoning': { displayName: 'Grok 4.1 Fast Non Reasoning', + description: 'Fast Grok model for responsive chat, reasoning, and tool-assisted work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 2000000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-11-20', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'x-ai/grok-4.2-fast': { displayName: 'Grok 4.2 Fast', + description: 'Fast Grok model for responsive chat, reasoning, and tool-assisted work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 2000000, maxOutputTokens: 30000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-03-20', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'x-ai/grok-4.2-fast-non-reasoning': { displayName: 'Grok 4.2 Fast Non Reasoning', + description: 'Fast Grok model for responsive chat, reasoning, and tool-assisted work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 2000000, maxOutputTokens: 30000, + knowledgeCutoff: '2025-08-31', + lastUpdated: '2026-03-20', capabilities: { vision: true, reasoning: false, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'x-ai/grok-4.3': { displayName: 'Grok 4.3', + description: + "xAI's default Grok for chat, coding, agentic tools, and lower hallucination risk", lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 1000000, + structuredOutput: true, + lastUpdated: '2026-04-17', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['none', 'low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'x-ai/grok-4.5': { displayName: 'Grok 4.5', + description: + "xAI's latest Grok for chat, coding, agentic tools, and lower hallucination risk", lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 500000, maxOutputTokens: 500000, + structuredOutput: true, + lastUpdated: '2026-07-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['low', 'medium', 'high'] }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'x-ai/grok-build-0.1': { displayName: 'Grok Build 0.1', + description: 'Fast Grok coding model tuned for agentic engineering and iterative edits', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 256000, + structuredOutput: true, + lastUpdated: '2026-04-16', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, 'x-ai/grok-code-fast-1': { displayName: 'Grok Code Fast 1', + description: 'Fast Grok model for responsive chat, reasoning, and tool-assisted work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 256000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-08-26', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'xiaomi/mimo-v2-flash': { displayName: 'MiMo-V2-Flash', + description: 'MiMo flash model for fast multimodal assistance and agent workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 262144, maxOutputTokens: 65536, + knowledgeCutoff: '2024-12-01', + lastUpdated: '2026-02-04', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'xiaomi/mimo-v2-omni': { displayName: 'MiMo V2 Omni', + description: 'MiMo omni model for text, image, video, audio, and agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 265000, maxOutputTokens: 265000, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-03-18', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, - modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, + modalities: { input: ['text', 'image', 'audio', 'pdf'], output: ['text'] }, }, 'xiaomi/mimo-v2-pro': { displayName: 'MiMo V2 Pro', + description: 'Earlier MiMo Pro model for multimodal agents, reasoning, and code tasks', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 256000, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-03-18', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'xiaomi/mimo-v2.5': { displayName: 'MiMo-V2.5', + description: 'Open MiMo model for multimodal coding agents and long-context automation', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: true, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text', 'image', 'audio'], output: ['text'] }, }, 'xiaomi/mimo-v2.5-pro': { displayName: 'MiMo-V2.5-Pro', + description: 'Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1048576, maxOutputTokens: 131072, + knowledgeCutoff: '2024-12', + lastUpdated: '2026-04-22', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.5': { displayName: 'GLM 4.5', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-07-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.5-air': { displayName: 'GLM 4.5 Air', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 128000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-07-25', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.6': { displayName: 'GLM 4.6', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-09-30', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.6v': { displayName: 'GLM 4.6V', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-12-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'z-ai/glm-4.6v-flash': { displayName: 'GLM 4.6V FlashX', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-12-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'z-ai/glm-4.6v-flash-free': { displayName: 'GLM 4.6V Flash (Free)', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-12-08', capabilities: { vision: true, reasoning: true, functionCalling: true }, modalities: { input: ['text', 'image'], output: ['text'] }, }, 'z-ai/glm-4.7': { displayName: 'GLM 4.7', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2025-12-23', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.7-flash-free': { displayName: 'GLM 4.7 Flash (Free)', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-4.7-flashx': { displayName: 'GLM 4.7 FlashX', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 64000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-01-19', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5': { displayName: 'GLM 5', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-02-12', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5-turbo': { displayName: 'GLM 5 Turbo', + description: 'Efficient GLM model for fast reasoning, coding, and agent workflows', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 128000, + knowledgeCutoff: '2025-01-01', + lastUpdated: '2026-03-20', capabilities: { vision: false, reasoning: true, functionCalling: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5.1': { displayName: 'GLM-5.1', + description: 'Flagship GLM model for hybrid reasoning, coding, and agentic engineering', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-04-03', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { toggle: true }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5.2': { displayName: 'GLM 5.2', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5.2-free': { displayName: 'GLM 5.2 (Free)', + description: + 'Open flagship GLM for long-horizon coding agents and million-token context work', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 1000000, maxOutputTokens: 131072, + structuredOutput: true, + lastUpdated: '2026-06-13', capabilities: { vision: false, reasoning: true, functionCalling: true }, thinkingOptions: { efforts: ['high', 'max'] }, modalities: { input: ['text'], output: ['text'] }, }, 'z-ai/glm-5v-turbo': { displayName: 'GLM 5V Turbo', + description: 'GLM vision model for visual reasoning, documents, and multimodal agents', lifecycle: 'active', docsUrl: 'https://docs.zenmux.ai', contextWindow: 200000, maxOutputTokens: 128000, + lastUpdated: '2026-04-01', capabilities: { vision: true, reasoning: true, functionCalling: true }, - modalities: { input: ['text', 'image'], output: ['text'] }, + modalities: { input: ['text', 'image', 'pdf'], output: ['text'] }, }, }, }; @@ -17282,6 +23312,7 @@ export const GENERATED_MODELS_DEV_DIRECTORY: Record = inceptron: { api: 'https://api.inceptron.io/v1' }, inference: { api: 'https://inference.net/v1' }, inferx: { api: 'https://model.inferx.net/endpoints/v1' }, + infomaniak: { api: 'https://api.infomaniak.com/2/ai/${INFOMANIAK_PRODUCT_ID}/openai/v1' }, 'io-net': { api: 'https://api.intelligence.io.solutions/api/v1' }, jiekou: { api: 'https://api.jiekou.ai/openai' }, kenari: { api: 'https://kenari.id/v1' }, @@ -17345,6 +23376,7 @@ export const GENERATED_MODELS_DEV_DIRECTORY: Record = 'sap-ai-core': {}, sarvam: { api: 'https://api.sarvam.ai/v1' }, scaleway: { api: 'https://api.scaleway.ai/v1' }, + scx: { api: 'https://api.scx.ai/v1' }, siliconflow: { api: 'https://api.siliconflow.com/v1' }, 'siliconflow-cn': { api: 'https://api.siliconflow.cn/v1' }, 'snowflake-cortex': { diff --git a/packages/core/src/model-metadata.ts b/packages/core/src/model-metadata.ts index 152f13edb0a..b2b50b00c1c 100644 --- a/packages/core/src/model-metadata.ts +++ b/packages/core/src/model-metadata.ts @@ -7,10 +7,15 @@ import { export interface ModelMetadata { displayName?: string; - lifecycle?: 'active' | 'deprecated' | 'retired'; + description?: string; + lifecycle?: 'active' | 'beta' | 'alpha' | 'deprecated' | 'retired'; docsUrl?: string; contextWindow?: number; + inputLimit?: number; maxOutputTokens?: number; + knowledgeCutoff?: string; + structuredOutput?: boolean; + lastUpdated?: string; capabilities?: ModelInfo['capabilities']; modalities?: ModelInfo['modalities']; endpointRoles?: ModelInfo['endpointRoles']; @@ -194,6 +199,30 @@ export function resolveModelVisionSupport( return VISION_BY_DEFAULT_PROVIDERS.has(providerType) && VISION_BY_DEFAULT.test(modelId.trim()); } +/** + * Resolve the input modalities for one model, preferring an explicit provider + * inventory and falling back to the generated models.dev facts. An empty + * result is intentional: unknown models must not be treated as attachment + * capable by default. + */ +export function resolveModelInputModalities( + providerType: ProviderType, + models: readonly ModelInfo[] | undefined, + modelId: string, +): NonNullable['input'] { + const stored = models?.find((entry) => entry.id === modelId)?.modalities?.input; + if (stored !== undefined) return stored; + return lookupModelMetadata(providerType, modelId).modalities?.input ?? []; +} + +export function resolveModelPdfSupport( + providerType: ProviderType, + models: readonly ModelInfo[] | undefined, + modelId: string, +): boolean { + return resolveModelInputModalities(providerType, models, modelId).includes('pdf'); +} + export function curatedCatalogFallbackModelsForProvider( providerType: ProviderType, ): readonly string[] | undefined { @@ -539,9 +568,18 @@ function displayMetadataOnly( id, { displayName: metadata.displayName, + ...(metadata.description !== undefined ? { description: metadata.description } : {}), lifecycle: metadata.lifecycle, docsUrl: metadata.docsUrl, + ...(metadata.knowledgeCutoff !== undefined + ? { knowledgeCutoff: metadata.knowledgeCutoff } + : {}), + ...(metadata.structuredOutput !== undefined + ? { structuredOutput: metadata.structuredOutput } + : {}), + ...(metadata.lastUpdated !== undefined ? { lastUpdated: metadata.lastUpdated } : {}), capabilities: metadata.capabilities, + ...(metadata.modalities !== undefined ? { modalities: metadata.modalities } : {}), thinkingOptions: overrides[id]?.thinkingOptions ?? metadata.thinkingOptions, }, ]), diff --git a/packages/core/src/voice.ts b/packages/core/src/voice.ts index fad3c8fa080..b27de55fd09 100644 --- a/packages/core/src/voice.ts +++ b/packages/core/src/voice.ts @@ -64,7 +64,7 @@ export interface VoiceModelRouteCapability { modelId: string; providerLabel?: string; modalities: { - input: Array<'text' | 'image' | 'audio'>; + input: Array<'text' | 'image' | 'audio' | 'pdf'>; output: Array<'text' | 'image' | 'audio'>; }; endpointRoles: Array< diff --git a/packages/runtime/src/__tests__/builtin-pricing.test.ts b/packages/runtime/src/__tests__/builtin-pricing.test.ts new file mode 100644 index 00000000000..70ce005af77 --- /dev/null +++ b/packages/runtime/src/__tests__/builtin-pricing.test.ts @@ -0,0 +1,20 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; +import { getBuiltinPricing } from '../telemetry/builtin-pricing.js'; + +test('builtin pricing resolves generated models.dev base rates', () => { + assert.deepEqual(getBuiltinPricing('openai:gpt-4o'), { + modelKey: 'openai:gpt-4o', + inputUsdPer1M: 2.5, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 1.25, + }); +}); + +test('special access-path pricing remains in the local supplement', () => { + assert.deepEqual(getBuiltinPricing('zai-coding-plan:glm-4.7'), { + modelKey: 'zai-coding-plan:glm-4.7', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.2, + }); +}); diff --git a/packages/runtime/src/__tests__/context-budget-model-facts.test.ts b/packages/runtime/src/__tests__/context-budget-model-facts.test.ts new file mode 100644 index 00000000000..84443fb453b --- /dev/null +++ b/packages/runtime/src/__tests__/context-budget-model-facts.test.ts @@ -0,0 +1,32 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; +import { + buildDefaultContextBudgetPolicy, + resolveSelectedModelContextWindow, +} from '../context-budget-policy.js'; + +test('context budgeting prefers a model input limit over its context window', () => { + const connection = { + slug: 'openai', + providerType: 'openai' as const, + defaultModel: 'model-with-narrow-input', + models: [{ id: 'model-with-narrow-input', contextWindow: 1_000, inputLimit: 600 }], + }; + + assert.equal(resolveSelectedModelContextWindow(connection, undefined), 600); + assert.equal( + buildDefaultContextBudgetPolicy(connection, { env: {} })?.maxHistoryEstimatedTokens, + 450, + ); +}); + +test('invalid zero input limits do not disable the context-window fallback', () => { + const connection = { + slug: 'openai', + providerType: 'openai' as const, + defaultModel: 'model-with-invalid-input', + models: [{ id: 'model-with-invalid-input', contextWindow: 1_000, inputLimit: 0 }], + }; + + assert.equal(resolveSelectedModelContextWindow(connection, undefined), 1_000); +}); diff --git a/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts b/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts new file mode 100644 index 00000000000..0aded1807ac --- /dev/null +++ b/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts @@ -0,0 +1,44 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; +import { lookupModelMetadata } from '@maka/core/model-metadata'; +import type { ProviderType } from '@maka/core/llm-connections'; +import { GENERATED_MODEL_PRICING } from '../telemetry/model-pricing.generated.js'; + +const LOCAL_SUPPLEMENT_PROVIDER_TYPES = new Set(['zai-coding-plan', 'MiniMax-cn']); + +test('generated pricing stays keyed to generated model facts', () => { + const gaps: string[] = []; + + for (const pricing of GENERATED_MODEL_PRICING) { + const separator = pricing.modelKey.indexOf(':'); + if (separator <= 0) { + gaps.push(`${pricing.modelKey} has no provider/model separator`); + continue; + } + const providerType = pricing.modelKey.slice(0, separator) as ProviderType; + const modelId = pricing.modelKey.slice(separator + 1); + const metadata = lookupModelMetadata(providerType, modelId); + if (!metadata.displayName) { + gaps.push(`${pricing.modelKey} has pricing but no generated model metadata`); + } + for (const field of [ + 'inputUsdPer1M', + 'outputUsdPer1M', + 'cacheReadUsdPer1M', + 'cacheWriteUsdPer1M', + ] as const) { + const value = pricing[field]; + if ( + value !== undefined && + (typeof value !== 'number' || !Number.isFinite(value) || value < 0) + ) { + gaps.push(`${pricing.modelKey} has invalid ${field}`); + } + } + if (LOCAL_SUPPLEMENT_PROVIDER_TYPES.has(providerType)) { + gaps.push(`${pricing.modelKey} must remain in the local supplement`); + } + } + + assert.deepEqual(gaps, []); +}); diff --git a/packages/runtime/src/context-budget-policy.ts b/packages/runtime/src/context-budget-policy.ts index a8f62c68514..87021d04d5a 100644 --- a/packages/runtime/src/context-budget-policy.ts +++ b/packages/runtime/src/context-budget-policy.ts @@ -416,14 +416,21 @@ export function resolveSelectedModelContextWindow( const model = selectedModelId ? connection.models?.find((candidate) => candidate.id === selectedModelId) : undefined; + const metadata = selectedModelId + ? lookupModelMetadata(connection.providerType, selectedModelId) + : undefined; return ( + positiveInputLimit(model?.inputLimit) ?? + positiveInputLimit(metadata?.inputLimit) ?? model?.contextWindow ?? - (selectedModelId - ? lookupModelMetadata(connection.providerType, selectedModelId).contextWindow - : undefined) + metadata?.contextWindow ); } +function positiveInputLimit(value: number | undefined): number | undefined { + return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : undefined; +} + export interface ContextBudgetCapacity { tokens: number; source: 'selected_model' | 'policy_fallback'; diff --git a/packages/runtime/src/telemetry/builtin-pricing.ts b/packages/runtime/src/telemetry/builtin-pricing.ts index d151615830e..a1ec4cce882 100644 --- a/packages/runtime/src/telemetry/builtin-pricing.ts +++ b/packages/runtime/src/telemetry/builtin-pricing.ts @@ -1,8 +1,11 @@ import type { PricingConfig } from '@maka/core/usage-stats/types'; +import { GENERATED_MODEL_PRICING } from './model-pricing.generated.js'; -// Vendor public pricing snapshot as of 2026-05-20. Special tiers such as -// Coding Plan, Education, and Volume Pricing should be represented by overrides. -export const BUILTIN_PRICING: readonly PricingConfig[] = [ +// Access-path-specific pricing that models.dev cannot represent. The generated +// table is authoritative for ordinary overlapping keys; these rows only fill +// gaps or preserve special plans whose provider price is not a public base +// rate. User pricing overrides still win in buildPricingLookup(). +const LOCAL_PRICING_SUPPLEMENT: readonly PricingConfig[] = [ { modelKey: 'anthropic:claude-opus-4-1', inputUsdPer1M: 15, @@ -64,6 +67,13 @@ export const BUILTIN_PRICING: readonly PricingConfig[] = [ }, ]; +const generatedPricingKeys = new Set(GENERATED_MODEL_PRICING.map(({ modelKey }) => modelKey)); + +export const BUILTIN_PRICING: readonly PricingConfig[] = [ + ...GENERATED_MODEL_PRICING, + ...LOCAL_PRICING_SUPPLEMENT.filter(({ modelKey }) => !generatedPricingKeys.has(modelKey)), +]; + const byKey = new Map(BUILTIN_PRICING.map((pricing) => [pricing.modelKey, pricing])); export function getBuiltinPricing(modelKey: string): PricingConfig | null { diff --git a/packages/runtime/src/telemetry/model-pricing.generated.ts b/packages/runtime/src/telemetry/model-pricing.generated.ts new file mode 100644 index 00000000000..8b098c67251 --- /dev/null +++ b/packages/runtime/src/telemetry/model-pricing.generated.ts @@ -0,0 +1,6566 @@ +// Generated by scripts/sync-model-metadata.mjs from https://models.dev/api.json. +// Do not edit by hand; special access-path pricing belongs in builtin-pricing.ts. +import type { PricingConfig } from '@maka/core/usage-stats/types'; + +export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ + { + modelKey: 'anthropic:claude-fable-5', + inputUsdPer1M: 10, + outputUsdPer1M: 50, + cacheReadUsdPer1M: 1, + cacheWriteUsdPer1M: 12.5, + }, + { + modelKey: 'anthropic:claude-haiku-4-5', + inputUsdPer1M: 1, + outputUsdPer1M: 5, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { + modelKey: 'anthropic:claude-haiku-4-5-20251001', + inputUsdPer1M: 1, + outputUsdPer1M: 5, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { + modelKey: 'anthropic:claude-opus-4-5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'anthropic:claude-opus-4-5-20251101', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'anthropic:claude-opus-4-6', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'anthropic:claude-opus-4-7', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'anthropic:claude-opus-4-8', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'anthropic:claude-opus-5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'anthropic:claude-sonnet-4-5', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'anthropic:claude-sonnet-4-5-20250929', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'anthropic:claude-sonnet-4-6', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'anthropic:claude-sonnet-5', + inputUsdPer1M: 2, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 2.5, + }, + { modelKey: 'alibaba:qvq-max', inputUsdPer1M: 1.2, outputUsdPer1M: 4.8 }, + { modelKey: 'alibaba:qwen-flash', inputUsdPer1M: 0.05, outputUsdPer1M: 0.4 }, + { modelKey: 'alibaba:qwen-max', inputUsdPer1M: 1.6, outputUsdPer1M: 6.4 }, + { modelKey: 'alibaba:qwen-mt-plus', inputUsdPer1M: 2.46, outputUsdPer1M: 7.37 }, + { modelKey: 'alibaba:qwen-mt-turbo', inputUsdPer1M: 0.16, outputUsdPer1M: 0.49 }, + { modelKey: 'alibaba:qwen-omni-turbo', inputUsdPer1M: 0.07, outputUsdPer1M: 0.27 }, + { modelKey: 'alibaba:qwen-omni-turbo-realtime', inputUsdPer1M: 0.27, outputUsdPer1M: 1.07 }, + { modelKey: 'alibaba:qwen-plus', inputUsdPer1M: 0.4, outputUsdPer1M: 1.2 }, + { modelKey: 'alibaba:qwen-plus-character-ja', inputUsdPer1M: 0.5, outputUsdPer1M: 1.4 }, + { modelKey: 'alibaba:qwen-turbo', inputUsdPer1M: 0.05, outputUsdPer1M: 0.2 }, + { modelKey: 'alibaba:qwen-vl-max', inputUsdPer1M: 0.8, outputUsdPer1M: 3.2 }, + { modelKey: 'alibaba:qwen-vl-ocr', inputUsdPer1M: 0.72, outputUsdPer1M: 0.72 }, + { modelKey: 'alibaba:qwen-vl-plus', inputUsdPer1M: 0.21, outputUsdPer1M: 0.63 }, + { modelKey: 'alibaba:qwen2-5-14b-instruct', inputUsdPer1M: 0.35, outputUsdPer1M: 1.4 }, + { modelKey: 'alibaba:qwen2-5-32b-instruct', inputUsdPer1M: 0.7, outputUsdPer1M: 2.8 }, + { modelKey: 'alibaba:qwen2-5-72b-instruct', inputUsdPer1M: 1.4, outputUsdPer1M: 5.6 }, + { modelKey: 'alibaba:qwen2-5-7b-instruct', inputUsdPer1M: 0.175, outputUsdPer1M: 0.7 }, + { modelKey: 'alibaba:qwen2-5-omni-7b', inputUsdPer1M: 0.1, outputUsdPer1M: 0.4 }, + { modelKey: 'alibaba:qwen2-5-vl-72b-instruct', inputUsdPer1M: 2.8, outputUsdPer1M: 8.4 }, + { modelKey: 'alibaba:qwen2-5-vl-7b-instruct', inputUsdPer1M: 0.35, outputUsdPer1M: 1.05 }, + { modelKey: 'alibaba:qwen3-14b', inputUsdPer1M: 0.35, outputUsdPer1M: 1.4 }, + { modelKey: 'alibaba:qwen3-235b-a22b', inputUsdPer1M: 0.7, outputUsdPer1M: 2.8 }, + { modelKey: 'alibaba:qwen3-32b', inputUsdPer1M: 0.7, outputUsdPer1M: 2.8 }, + { modelKey: 'alibaba:qwen3-8b', inputUsdPer1M: 0.18, outputUsdPer1M: 0.7 }, + { modelKey: 'alibaba:qwen3-asr-flash', inputUsdPer1M: 0.035, outputUsdPer1M: 0.035 }, + { modelKey: 'alibaba:qwen3-coder-30b-a3b-instruct', inputUsdPer1M: 0.45, outputUsdPer1M: 2.25 }, + { modelKey: 'alibaba:qwen3-coder-480b-a35b-instruct', inputUsdPer1M: 1.5, outputUsdPer1M: 7.5 }, + { modelKey: 'alibaba:qwen3-coder-flash', inputUsdPer1M: 0.3, outputUsdPer1M: 1.5 }, + { modelKey: 'alibaba:qwen3-coder-plus', inputUsdPer1M: 1, outputUsdPer1M: 5 }, + { modelKey: 'alibaba:qwen3-livetranslate-flash-realtime', inputUsdPer1M: 10, outputUsdPer1M: 10 }, + { modelKey: 'alibaba:qwen3-max', inputUsdPer1M: 1.2, outputUsdPer1M: 6 }, + { modelKey: 'alibaba:qwen3-next-80b-a3b-instruct', inputUsdPer1M: 0.5, outputUsdPer1M: 2 }, + { modelKey: 'alibaba:qwen3-next-80b-a3b-thinking', inputUsdPer1M: 0.5, outputUsdPer1M: 6 }, + { modelKey: 'alibaba:qwen3-omni-flash', inputUsdPer1M: 0.43, outputUsdPer1M: 1.66 }, + { modelKey: 'alibaba:qwen3-omni-flash-realtime', inputUsdPer1M: 0.52, outputUsdPer1M: 1.99 }, + { modelKey: 'alibaba:qwen3-vl-235b-a22b', inputUsdPer1M: 0.7, outputUsdPer1M: 2.8 }, + { modelKey: 'alibaba:qwen3-vl-30b-a3b', inputUsdPer1M: 0.2, outputUsdPer1M: 0.8 }, + { modelKey: 'alibaba:qwen3-vl-plus', inputUsdPer1M: 0.2, outputUsdPer1M: 1.6 }, + { modelKey: 'alibaba:qwen3.5-122b-a10b', inputUsdPer1M: 0.4, outputUsdPer1M: 3.2 }, + { modelKey: 'alibaba:qwen3.5-27b', inputUsdPer1M: 0.3, outputUsdPer1M: 2.4 }, + { modelKey: 'alibaba:qwen3.5-35b-a3b', inputUsdPer1M: 0.25, outputUsdPer1M: 2 }, + { modelKey: 'alibaba:qwen3.5-397b-a17b', inputUsdPer1M: 0.6, outputUsdPer1M: 3.6 }, + { modelKey: 'alibaba:qwen3.5-plus', inputUsdPer1M: 0.4, outputUsdPer1M: 2.4 }, + { modelKey: 'alibaba:qwen3.6-27b', inputUsdPer1M: 0.6, outputUsdPer1M: 3.6 }, + { modelKey: 'alibaba:qwen3.6-35b-a3b', inputUsdPer1M: 0.248, outputUsdPer1M: 1.485 }, + { + modelKey: 'alibaba:qwen3.6-flash', + inputUsdPer1M: 0.1875, + outputUsdPer1M: 1.125, + cacheWriteUsdPer1M: 0.234375, + }, + { + modelKey: 'alibaba:qwen3.6-max-preview', + inputUsdPer1M: 1.3, + outputUsdPer1M: 7.8, + cacheReadUsdPer1M: 0.13, + cacheWriteUsdPer1M: 1.625, + }, + { + modelKey: 'alibaba:qwen3.6-plus', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + cacheWriteUsdPer1M: 0.625, + }, + { + modelKey: 'alibaba:qwen3.7-max', + inputUsdPer1M: 2.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 3.125, + }, + { + modelKey: 'alibaba:qwen3.7-plus', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + cacheWriteUsdPer1M: 0.625, + }, + { + modelKey: 'alibaba:qwen3.8-max', + inputUsdPer1M: 2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.25, + cacheWriteUsdPer1M: 2.5, + }, + { modelKey: 'alibaba:qwq-plus', inputUsdPer1M: 0.8, outputUsdPer1M: 2.4 }, + { + modelKey: 'alibaba-coding-plan-cn:glm-4.7', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan-cn:glm-5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan-cn:kimi-k2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan-cn:MiniMax-M2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan-cn:qwen3-coder-next', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan-cn:qwen3-coder-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan-cn:qwen3-max-2026-01-23', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan-cn:qwen3.5-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan-cn:qwen3.6-flash', + inputUsdPer1M: 0.1875, + outputUsdPer1M: 1.125, + cacheWriteUsdPer1M: 0.234375, + }, + { + modelKey: 'alibaba-coding-plan-cn:qwen3.6-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan-cn:qwen3.7-max', + inputUsdPer1M: 2.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 3.125, + }, + { + modelKey: 'alibaba-coding-plan-cn:qwen3.7-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan:glm-4.7', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan:glm-5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan:kimi-k2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan:MiniMax-M2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan:qwen3-coder-next', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan:qwen3-coder-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan:qwen3-max-2026-01-23', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan:qwen3.5-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan:qwen3.6-flash', + inputUsdPer1M: 0.1875, + outputUsdPer1M: 1.125, + cacheWriteUsdPer1M: 0.234375, + }, + { + modelKey: 'alibaba-coding-plan:qwen3.6-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-coding-plan:qwen3.7-max', + inputUsdPer1M: 2.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 3.125, + }, + { + modelKey: 'alibaba-coding-plan:qwen3.7-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'alibaba-token-plan-cn:deepseek-v3.2', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'alibaba-token-plan-cn:deepseek-v4-flash', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:deepseek-v4-flash-0731', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:deepseek-v4-pro', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:glm-5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:glm-5.1', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:glm-5.2', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'alibaba-token-plan-cn:happyhorse-1.1-i2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'alibaba-token-plan-cn:happyhorse-1.1-r2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'alibaba-token-plan-cn:happyhorse-1.1-t2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'alibaba-token-plan-cn:kimi-k2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:kimi-k2.6', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:kimi-k2.7-code', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:MiniMax-M2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'alibaba-token-plan-cn:qwen-image-2.0', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'alibaba-token-plan-cn:qwen-image-2.0-pro', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'alibaba-token-plan-cn:qwen3.6-flash', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:qwen3.6-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:qwen3.7-max', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:qwen3.7-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:qwen3.8-max', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan-cn:qwen3.8-max-preview', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'alibaba-token-plan-cn:wan2.7-image', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'alibaba-token-plan-cn:wan2.7-image-pro', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'alibaba-token-plan:deepseek-v3.2', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'alibaba-token-plan:deepseek-v4-flash', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:deepseek-v4-flash-0731', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:deepseek-v4-pro', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:glm-5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:glm-5.1', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:glm-5.2', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'alibaba-token-plan:happyhorse-1.1-i2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'alibaba-token-plan:happyhorse-1.1-r2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'alibaba-token-plan:happyhorse-1.1-t2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'alibaba-token-plan:kimi-k2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:kimi-k2.6', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:kimi-k2.7-code', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:MiniMax-M2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'alibaba-token-plan:qwen-image-2.0', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'alibaba-token-plan:qwen-image-2.0-pro', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'alibaba-token-plan:qwen3.6-flash', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:qwen3.6-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:qwen3.7-max', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:qwen3.7-plus', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:qwen3.8-max', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'alibaba-token-plan:qwen3.8-max-preview', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'alibaba-token-plan:wan2.7-image', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'alibaba-token-plan:wan2.7-image-pro', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'cerebras:gemma-4-31b', inputUsdPer1M: 0.99, outputUsdPer1M: 1.49 }, + { modelKey: 'cerebras:gpt-oss-120b', inputUsdPer1M: 0.35, outputUsdPer1M: 0.75 }, + { + modelKey: 'cerebras:zai-glm-4.7', + inputUsdPer1M: 2.25, + outputUsdPer1M: 2.75, + cacheReadUsdPer1M: 2.25, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'cohere:command-a-03-2025', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { modelKey: 'cohere:command-a-plus-05-2026', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { modelKey: 'cohere:command-a-reasoning-08-2025', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { modelKey: 'cohere:command-a-translate-08-2025', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { modelKey: 'cohere:command-a-vision-07-2025', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { modelKey: 'cohere:command-r-08-2024', inputUsdPer1M: 0.15, outputUsdPer1M: 0.6 }, + { modelKey: 'cohere:command-r-plus-08-2024', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { modelKey: 'cohere:command-r7b-12-2024', inputUsdPer1M: 0.0375, outputUsdPer1M: 0.15 }, + { modelKey: 'cohere:command-r7b-arabic-02-2025', inputUsdPer1M: 0.0375, outputUsdPer1M: 0.15 }, + { modelKey: 'cohere:north-mini-code-1-0', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'cloudflare-workers-ai:@cf/aisingapore/gemma-sea-lion-v4-27b-it', + inputUsdPer1M: 0.351, + outputUsdPer1M: 0.555, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/deepseek-ai/deepseek-r1-distill-qwen-32b', + inputUsdPer1M: 0.497, + outputUsdPer1M: 4.881, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/google/gemma-4-26b-a4b-it', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.3, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/ibm-granite/granite-4.0-h-micro', + inputUsdPer1M: 0.017, + outputUsdPer1M: 0.112, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/meta/llama-3.1-8b-instruct-fp8', + inputUsdPer1M: 0.152, + outputUsdPer1M: 0.287, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/meta/llama-3.2-11b-vision-instruct', + inputUsdPer1M: 0.0485, + outputUsdPer1M: 0.676, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/meta/llama-3.2-1b-instruct', + inputUsdPer1M: 0.027, + outputUsdPer1M: 0.201, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/meta/llama-3.2-3b-instruct', + inputUsdPer1M: 0.0509, + outputUsdPer1M: 0.335, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/meta/llama-3.3-70b-instruct-fp8-fast', + inputUsdPer1M: 0.293, + outputUsdPer1M: 2.253, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/meta/llama-4-scout-17b-16e-instruct', + inputUsdPer1M: 0.27, + outputUsdPer1M: 0.85, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/meta/llama-guard-3-8b', + inputUsdPer1M: 0.484, + outputUsdPer1M: 0.03, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/mistralai/mistral-small-3.1-24b-instruct', + inputUsdPer1M: 0.351, + outputUsdPer1M: 0.555, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/moonshotai/kimi-k2.6', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.16, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/moonshotai/kimi-k2.7-code', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.19, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/nvidia/nemotron-3-120b-a12b', + inputUsdPer1M: 0.5, + outputUsdPer1M: 1.5, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/openai/gpt-oss-120b', + inputUsdPer1M: 0.35, + outputUsdPer1M: 0.75, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/openai/gpt-oss-20b', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.3, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/qwen/qwen2.5-coder-32b-instruct', + inputUsdPer1M: 0.66, + outputUsdPer1M: 1, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/qwen/qwen3-30b-a3b-fp8', + inputUsdPer1M: 0.0509, + outputUsdPer1M: 0.335, + }, + { modelKey: 'cloudflare-workers-ai:@cf/qwen/qwq-32b', inputUsdPer1M: 0.66, outputUsdPer1M: 1 }, + { + modelKey: 'cloudflare-workers-ai:@cf/zai-org/glm-4.7-flash', + inputUsdPer1M: 0.0605, + outputUsdPer1M: 0.4, + }, + { + modelKey: 'cloudflare-workers-ai:@cf/zai-org/glm-5.2', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + }, + { + modelKey: 'deepinfra:deepseek-ai/DeepSeek-R1-0528', + inputUsdPer1M: 0.5, + outputUsdPer1M: 2.15, + cacheReadUsdPer1M: 0.35, + }, + { modelKey: 'deepinfra:deepseek-ai/DeepSeek-V3', inputUsdPer1M: 0.32, outputUsdPer1M: 0.89 }, + { + modelKey: 'deepinfra:deepseek-ai/DeepSeek-V3.1', + inputUsdPer1M: 0.25, + outputUsdPer1M: 0.95, + cacheReadUsdPer1M: 0.13, + }, + { + modelKey: 'deepinfra:deepseek-ai/DeepSeek-V3.2', + inputUsdPer1M: 0.26, + outputUsdPer1M: 0.38, + cacheReadUsdPer1M: 0.13, + }, + { + modelKey: 'deepinfra:deepseek-ai/DeepSeek-V4-Flash', + inputUsdPer1M: 0.09, + outputUsdPer1M: 0.18, + cacheReadUsdPer1M: 0.018, + }, + { + modelKey: 'deepinfra:deepseek-ai/DeepSeek-V4-Flash-0731', + inputUsdPer1M: 0.09, + outputUsdPer1M: 0.18, + cacheReadUsdPer1M: 0.018, + }, + { + modelKey: 'deepinfra:deepseek-ai/DeepSeek-V4-Pro', + inputUsdPer1M: 1.3, + outputUsdPer1M: 2.6, + cacheReadUsdPer1M: 0.1, + }, + { modelKey: 'deepinfra:google/gemma-4-26B-A4B-it', inputUsdPer1M: 0.07, outputUsdPer1M: 0.34 }, + { modelKey: 'deepinfra:google/gemma-4-31B-it', inputUsdPer1M: 0.13, outputUsdPer1M: 0.38 }, + { modelKey: 'deepinfra:google/gemma-4-E4B-it', inputUsdPer1M: 0.02, outputUsdPer1M: 0.1 }, + { + modelKey: 'deepinfra:meta-llama/Llama-3.3-70B-Instruct-Turbo', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.32, + }, + { + modelKey: 'deepinfra:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.8, + }, + { + modelKey: 'deepinfra:meta-llama/Llama-4-Scout-17B-16E-Instruct', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.3, + }, + { + modelKey: 'deepinfra:MiniMaxAI/MiniMax-M2.5', + inputUsdPer1M: 0.15, + outputUsdPer1M: 1.15, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'deepinfra:MiniMaxAI/MiniMax-M2.7', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'deepinfra:MiniMaxAI/MiniMax-M3', + inputUsdPer1M: 0.28, + outputUsdPer1M: 1.1, + cacheReadUsdPer1M: 0.056, + }, + { + modelKey: 'deepinfra:moonshotai/Kimi-K2.5', + inputUsdPer1M: 0.45, + outputUsdPer1M: 2.25, + cacheReadUsdPer1M: 0.07, + }, + { + modelKey: 'deepinfra:moonshotai/Kimi-K2.6', + inputUsdPer1M: 0.75, + outputUsdPer1M: 3.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'deepinfra:moonshotai/Kimi-K2.7-Code', + inputUsdPer1M: 0.68, + outputUsdPer1M: 3.4, + cacheReadUsdPer1M: 0.136, + }, + { + modelKey: 'deepinfra:moonshotai/Kimi-K3', + inputUsdPer1M: 2.7, + outputUsdPer1M: 13.5, + cacheReadUsdPer1M: 0.27, + }, + { + modelKey: 'deepinfra:nvidia/Llama-3.3-Nemotron-Super-49B-v1.5', + inputUsdPer1M: 0.4, + outputUsdPer1M: 0.4, + }, + { + modelKey: 'deepinfra:nvidia/Nemotron-3-Nano-30B-A3B', + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.2, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'deepinfra:nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.8, + }, + { modelKey: 'deepinfra:openai/gpt-oss-120b', inputUsdPer1M: 0.037, outputUsdPer1M: 0.17 }, + { modelKey: 'deepinfra:openai/gpt-oss-20b', inputUsdPer1M: 0.03, outputUsdPer1M: 0.14 }, + { + modelKey: 'deepinfra:Qwen/Qwen3-235B-A22B-Instruct-2507', + inputUsdPer1M: 0.09, + outputUsdPer1M: 0.55, + }, + { modelKey: 'deepinfra:Qwen/Qwen3-32B', inputUsdPer1M: 0.08, outputUsdPer1M: 0.28 }, + { + modelKey: 'deepinfra:Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'deepinfra:Qwen/Qwen3-Max', + inputUsdPer1M: 1.2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.24, + }, + { + modelKey: 'deepinfra:Qwen/Qwen3-Next-80B-A3B-Instruct', + inputUsdPer1M: 0.09, + outputUsdPer1M: 1.1, + }, + { modelKey: 'deepinfra:Qwen/Qwen3.5-122B-A10B', inputUsdPer1M: 0.29, outputUsdPer1M: 2.4 }, + { modelKey: 'deepinfra:Qwen/Qwen3.5-27B', inputUsdPer1M: 0.26, outputUsdPer1M: 2.6 }, + { + modelKey: 'deepinfra:Qwen/Qwen3.5-35B-A3B', + inputUsdPer1M: 0.14, + outputUsdPer1M: 1, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'deepinfra:Qwen/Qwen3.5-397B-A17B', + inputUsdPer1M: 0.45, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.22, + }, + { modelKey: 'deepinfra:Qwen/Qwen3.5-9B', inputUsdPer1M: 0.1, outputUsdPer1M: 0.15 }, + { modelKey: 'deepinfra:Qwen/Qwen3.6-27B', inputUsdPer1M: 0.32, outputUsdPer1M: 3.2 }, + { modelKey: 'deepinfra:Qwen/Qwen3.6-35B-A3B', inputUsdPer1M: 0.1, outputUsdPer1M: 0.95 }, + { + modelKey: 'deepinfra:Qwen/Qwen3.7-Max', + inputUsdPer1M: 2.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.5, + }, + { + modelKey: 'deepinfra:Qwen/Qwen3.8-Max', + inputUsdPer1M: 1.65, + outputUsdPer1M: 4.951, + cacheReadUsdPer1M: 0.206, + }, + { + modelKey: 'deepinfra:stepfun-ai/Step-3.7-Flash', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.15, + cacheReadUsdPer1M: 0.04, + }, + { + modelKey: 'deepinfra:tencent/Hy3', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.58, + cacheReadUsdPer1M: 0.035, + }, + { + modelKey: 'deepinfra:thinkingmachines/Inkling', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4.05, + cacheReadUsdPer1M: 0.16, + }, + { + modelKey: 'deepinfra:thinkingmachines/Inkling-Small', + inputUsdPer1M: 0.45, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'deepinfra:XiaomiMiMo/MiMo-V2.5', + inputUsdPer1M: 0.4, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.08, + }, + { + modelKey: 'deepinfra:XiaomiMiMo/MiMo-V2.5-Pro', + inputUsdPer1M: 1, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'deepinfra:zai-org/GLM-4.6', + inputUsdPer1M: 0.5, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'deepinfra:zai-org/GLM-4.7', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.75, + cacheReadUsdPer1M: 0.08, + }, + { + modelKey: 'deepinfra:zai-org/GLM-4.7-Flash', + inputUsdPer1M: 0.06, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.01, + }, + { + modelKey: 'deepinfra:zai-org/GLM-5', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.08, + cacheReadUsdPer1M: 0.12, + }, + { + modelKey: 'deepinfra:zai-org/GLM-5.1', + inputUsdPer1M: 1.05, + outputUsdPer1M: 3.5, + cacheReadUsdPer1M: 0.205, + }, + { + modelKey: 'deepinfra:zai-org/GLM-5.2', + inputUsdPer1M: 0.75, + outputUsdPer1M: 2.4, + cacheReadUsdPer1M: 0.14, + }, + { + modelKey: 'deepseek:deepseek-chat', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'deepseek:deepseek-reasoner', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'deepseek:deepseek-v4-flash', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'deepseek:deepseek-v4-pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.003625, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/deepseek-v4-flash', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.028, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/deepseek-v4-flash-0731', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.028, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/deepseek-v4-pro', + inputUsdPer1M: 1.74, + outputUsdPer1M: 3.48, + cacheReadUsdPer1M: 0.145, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/glm-5p2', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.14, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/gpt-oss-120b', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.015, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/gpt-oss-20b', + inputUsdPer1M: 0.07, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.035, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/kimi-k2p6', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.16, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/kimi-k2p7-code', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.19, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/kimi-k3', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/minimax-m2p7', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/minimax-m3', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/qwen3p7-plus', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.6, + cacheReadUsdPer1M: 0.08, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/routers/glm-5p2-fast', + inputUsdPer1M: 2.1, + outputUsdPer1M: 6.6, + cacheReadUsdPer1M: 0.21, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k2p6-fast', + inputUsdPer1M: 2, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.3, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k2p6-turbo', + inputUsdPer1M: 2, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.3, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k2p7-code-fast', + inputUsdPer1M: 1.9, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.38, + }, + { + modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k3-fast', + inputUsdPer1M: 4.5, + outputUsdPer1M: 22.5, + cacheReadUsdPer1M: 0.45, + }, + { + modelKey: 'github-copilot:claude-fable-5', + inputUsdPer1M: 10, + outputUsdPer1M: 50, + cacheReadUsdPer1M: 1, + cacheWriteUsdPer1M: 12.5, + }, + { + modelKey: 'github-copilot:claude-haiku-4.5', + inputUsdPer1M: 1, + outputUsdPer1M: 5, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { + modelKey: 'github-copilot:claude-opus-4.5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'github-copilot:claude-opus-4.6', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'github-copilot:claude-opus-4.7', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'github-copilot:claude-opus-4.8', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'github-copilot:claude-opus-5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'github-copilot:claude-sonnet-4', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'github-copilot:claude-sonnet-4.5', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'github-copilot:claude-sonnet-4.6', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'github-copilot:claude-sonnet-5', + inputUsdPer1M: 2, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 2.5, + }, + { + modelKey: 'github-copilot:gemini-3.1-pro-preview', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'github-copilot:gemini-3.5-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 9, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'github-copilot:gemini-3.6-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'github-copilot:gpt-4.1', + inputUsdPer1M: 2, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.5, + }, + { + modelKey: 'github-copilot:gpt-5-mini', + inputUsdPer1M: 0.25, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'github-copilot:gpt-5.2', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'github-copilot:gpt-5.2-codex', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'github-copilot:gpt-5.3-codex', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'github-copilot:gpt-5.4', + inputUsdPer1M: 2.5, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.25, + }, + { + modelKey: 'github-copilot:gpt-5.4-mini', + inputUsdPer1M: 0.75, + outputUsdPer1M: 4.5, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'github-copilot:gpt-5.4-nano', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.25, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'github-copilot:gpt-5.5', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + }, + { + modelKey: 'github-copilot:gpt-5.6-luna', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'github-copilot:gpt-5.6-sol', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'github-copilot:gpt-5.6-terra', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'github-copilot:grok-4.5', + inputUsdPer1M: 2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.5, + }, + { + modelKey: 'github-copilot:kimi-k2.7-code', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.19, + }, + { + modelKey: 'github-copilot:kimi-k3', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.19, + }, + { + modelKey: 'github-copilot:mai-code-1-flash-picker', + inputUsdPer1M: 0.75, + outputUsdPer1M: 4.5, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'google:deep-research-max-preview-04-2026', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'google:deep-research-preview-04-2026', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'google:gemini-2.0-flash', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.025, + }, + { modelKey: 'google:gemini-2.0-flash-lite', inputUsdPer1M: 0.075, outputUsdPer1M: 0.3 }, + { + modelKey: 'google:gemini-2.5-computer-use-preview-10-2025', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + }, + { + modelKey: 'google:gemini-2.5-flash', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'google:gemini-2.5-flash-image', + inputUsdPer1M: 0.3, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'google:gemini-2.5-flash-lite', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.01, + }, + { modelKey: 'google:gemini-2.5-flash-preview-tts', inputUsdPer1M: 0.5, outputUsdPer1M: 10 }, + { + modelKey: 'google:gemini-2.5-pro', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + }, + { modelKey: 'google:gemini-2.5-pro-preview-tts', inputUsdPer1M: 1, outputUsdPer1M: 20 }, + { + modelKey: 'google:gemini-3-flash-preview', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + }, + { modelKey: 'google:gemini-3-pro-image', inputUsdPer1M: 2, outputUsdPer1M: 120 }, + { modelKey: 'google:gemini-3-pro-image-preview', inputUsdPer1M: 2, outputUsdPer1M: 120 }, + { + modelKey: 'google:gemini-3-pro-preview', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { modelKey: 'google:gemini-3.1-flash-image', inputUsdPer1M: 0.5, outputUsdPer1M: 60 }, + { modelKey: 'google:gemini-3.1-flash-image-preview', inputUsdPer1M: 0.5, outputUsdPer1M: 60 }, + { + modelKey: 'google:gemini-3.1-flash-lite', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.025, + }, + { modelKey: 'google:gemini-3.1-flash-lite-image', inputUsdPer1M: 0.25, outputUsdPer1M: 30 }, + { + modelKey: 'google:gemini-3.1-flash-lite-preview', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.025, + }, + { modelKey: 'google:gemini-3.1-flash-live-preview', inputUsdPer1M: 0.75, outputUsdPer1M: 4.5 }, + { modelKey: 'google:gemini-3.1-flash-tts-preview', inputUsdPer1M: 1, outputUsdPer1M: 20 }, + { + modelKey: 'google:gemini-3.1-pro-preview', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'google:gemini-3.1-pro-preview-customtools', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'google:gemini-3.5-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 9, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'google:gemini-3.5-flash-lite', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + }, + { modelKey: 'google:gemini-3.5-live-translate-preview', inputUsdPer1M: 3.5, outputUsdPer1M: 21 }, + { + modelKey: 'google:gemini-3.6-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.15, + }, + { modelKey: 'google:gemini-embedding-001', inputUsdPer1M: 0.15, outputUsdPer1M: 0 }, + { modelKey: 'google:gemini-embedding-2', inputUsdPer1M: 0.2, outputUsdPer1M: 0 }, + { + modelKey: 'google:gemini-flash-latest', + inputUsdPer1M: 1.5, + outputUsdPer1M: 9, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'google:gemini-flash-lite-latest', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.025, + }, + { modelKey: 'google:gemini-omni-flash-preview', inputUsdPer1M: 1.5, outputUsdPer1M: 17.5 }, + { modelKey: 'google:gemini-robotics-er-1.6-preview', inputUsdPer1M: 1, outputUsdPer1M: 5 }, + { modelKey: 'google:lyria-3-clip-preview', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'google:lyria-3-pro-preview', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'gemini-cli:deep-research-max-preview-04-2026', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'gemini-cli:deep-research-preview-04-2026', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'gemini-cli:gemini-2.0-flash', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.025, + }, + { modelKey: 'gemini-cli:gemini-2.0-flash-lite', inputUsdPer1M: 0.075, outputUsdPer1M: 0.3 }, + { + modelKey: 'gemini-cli:gemini-2.5-computer-use-preview-10-2025', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + }, + { + modelKey: 'gemini-cli:gemini-2.5-flash', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'gemini-cli:gemini-2.5-flash-image', + inputUsdPer1M: 0.3, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'gemini-cli:gemini-2.5-flash-lite', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.01, + }, + { modelKey: 'gemini-cli:gemini-2.5-flash-preview-tts', inputUsdPer1M: 0.5, outputUsdPer1M: 10 }, + { + modelKey: 'gemini-cli:gemini-2.5-pro', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + }, + { modelKey: 'gemini-cli:gemini-2.5-pro-preview-tts', inputUsdPer1M: 1, outputUsdPer1M: 20 }, + { + modelKey: 'gemini-cli:gemini-3-flash-preview', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + }, + { modelKey: 'gemini-cli:gemini-3-pro-image', inputUsdPer1M: 2, outputUsdPer1M: 120 }, + { modelKey: 'gemini-cli:gemini-3-pro-image-preview', inputUsdPer1M: 2, outputUsdPer1M: 120 }, + { + modelKey: 'gemini-cli:gemini-3-pro-preview', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { modelKey: 'gemini-cli:gemini-3.1-flash-image', inputUsdPer1M: 0.5, outputUsdPer1M: 60 }, + { modelKey: 'gemini-cli:gemini-3.1-flash-image-preview', inputUsdPer1M: 0.5, outputUsdPer1M: 60 }, + { + modelKey: 'gemini-cli:gemini-3.1-flash-lite', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.025, + }, + { modelKey: 'gemini-cli:gemini-3.1-flash-lite-image', inputUsdPer1M: 0.25, outputUsdPer1M: 30 }, + { + modelKey: 'gemini-cli:gemini-3.1-flash-lite-preview', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'gemini-cli:gemini-3.1-flash-live-preview', + inputUsdPer1M: 0.75, + outputUsdPer1M: 4.5, + }, + { modelKey: 'gemini-cli:gemini-3.1-flash-tts-preview', inputUsdPer1M: 1, outputUsdPer1M: 20 }, + { + modelKey: 'gemini-cli:gemini-3.1-pro-preview', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'gemini-cli:gemini-3.1-pro-preview-customtools', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'gemini-cli:gemini-3.5-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 9, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'gemini-cli:gemini-3.5-flash-lite', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'gemini-cli:gemini-3.5-live-translate-preview', + inputUsdPer1M: 3.5, + outputUsdPer1M: 21, + }, + { + modelKey: 'gemini-cli:gemini-3.6-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.15, + }, + { modelKey: 'gemini-cli:gemini-embedding-001', inputUsdPer1M: 0.15, outputUsdPer1M: 0 }, + { modelKey: 'gemini-cli:gemini-embedding-2', inputUsdPer1M: 0.2, outputUsdPer1M: 0 }, + { + modelKey: 'gemini-cli:gemini-flash-latest', + inputUsdPer1M: 1.5, + outputUsdPer1M: 9, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'gemini-cli:gemini-flash-lite-latest', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.025, + }, + { modelKey: 'gemini-cli:gemini-omni-flash-preview', inputUsdPer1M: 1.5, outputUsdPer1M: 17.5 }, + { modelKey: 'gemini-cli:gemini-robotics-er-1.6-preview', inputUsdPer1M: 1, outputUsdPer1M: 5 }, + { modelKey: 'gemini-cli:lyria-3-clip-preview', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'gemini-cli:lyria-3-pro-preview', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'groq:allam-2-7b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'groq:llama-3.1-8b-instant', inputUsdPer1M: 0.05, outputUsdPer1M: 0.08 }, + { modelKey: 'groq:llama-3.3-70b-versatile', inputUsdPer1M: 0.59, outputUsdPer1M: 0.79 }, + { + modelKey: 'groq:meta-llama/llama-prompt-guard-2-22m', + inputUsdPer1M: 0.03, + outputUsdPer1M: 0.03, + }, + { + modelKey: 'groq:meta-llama/llama-prompt-guard-2-86m', + inputUsdPer1M: 0.04, + outputUsdPer1M: 0.04, + }, + { + modelKey: 'groq:openai/gpt-oss-120b', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'groq:openai/gpt-oss-20b', + inputUsdPer1M: 0.075, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.0375, + }, + { modelKey: 'groq:openai/gpt-oss-safeguard-20b', inputUsdPer1M: 0.075, outputUsdPer1M: 0.3 }, + { + modelKey: 'groq:qwen/qwen3.6-27b', + inputUsdPer1M: 0.6, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.3, + }, + { modelKey: 'huggingface:deepseek-ai/DeepSeek-R1', inputUsdPer1M: 0.7, outputUsdPer1M: 2.5 }, + { modelKey: 'huggingface:deepseek-ai/DeepSeek-R1-0528', inputUsdPer1M: 3, outputUsdPer1M: 5 }, + { modelKey: 'huggingface:deepseek-ai/DeepSeek-V3', inputUsdPer1M: 0.4, outputUsdPer1M: 1.3 }, + { modelKey: 'huggingface:deepseek-ai/DeepSeek-V3.1', inputUsdPer1M: 0.27, outputUsdPer1M: 1 }, + { modelKey: 'huggingface:deepseek-ai/DeepSeek-V3.2', inputUsdPer1M: 0.28, outputUsdPer1M: 0.4 }, + { + modelKey: 'huggingface:deepseek-ai/DeepSeek-V4-Flash', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + }, + { + modelKey: 'huggingface:deepseek-ai/DeepSeek-V4-Flash-0731', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + }, + { + modelKey: 'huggingface:deepseek-ai/DeepSeek-V4-Pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.003625, + }, + { modelKey: 'huggingface:google/gemma-4-26B-A4B-it', inputUsdPer1M: 0.13, outputUsdPer1M: 0.4 }, + { modelKey: 'huggingface:google/gemma-4-31B-it', inputUsdPer1M: 0.14, outputUsdPer1M: 0.4 }, + { + modelKey: 'huggingface:meta-llama/Llama-3.3-70B-Instruct', + inputUsdPer1M: 0.59, + outputUsdPer1M: 0.79, + }, + { modelKey: 'huggingface:MiniMaxAI/MiniMax-M2', inputUsdPer1M: 0.3, outputUsdPer1M: 1.2 }, + { modelKey: 'huggingface:MiniMaxAI/MiniMax-M2.1', inputUsdPer1M: 0.3, outputUsdPer1M: 1.2 }, + { + modelKey: 'huggingface:MiniMaxAI/MiniMax-M2.5', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'huggingface:MiniMaxAI/MiniMax-M2.7', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { modelKey: 'huggingface:MiniMaxAI/MiniMax-M3', inputUsdPer1M: 0.3, outputUsdPer1M: 1.2 }, + { modelKey: 'huggingface:moonshotai/Kimi-K2-Instruct', inputUsdPer1M: 1, outputUsdPer1M: 3 }, + { modelKey: 'huggingface:moonshotai/Kimi-K2-Instruct-0905', inputUsdPer1M: 1, outputUsdPer1M: 3 }, + { + modelKey: 'huggingface:moonshotai/Kimi-K2-Thinking', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'huggingface:moonshotai/Kimi-K2.5', + inputUsdPer1M: 0.6, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'huggingface:moonshotai/Kimi-K2.6', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.16, + }, + { modelKey: 'huggingface:moonshotai/Kimi-K2.7-Code', inputUsdPer1M: 0.95, outputUsdPer1M: 4 }, + { modelKey: 'huggingface:moonshotai/Kimi-K3', inputUsdPer1M: 3, outputUsdPer1M: 15 }, + { modelKey: 'huggingface:openai/gpt-oss-120b', inputUsdPer1M: 0.25, outputUsdPer1M: 0.69 }, + { modelKey: 'huggingface:openai/gpt-oss-20b', inputUsdPer1M: 0.1, outputUsdPer1M: 0.5 }, + { modelKey: 'huggingface:Qwen/Qwen3-235B-A22B', inputUsdPer1M: 0.2, outputUsdPer1M: 0.8 }, + { + modelKey: 'huggingface:Qwen/Qwen3-235B-A22B-Instruct-2507', + inputUsdPer1M: 0.855, + outputUsdPer1M: 2.565, + }, + { + modelKey: 'huggingface:Qwen/Qwen3-235B-A22B-Thinking-2507', + inputUsdPer1M: 0.3, + outputUsdPer1M: 3, + }, + { modelKey: 'huggingface:Qwen/Qwen3-32B', inputUsdPer1M: 0.29, outputUsdPer1M: 0.59 }, + { + modelKey: 'huggingface:Qwen/Qwen3-Coder-30B-A3B-Instruct', + inputUsdPer1M: 0.07, + outputUsdPer1M: 0.26, + }, + { + modelKey: 'huggingface:Qwen/Qwen3-Coder-480B-A35B-Instruct', + inputUsdPer1M: 2, + outputUsdPer1M: 2, + }, + { modelKey: 'huggingface:Qwen/Qwen3-Coder-Next', inputUsdPer1M: 0.2, outputUsdPer1M: 1.5 }, + { modelKey: 'huggingface:Qwen/Qwen3-Embedding-4B', inputUsdPer1M: 0.01, outputUsdPer1M: 0 }, + { modelKey: 'huggingface:Qwen/Qwen3-Embedding-8B', inputUsdPer1M: 0.01, outputUsdPer1M: 0 }, + { + modelKey: 'huggingface:Qwen/Qwen3-Next-80B-A3B-Instruct', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1, + }, + { + modelKey: 'huggingface:Qwen/Qwen3-Next-80B-A3B-Thinking', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2, + }, + { modelKey: 'huggingface:Qwen/Qwen3.5-122B-A10B', inputUsdPer1M: 0.4, outputUsdPer1M: 3.2 }, + { modelKey: 'huggingface:Qwen/Qwen3.5-27B', inputUsdPer1M: 0.3, outputUsdPer1M: 2.4 }, + { modelKey: 'huggingface:Qwen/Qwen3.5-35B-A3B', inputUsdPer1M: 0.25, outputUsdPer1M: 2 }, + { modelKey: 'huggingface:Qwen/Qwen3.5-397B-A17B', inputUsdPer1M: 0.6, outputUsdPer1M: 3.6 }, + { modelKey: 'huggingface:Qwen/Qwen3.5-9B', inputUsdPer1M: 0.17, outputUsdPer1M: 0.25 }, + { modelKey: 'huggingface:Qwen/Qwen3.6-27B', inputUsdPer1M: 0.47, outputUsdPer1M: 3.19 }, + { modelKey: 'huggingface:Qwen/Qwen3.6-35B-A3B', inputUsdPer1M: 0.15, outputUsdPer1M: 0.95 }, + { modelKey: 'huggingface:stepfun-ai/Step-3.5-Flash', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { modelKey: 'huggingface:stepfun-ai/Step-3.7-Flash', inputUsdPer1M: 0.2, outputUsdPer1M: 1.15 }, + { modelKey: 'huggingface:tencent/Hy3', inputUsdPer1M: 0.14, outputUsdPer1M: 0.58 }, + { modelKey: 'huggingface:thinkingmachines/Inkling', inputUsdPer1M: 1, outputUsdPer1M: 4.05 }, + { + modelKey: 'huggingface:thinkingmachines/Inkling-Small', + inputUsdPer1M: 0.5, + outputUsdPer1M: 1.2, + }, + { modelKey: 'huggingface:XiaomiMiMo/MiMo-V2-Flash', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { modelKey: 'huggingface:XiaomiMiMo/MiMo-V2.5', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, + { modelKey: 'huggingface:XiaomiMiMo/MiMo-V2.5-Pro', inputUsdPer1M: 1, outputUsdPer1M: 3 }, + { modelKey: 'huggingface:zai-org/GLM-4.5', inputUsdPer1M: 0.6, outputUsdPer1M: 2.2 }, + { modelKey: 'huggingface:zai-org/GLM-4.5-Air', inputUsdPer1M: 0.13, outputUsdPer1M: 0.85 }, + { modelKey: 'huggingface:zai-org/GLM-4.5V', inputUsdPer1M: 0.6, outputUsdPer1M: 1.8 }, + { modelKey: 'huggingface:zai-org/GLM-4.6', inputUsdPer1M: 0.55, outputUsdPer1M: 2.2 }, + { + modelKey: 'huggingface:zai-org/GLM-4.7', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.2, + cacheReadUsdPer1M: 0.11, + }, + { modelKey: 'huggingface:zai-org/GLM-4.7-Flash', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'huggingface:zai-org/GLM-5', + inputUsdPer1M: 1, + outputUsdPer1M: 3.2, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'huggingface:zai-org/GLM-5.1', + inputUsdPer1M: 1, + outputUsdPer1M: 3.2, + cacheReadUsdPer1M: 0.2, + }, + { modelKey: 'huggingface:zai-org/GLM-5.2', inputUsdPer1M: 1.4, outputUsdPer1M: 4.4 }, + { + modelKey: 'kimi-coding-plan:k3', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'kimi-coding-plan:k3-256k', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'kimi-coding-plan:kimi-for-coding', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'kimi-coding-plan:kimi-for-coding-highspeed', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'MiniMax:MiniMax-M2', inputUsdPer1M: 0.3, outputUsdPer1M: 1.2 }, + { + modelKey: 'MiniMax:MiniMax-M2.1', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'MiniMax:MiniMax-M2.5', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'MiniMax:MiniMax-M2.5-highspeed', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.4, + cacheReadUsdPer1M: 0.06, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'MiniMax:MiniMax-M2.7', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'MiniMax:MiniMax-M2.7-highspeed', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.4, + cacheReadUsdPer1M: 0.06, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'MiniMax:MiniMax-M3', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { modelKey: 'minimax-coding-plan:MiniMax-M2', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'minimax-coding-plan:MiniMax-M2.1', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'minimax-coding-plan:MiniMax-M2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'minimax-coding-plan:MiniMax-M2.5-highspeed', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'minimax-coding-plan:MiniMax-M2.7', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'minimax-coding-plan:MiniMax-M2.7-highspeed', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'minimax-coding-plan:MiniMax-M3', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'mistral:codestral-latest', inputUsdPer1M: 0.3, outputUsdPer1M: 0.9 }, + { modelKey: 'mistral:devstral-2512', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, + { modelKey: 'mistral:devstral-latest', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, + { modelKey: 'mistral:devstral-medium-2507', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, + { modelKey: 'mistral:devstral-medium-latest', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, + { modelKey: 'mistral:devstral-small-2505', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { modelKey: 'mistral:devstral-small-2507', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { modelKey: 'mistral:labs-devstral-small-2512', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'mistral:magistral-medium-latest', inputUsdPer1M: 2, outputUsdPer1M: 5 }, + { modelKey: 'mistral:magistral-small', inputUsdPer1M: 0.5, outputUsdPer1M: 1.5 }, + { modelKey: 'mistral:ministral-3b-latest', inputUsdPer1M: 0.04, outputUsdPer1M: 0.04 }, + { modelKey: 'mistral:ministral-8b-latest', inputUsdPer1M: 0.1, outputUsdPer1M: 0.1 }, + { modelKey: 'mistral:mistral-embed', inputUsdPer1M: 0.1, outputUsdPer1M: 0 }, + { modelKey: 'mistral:mistral-large-2411', inputUsdPer1M: 2, outputUsdPer1M: 6 }, + { modelKey: 'mistral:mistral-large-2512', inputUsdPer1M: 0.5, outputUsdPer1M: 1.5 }, + { modelKey: 'mistral:mistral-large-latest', inputUsdPer1M: 0.5, outputUsdPer1M: 1.5 }, + { modelKey: 'mistral:mistral-medium-2505', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, + { modelKey: 'mistral:mistral-medium-2508', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, + { modelKey: 'mistral:mistral-medium-2604', inputUsdPer1M: 1.5, outputUsdPer1M: 7.5 }, + { modelKey: 'mistral:mistral-medium-latest', inputUsdPer1M: 1.5, outputUsdPer1M: 7.5 }, + { modelKey: 'mistral:mistral-nemo', inputUsdPer1M: 0.15, outputUsdPer1M: 0.15 }, + { modelKey: 'mistral:mistral-small-2506', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { modelKey: 'mistral:mistral-small-2603', inputUsdPer1M: 0.15, outputUsdPer1M: 0.6 }, + { modelKey: 'mistral:mistral-small-latest', inputUsdPer1M: 0.15, outputUsdPer1M: 0.6 }, + { modelKey: 'mistral:open-mistral-7b', inputUsdPer1M: 0.25, outputUsdPer1M: 0.25 }, + { modelKey: 'mistral:open-mistral-nemo', inputUsdPer1M: 0.15, outputUsdPer1M: 0.15 }, + { modelKey: 'mistral:open-mixtral-8x22b', inputUsdPer1M: 2, outputUsdPer1M: 6 }, + { modelKey: 'mistral:open-mixtral-8x7b', inputUsdPer1M: 0.7, outputUsdPer1M: 0.7 }, + { modelKey: 'mistral:pixtral-12b', inputUsdPer1M: 0.15, outputUsdPer1M: 0.15 }, + { modelKey: 'mistral:pixtral-large-latest', inputUsdPer1M: 2, outputUsdPer1M: 6 }, + { modelKey: 'mistral:voxtral-small-latest', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { + modelKey: 'moonshot:kimi-k2-0711-preview', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'moonshot:kimi-k2-0905-preview', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'moonshot:kimi-k2-thinking', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'moonshot:kimi-k2-thinking-turbo', + inputUsdPer1M: 1.15, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'moonshot:kimi-k2-turbo-preview', + inputUsdPer1M: 2.4, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.6, + }, + { modelKey: 'moonshot:kimi-k2.5', inputUsdPer1M: 0.6, outputUsdPer1M: 3, cacheReadUsdPer1M: 0.1 }, + { + modelKey: 'moonshot:kimi-k2.6', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.16, + }, + { + modelKey: 'moonshot:kimi-k2.7-code', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.19, + }, + { + modelKey: 'moonshot:kimi-k2.7-code-highspeed', + inputUsdPer1M: 1.9, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.38, + }, + { modelKey: 'moonshot:kimi-k3', inputUsdPer1M: 3, outputUsdPer1M: 15, cacheReadUsdPer1M: 0.3 }, + { + modelKey: 'nvidia:abacusai/dracarys-llama-3.1-70b-instruct', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { modelKey: 'nvidia:baai/bge-m3', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:black-forest-labs/flux_1-kontext-dev', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:black-forest-labs/flux_1-schnell', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:black-forest-labs/flux_2-klein-4b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:black-forest-labs/flux.1-dev', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:bytedance/seed-oss-36b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'nvidia:deepseek-ai/deepseek-v4-flash', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'nvidia:deepseek-ai/deepseek-v4-pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.003625, + }, + { modelKey: 'nvidia:google/gemma-2-2b-it', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:google/gemma-3-12b-it', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:google/gemma-3-4b-it', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:google/gemma-3n-e2b-it', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:google/gemma-3n-e4b-it', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:google/gemma-4-31b-it', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:google/google-paligemma', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:meta/esm2-650m', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:meta/esmfold', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:meta/llama-3.1-70b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:meta/llama-3.1-8b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:meta/llama-3.2-11b-vision-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:meta/llama-3.2-1b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:meta/llama-3.2-3b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:meta/llama-3.2-90b-vision-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:meta/llama-3.3-70b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'nvidia:meta/llama-4-maverick-17b-128e-instruct', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { modelKey: 'nvidia:meta/llama-guard-4-12b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:microsoft/phi-4-mini-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:microsoft/phi-4-multimodal-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:minimaxai/minimax-m2.7', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:minimaxai/minimax-m3', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:mistralai/magistral-small-2506', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:mistralai/ministral-14b-instruct-2512', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:mistralai/mistral-7b-instruct-v0.3', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'nvidia:mistralai/mistral-large-3-675b-instruct-2512', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { modelKey: 'nvidia:mistralai/mistral-medium-3-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:mistralai/mistral-medium-3.5-128b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:mistralai/mistral-nemotron', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:mistralai/mistral-small-4-119b-2603', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:mistralai/mixtral-8x22b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:mistralai/mixtral-8x7b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:moonshotai/kimi-k2-instruct-0905', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:moonshotai/kimi-k2.6', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/active-speaker-detection', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/bevformer', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/cosmos-predict1-5b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/cosmos-reason2-8b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/cosmos-transfer1-7b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/cosmos-transfer2_5-2b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/gliner-pii', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'nvidia:nvidia/llama-3_2-nemoretriever-300m-embed-v1', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'nvidia:nvidia/llama-3.1-nemotron-70b-instruct', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { modelKey: 'nvidia:nvidia/llama-3.1-nemotron-nano-8b-v1', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'nvidia:nvidia/llama-3.1-nemotron-nano-vl-8b-v1', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'nvidia:nvidia/llama-3.1-nemotron-safety-guard-8b-v3', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'nvidia:nvidia/llama-3.1-nemotron-ultra-253b-v1', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'nvidia:nvidia/llama-3.3-nemotron-super-49b-v1', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'nvidia:nvidia/llama-3.3-nemotron-super-49b-v1.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { modelKey: 'nvidia:nvidia/llama-nemotron-embed-vl-1b-v2', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/llama-nemotron-rerank-vl-1b-v2', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/magpie-tts-zeroshot', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/nemotron-3-content-safety', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/nemotron-3-nano-30b-a3b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'nvidia:nvidia/nemotron-3-nano-omni-30b-a3b-reasoning', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { modelKey: 'nvidia:nvidia/nemotron-3-super-120b-a12b', inputUsdPer1M: 0.2, outputUsdPer1M: 0.8 }, + { + modelKey: 'nvidia:nvidia/nemotron-3-ultra-550b-a55b', + inputUsdPer1M: 0.5, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'nvidia:nvidia/nemotron-content-safety-reasoning-4b', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { modelKey: 'nvidia:nvidia/nemotron-mini-4b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/nemotron-nano-12b-v2-vl', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/nemotron-voicechat', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/nv-embed-v1', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/nv-embedcode-7b-v1', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/nvidia-nemotron-nano-9b-v2', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/rerank-qa-mistral-4b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'nvidia:nvidia/riva-translate-4b-instruct-v1.1', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { modelKey: 'nvidia:nvidia/sparsedrive', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/streampetr', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/studiovoice', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/synthetic-video-detector', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/usdcode', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:nvidia/usdvalidate', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:openai/gpt-oss-120b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:openai/gpt-oss-20b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:openai/whisper-large-v3', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:poolside/laguna-xs-2.1', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:qwen/qwen-image', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:qwen/qwen-image-edit', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:qwen/qwen2.5-coder-32b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:qwen/qwen3-coder-480b-a35b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:qwen/qwen3-next-80b-a3b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:qwen/qwen3.5-122b-a10b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:qwen/qwen3.5-397b-a17b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:sarvamai/sarvam-m', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:stepfun-ai/step-3.5-flash', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:stepfun-ai/step-3.7-flash', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:thinkingmachines/inkling', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:upstage/solar-10.7b-instruct', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'nvidia:z-ai/glm-5.2', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'openai:gpt-3.5-turbo', + inputUsdPer1M: 0.5, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'openai:gpt-4', inputUsdPer1M: 30, outputUsdPer1M: 60 }, + { modelKey: 'openai:gpt-4-turbo', inputUsdPer1M: 10, outputUsdPer1M: 30 }, + { modelKey: 'openai:gpt-4.1', inputUsdPer1M: 2, outputUsdPer1M: 8, cacheReadUsdPer1M: 0.5 }, + { + modelKey: 'openai:gpt-4.1-mini', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.6, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'openai:gpt-4.1-nano', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.025, + }, + { modelKey: 'openai:gpt-4o', inputUsdPer1M: 2.5, outputUsdPer1M: 10, cacheReadUsdPer1M: 1.25 }, + { modelKey: 'openai:gpt-4o-2024-05-13', inputUsdPer1M: 5, outputUsdPer1M: 15 }, + { + modelKey: 'openai:gpt-4o-2024-08-06', + inputUsdPer1M: 2.5, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 1.25, + }, + { + modelKey: 'openai:gpt-4o-2024-11-20', + inputUsdPer1M: 2.5, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 1.25, + }, + { + modelKey: 'openai:gpt-4o-mini', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.075, + }, + { modelKey: 'openai:gpt-5', inputUsdPer1M: 1.25, outputUsdPer1M: 10, cacheReadUsdPer1M: 0.125 }, + { + modelKey: 'openai:gpt-5-mini', + inputUsdPer1M: 0.25, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'openai:gpt-5-nano', + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.005, + }, + { modelKey: 'openai:gpt-5-pro', inputUsdPer1M: 15, outputUsdPer1M: 120 }, + { modelKey: 'openai:gpt-5.1', inputUsdPer1M: 1.25, outputUsdPer1M: 10, cacheReadUsdPer1M: 0.125 }, + { modelKey: 'openai:gpt-5.2', inputUsdPer1M: 1.75, outputUsdPer1M: 14, cacheReadUsdPer1M: 0.175 }, + { + modelKey: 'openai:gpt-5.2-chat-latest', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { modelKey: 'openai:gpt-5.2-pro', inputUsdPer1M: 21, outputUsdPer1M: 168 }, + { + modelKey: 'openai:gpt-5.3-chat-latest', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'openai:gpt-5.3-codex', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'openai:gpt-5.3-codex-spark', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { modelKey: 'openai:gpt-5.4', inputUsdPer1M: 2.5, outputUsdPer1M: 15, cacheReadUsdPer1M: 0.25 }, + { + modelKey: 'openai:gpt-5.4-mini', + inputUsdPer1M: 0.75, + outputUsdPer1M: 4.5, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'openai:gpt-5.4-nano', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.25, + cacheReadUsdPer1M: 0.02, + }, + { modelKey: 'openai:gpt-5.4-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, + { modelKey: 'openai:gpt-5.5', inputUsdPer1M: 5, outputUsdPer1M: 30, cacheReadUsdPer1M: 0.5 }, + { modelKey: 'openai:gpt-5.5-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, + { + modelKey: 'openai:gpt-5.6', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openai:gpt-5.6-luna', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.02, + cacheWriteUsdPer1M: 0.25, + }, + { + modelKey: 'openai:gpt-5.6-sol', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openai:gpt-5.6-terra', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 2.5, + }, + { modelKey: 'openai:gpt-image-2', inputUsdPer1M: 5, outputUsdPer1M: 30, cacheReadUsdPer1M: 1.25 }, + { + modelKey: 'openai:gpt-realtime-2.1', + inputUsdPer1M: 4, + outputUsdPer1M: 24, + cacheReadUsdPer1M: 0.4, + }, + { modelKey: 'openai:o1', inputUsdPer1M: 15, outputUsdPer1M: 60, cacheReadUsdPer1M: 7.5 }, + { modelKey: 'openai:o1-pro', inputUsdPer1M: 150, outputUsdPer1M: 600 }, + { modelKey: 'openai:o3', inputUsdPer1M: 2, outputUsdPer1M: 8, cacheReadUsdPer1M: 0.5 }, + { modelKey: 'openai:o3-mini', inputUsdPer1M: 1.1, outputUsdPer1M: 4.4, cacheReadUsdPer1M: 0.55 }, + { modelKey: 'openai:o3-pro', inputUsdPer1M: 20, outputUsdPer1M: 80 }, + { modelKey: 'openai:o4-mini', inputUsdPer1M: 1.1, outputUsdPer1M: 4.4, cacheReadUsdPer1M: 0.275 }, + { modelKey: 'openai:text-embedding-3-large', inputUsdPer1M: 0.13, outputUsdPer1M: 0 }, + { modelKey: 'openai:text-embedding-3-small', inputUsdPer1M: 0.02, outputUsdPer1M: 0 }, + { modelKey: 'openai:text-embedding-ada-002', inputUsdPer1M: 0.1, outputUsdPer1M: 0 }, + { + modelKey: 'opencode:big-pickle', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'opencode:claude-3-5-haiku', + inputUsdPer1M: 0.8, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.08, + cacheWriteUsdPer1M: 1, + }, + { + modelKey: 'opencode:claude-fable-5', + inputUsdPer1M: 10, + outputUsdPer1M: 50, + cacheReadUsdPer1M: 1, + cacheWriteUsdPer1M: 12.5, + }, + { + modelKey: 'opencode:claude-haiku-4-5', + inputUsdPer1M: 1, + outputUsdPer1M: 5, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { + modelKey: 'opencode:claude-opus-4-1', + inputUsdPer1M: 15, + outputUsdPer1M: 75, + cacheReadUsdPer1M: 1.5, + cacheWriteUsdPer1M: 18.75, + }, + { + modelKey: 'opencode:claude-opus-4-5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'opencode:claude-opus-4-6', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'opencode:claude-opus-4-7', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'opencode:claude-opus-4-8', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'opencode:claude-opus-5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'opencode:claude-sonnet-4', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'opencode:claude-sonnet-4-5', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'opencode:claude-sonnet-4-6', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'opencode:claude-sonnet-5', + inputUsdPer1M: 2, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 2.5, + }, + { + modelKey: 'opencode:deepseek-v4-flash', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.028, + }, + { + modelKey: 'opencode:deepseek-v4-flash-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:deepseek-v4-pro', + inputUsdPer1M: 1.74, + outputUsdPer1M: 3.84, + cacheReadUsdPer1M: 0.145, + }, + { + modelKey: 'opencode:gemini-3-flash', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'opencode:gemini-3-pro', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'opencode:gemini-3.1-pro', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'opencode:gemini-3.5-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 9, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'opencode:gemini-3.5-flash-lite', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'opencode:gemini-3.6-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.15, + }, + { modelKey: 'opencode:glm-4.6', inputUsdPer1M: 0.6, outputUsdPer1M: 2.2, cacheReadUsdPer1M: 0.1 }, + { modelKey: 'opencode:glm-4.7', inputUsdPer1M: 0.6, outputUsdPer1M: 2.2, cacheReadUsdPer1M: 0.1 }, + { modelKey: 'opencode:glm-4.7-free', inputUsdPer1M: 0, outputUsdPer1M: 0, cacheReadUsdPer1M: 0 }, + { modelKey: 'opencode:glm-5', inputUsdPer1M: 1, outputUsdPer1M: 3.2, cacheReadUsdPer1M: 0.2 }, + { modelKey: 'opencode:glm-5-free', inputUsdPer1M: 0, outputUsdPer1M: 0, cacheReadUsdPer1M: 0 }, + { + modelKey: 'opencode:glm-5.1', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + }, + { + modelKey: 'opencode:glm-5.2', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + }, + { + modelKey: 'opencode:gpt-5', + inputUsdPer1M: 1.07, + outputUsdPer1M: 8.5, + cacheReadUsdPer1M: 0.107, + }, + { + modelKey: 'opencode:gpt-5-codex', + inputUsdPer1M: 1.07, + outputUsdPer1M: 8.5, + cacheReadUsdPer1M: 0.107, + }, + { + modelKey: 'opencode:gpt-5-nano', + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.005, + }, + { + modelKey: 'opencode:gpt-5.1', + inputUsdPer1M: 1.07, + outputUsdPer1M: 8.5, + cacheReadUsdPer1M: 0.107, + }, + { + modelKey: 'opencode:gpt-5.1-codex', + inputUsdPer1M: 1.07, + outputUsdPer1M: 8.5, + cacheReadUsdPer1M: 0.107, + }, + { + modelKey: 'opencode:gpt-5.1-codex-max', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + }, + { + modelKey: 'opencode:gpt-5.1-codex-mini', + inputUsdPer1M: 0.25, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'opencode:gpt-5.2', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'opencode:gpt-5.2-codex', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'opencode:gpt-5.3-codex', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'opencode:gpt-5.3-codex-spark', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { modelKey: 'opencode:gpt-5.4', inputUsdPer1M: 2.5, outputUsdPer1M: 15, cacheReadUsdPer1M: 0.25 }, + { + modelKey: 'opencode:gpt-5.4-mini', + inputUsdPer1M: 0.75, + outputUsdPer1M: 4.5, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'opencode:gpt-5.4-nano', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.25, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'opencode:gpt-5.4-pro', + inputUsdPer1M: 30, + outputUsdPer1M: 180, + cacheReadUsdPer1M: 30, + }, + { modelKey: 'opencode:gpt-5.5', inputUsdPer1M: 5, outputUsdPer1M: 30, cacheReadUsdPer1M: 0.5 }, + { + modelKey: 'opencode:gpt-5.5-pro', + inputUsdPer1M: 30, + outputUsdPer1M: 180, + cacheReadUsdPer1M: 30, + }, + { + modelKey: 'opencode:gpt-5.6-luna', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.02, + cacheWriteUsdPer1M: 0.25, + }, + { + modelKey: 'opencode:gpt-5.6-sol', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'opencode:gpt-5.6-terra', + inputUsdPer1M: 2.5, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.25, + cacheWriteUsdPer1M: 3.125, + }, + { modelKey: 'opencode:grok-4.5', inputUsdPer1M: 2, outputUsdPer1M: 6, cacheReadUsdPer1M: 0.5 }, + { + modelKey: 'opencode:grok-build-0.1', + inputUsdPer1M: 1, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'opencode:grok-code', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'opencode:hy3-free', inputUsdPer1M: 0, outputUsdPer1M: 0, cacheReadUsdPer1M: 0 }, + { + modelKey: 'opencode:hy3-preview-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'opencode:kimi-k2', inputUsdPer1M: 0.4, outputUsdPer1M: 2.5, cacheReadUsdPer1M: 0.4 }, + { + modelKey: 'opencode:kimi-k2-thinking', + inputUsdPer1M: 0.4, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.4, + }, + { + modelKey: 'opencode:kimi-k2.5', + inputUsdPer1M: 0.6, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.08, + }, + { + modelKey: 'opencode:kimi-k2.5-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:kimi-k2.6', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.16, + }, + { + modelKey: 'opencode:kimi-k2.7-code', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.19, + }, + { modelKey: 'opencode:kimi-k3', inputUsdPer1M: 3, outputUsdPer1M: 15, cacheReadUsdPer1M: 0.3 }, + { + modelKey: 'opencode:laguna-s-2.1-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'opencode:ling-2.6-flash-free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'opencode:ling-3.0-flash-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:longcat-2.0-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:mimo-v2-flash-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:mimo-v2-omni-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:mimo-v2-pro-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:mimo-v2.5-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:minimax-m2.1', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'opencode:minimax-m2.1-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:minimax-m2.5', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'opencode:minimax-m2.5-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:minimax-m2.7', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'opencode:minimax-m3', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'opencode:minimax-m3-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:nemotron-3-super-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'opencode:nemotron-3-ultra-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'opencode:north-mini-code-free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'opencode:qwen3-coder', inputUsdPer1M: 0.45, outputUsdPer1M: 1.8 }, + { + modelKey: 'opencode:qwen3.5-plus', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.02, + cacheWriteUsdPer1M: 0.25, + }, + { + modelKey: 'opencode:qwen3.6-plus', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + cacheWriteUsdPer1M: 0.625, + }, + { + modelKey: 'opencode:qwen3.6-plus-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'opencode:ring-2.6-1t-free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'opencode:trinity-large-preview-free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'opencode-go:deepseek-v4-flash', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'opencode-go:deepseek-v4-pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.003625, + }, + { modelKey: 'opencode-go:glm-5', inputUsdPer1M: 1, outputUsdPer1M: 3.2, cacheReadUsdPer1M: 0.2 }, + { + modelKey: 'opencode-go:glm-5.1', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + }, + { + modelKey: 'opencode-go:glm-5.2', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + }, + { + modelKey: 'opencode-go:gpt-5.6-luna', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.01, + cacheWriteUsdPer1M: 0.125, + }, + { modelKey: 'opencode-go:grok-4.5', inputUsdPer1M: 2, outputUsdPer1M: 6, cacheReadUsdPer1M: 0.5 }, + { + modelKey: 'opencode-go:hy3', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.58, + cacheReadUsdPer1M: 0.035, + }, + { + modelKey: 'opencode-go:kimi-k2.5', + inputUsdPer1M: 0.6, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'opencode-go:kimi-k2.6', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.16, + }, + { + modelKey: 'opencode-go:kimi-k2.7-code', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.19, + }, + { modelKey: 'opencode-go:kimi-k3', inputUsdPer1M: 3, outputUsdPer1M: 15, cacheReadUsdPer1M: 0.3 }, + { + modelKey: 'opencode-go:mimo-v2-omni', + inputUsdPer1M: 0.4, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.08, + }, + { + modelKey: 'opencode-go:mimo-v2-pro', + inputUsdPer1M: 1, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'opencode-go:mimo-v2.5', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'opencode-go:mimo-v2.5-pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.003625, + }, + { + modelKey: 'opencode-go:minimax-m2.5', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'opencode-go:minimax-m2.7', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'opencode-go:minimax-m3', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'opencode-go:qwen3.5-plus', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.02, + cacheWriteUsdPer1M: 0.25, + }, + { + modelKey: 'opencode-go:qwen3.6-plus', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + cacheWriteUsdPer1M: 0.625, + }, + { + modelKey: 'opencode-go:qwen3.7-max', + inputUsdPer1M: 2.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 3.125, + }, + { + modelKey: 'opencode-go:qwen3.7-plus', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.6, + cacheReadUsdPer1M: 0.04, + cacheWriteUsdPer1M: 0.5, + }, + { + modelKey: 'opencode-go:qwen3.8-max', + inputUsdPer1M: 2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.25, + cacheWriteUsdPer1M: 2.5, + }, + { + modelKey: 'openrouter:~anthropic/claude-fable-latest', + inputUsdPer1M: 10, + outputUsdPer1M: 50, + cacheReadUsdPer1M: 1, + cacheWriteUsdPer1M: 12.5, + }, + { + modelKey: 'openrouter:~anthropic/claude-haiku-latest', + inputUsdPer1M: 1, + outputUsdPer1M: 5, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { + modelKey: 'openrouter:~anthropic/claude-opus-latest', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openrouter:~anthropic/claude-sonnet-latest', + inputUsdPer1M: 2, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 2.5, + }, + { + modelKey: 'openrouter:~deepseek/deepseek-v4-flash-latest', + inputUsdPer1M: 0.09, + outputUsdPer1M: 0.18, + cacheReadUsdPer1M: 0.018, + }, + { + modelKey: 'openrouter:~google/gemini-flash-latest', + inputUsdPer1M: 1.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.15, + cacheWriteUsdPer1M: 0.083333, + }, + { + modelKey: 'openrouter:~google/gemini-pro-latest', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'openrouter:~moonshotai/kimi-latest', + inputUsdPer1M: 2.9, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.29, + }, + { + modelKey: 'openrouter:~openai/gpt-latest', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openrouter:~openai/gpt-mini-latest', + inputUsdPer1M: 0.75, + outputUsdPer1M: 4.5, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'openrouter:~x-ai/grok-latest', + inputUsdPer1M: 2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.3, + }, + { modelKey: 'openrouter:ai21/jamba-large-1.7', inputUsdPer1M: 2, outputUsdPer1M: 8 }, + { + modelKey: 'openrouter:aion-labs/aion-2.0', + inputUsdPer1M: 0.8, + outputUsdPer1M: 1.6, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'openrouter:aion-labs/aion-3.0', + inputUsdPer1M: 3, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.75, + }, + { + modelKey: 'openrouter:aion-labs/aion-3.0-mini', + inputUsdPer1M: 0.7, + outputUsdPer1M: 1.4, + cacheReadUsdPer1M: 0.18, + }, + { + modelKey: 'openrouter:aion-labs/aion-rp-llama-3.1-8b', + inputUsdPer1M: 0.8, + outputUsdPer1M: 1.6, + }, + { modelKey: 'openrouter:allenai/olmo-3-32b-think', inputUsdPer1M: 0.15, outputUsdPer1M: 0.5 }, + { modelKey: 'openrouter:amazon/nova-2-lite-v1', inputUsdPer1M: 0.3, outputUsdPer1M: 2.5 }, + { modelKey: 'openrouter:amazon/nova-lite-v1', inputUsdPer1M: 0.06, outputUsdPer1M: 0.24 }, + { modelKey: 'openrouter:amazon/nova-micro-v1', inputUsdPer1M: 0.035, outputUsdPer1M: 0.14 }, + { + modelKey: 'openrouter:amazon/nova-premier-v1', + inputUsdPer1M: 2.5, + outputUsdPer1M: 12.5, + cacheReadUsdPer1M: 0.625, + }, + { modelKey: 'openrouter:amazon/nova-pro-v1', inputUsdPer1M: 0.8, outputUsdPer1M: 3.2 }, + { modelKey: 'openrouter:anthracite-org/magnum-v4-72b', inputUsdPer1M: 3, outputUsdPer1M: 5 }, + { + modelKey: 'openrouter:anthropic/claude-3-haiku', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.25, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.3, + }, + { + modelKey: 'openrouter:anthropic/claude-fable-5', + inputUsdPer1M: 10, + outputUsdPer1M: 50, + cacheReadUsdPer1M: 1, + cacheWriteUsdPer1M: 12.5, + }, + { + modelKey: 'openrouter:anthropic/claude-haiku-4.5', + inputUsdPer1M: 1, + outputUsdPer1M: 5, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { + modelKey: 'openrouter:anthropic/claude-opus-4', + inputUsdPer1M: 15, + outputUsdPer1M: 75, + cacheReadUsdPer1M: 1.5, + cacheWriteUsdPer1M: 18.75, + }, + { + modelKey: 'openrouter:anthropic/claude-opus-4.1', + inputUsdPer1M: 15, + outputUsdPer1M: 75, + cacheReadUsdPer1M: 1.5, + cacheWriteUsdPer1M: 18.75, + }, + { + modelKey: 'openrouter:anthropic/claude-opus-4.5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openrouter:anthropic/claude-opus-4.6', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openrouter:anthropic/claude-opus-4.7', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openrouter:anthropic/claude-opus-4.7-fast', + inputUsdPer1M: 30, + outputUsdPer1M: 150, + cacheReadUsdPer1M: 3, + cacheWriteUsdPer1M: 37.5, + }, + { + modelKey: 'openrouter:anthropic/claude-opus-4.8', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openrouter:anthropic/claude-opus-4.8-fast', + inputUsdPer1M: 10, + outputUsdPer1M: 50, + cacheReadUsdPer1M: 1, + cacheWriteUsdPer1M: 12.5, + }, + { + modelKey: 'openrouter:anthropic/claude-opus-5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openrouter:anthropic/claude-opus-5-fast', + inputUsdPer1M: 10, + outputUsdPer1M: 50, + cacheReadUsdPer1M: 1, + cacheWriteUsdPer1M: 12.5, + }, + { + modelKey: 'openrouter:anthropic/claude-sonnet-4', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'openrouter:anthropic/claude-sonnet-4.5', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'openrouter:anthropic/claude-sonnet-4.6', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'openrouter:anthropic/claude-sonnet-5', + inputUsdPer1M: 2, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 2.5, + }, + { + modelKey: 'openrouter:arcee-ai/trinity-large-thinking', + inputUsdPer1M: 0.22, + outputUsdPer1M: 0.85, + cacheReadUsdPer1M: 0.06, + }, + { modelKey: 'openrouter:arcee-ai/virtuoso-large', inputUsdPer1M: 0.75, outputUsdPer1M: 1.2 }, + { + modelKey: 'openrouter:baidu/ernie-4.5-vl-424b-a47b', + inputUsdPer1M: 0.42, + outputUsdPer1M: 1.25, + }, + { modelKey: 'openrouter:bytedance-seed/seed-1.6', inputUsdPer1M: 0.25, outputUsdPer1M: 2 }, + { + modelKey: 'openrouter:bytedance-seed/seed-1.6-flash', + inputUsdPer1M: 0.075, + outputUsdPer1M: 0.3, + }, + { modelKey: 'openrouter:bytedance-seed/seed-2.0-lite', inputUsdPer1M: 0.25, outputUsdPer1M: 2 }, + { modelKey: 'openrouter:bytedance-seed/seed-2.0-mini', inputUsdPer1M: 0.1, outputUsdPer1M: 0.4 }, + { + modelKey: 'openrouter:bytedance/ui-tars-1.5-7b', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.2, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'openrouter:cognitivecomputations/dolphin-mistral-24b-venice-edition', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.9, + }, + { modelKey: 'openrouter:cohere/command-a', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { modelKey: 'openrouter:cohere/command-r-08-2024', inputUsdPer1M: 0.15, outputUsdPer1M: 0.6 }, + { modelKey: 'openrouter:cohere/command-r-plus-08-2024', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { + modelKey: 'openrouter:cohere/command-r7b-12-2024', + inputUsdPer1M: 0.0375, + outputUsdPer1M: 0.15, + }, + { modelKey: 'openrouter:cohere/north-mini-code:free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'openrouter:deepcogito/cogito-v2.1-671b', inputUsdPer1M: 1.25, outputUsdPer1M: 1.25 }, + { modelKey: 'openrouter:deepseek/deepseek-chat', inputUsdPer1M: 0.2574, outputUsdPer1M: 1.0287 }, + { + modelKey: 'openrouter:deepseek/deepseek-chat-v3-0324', + inputUsdPer1M: 0.27, + outputUsdPer1M: 1.12, + cacheReadUsdPer1M: 0.135, + }, + { + modelKey: 'openrouter:deepseek/deepseek-chat-v3.1', + inputUsdPer1M: 0.25, + outputUsdPer1M: 0.95, + cacheReadUsdPer1M: 0.13, + }, + { modelKey: 'openrouter:deepseek/deepseek-r1', inputUsdPer1M: 0.7, outputUsdPer1M: 2.5 }, + { + modelKey: 'openrouter:deepseek/deepseek-r1-0528', + inputUsdPer1M: 0.5, + outputUsdPer1M: 2.15, + cacheReadUsdPer1M: 0.35, + }, + { + modelKey: 'openrouter:deepseek/deepseek-r1-distill-llama-70b', + inputUsdPer1M: 0.8, + outputUsdPer1M: 0.8, + }, + { + modelKey: 'openrouter:deepseek/deepseek-v3.1-terminus', + inputUsdPer1M: 0.27, + outputUsdPer1M: 1, + cacheReadUsdPer1M: 0.135, + }, + { + modelKey: 'openrouter:deepseek/deepseek-v3.2', + inputUsdPer1M: 0.269, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.1345, + }, + { modelKey: 'openrouter:deepseek/deepseek-v3.2-exp', inputUsdPer1M: 0.27, outputUsdPer1M: 0.41 }, + { + modelKey: 'openrouter:deepseek/deepseek-v4-flash', + inputUsdPer1M: 0.0882, + outputUsdPer1M: 0.1764, + cacheReadUsdPer1M: 0.01764, + }, + { + modelKey: 'openrouter:deepseek/deepseek-v4-flash-0731', + inputUsdPer1M: 0.09, + outputUsdPer1M: 0.18, + cacheReadUsdPer1M: 0.018, + }, + { + modelKey: 'openrouter:deepseek/deepseek-v4-pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.003625, + }, + { + modelKey: 'openrouter:google/gemini-2.5-flash', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.083333, + }, + { + modelKey: 'openrouter:google/gemini-2.5-flash-image', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.083333, + }, + { + modelKey: 'openrouter:google/gemini-2.5-flash-lite', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.01, + cacheWriteUsdPer1M: 0.083333, + }, + { + modelKey: 'openrouter:google/gemini-2.5-pro', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'openrouter:google/gemini-2.5-pro-preview', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'openrouter:google/gemini-2.5-pro-preview-05-06', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'openrouter:google/gemini-3-flash-preview', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + cacheWriteUsdPer1M: 0.083333, + }, + { + modelKey: 'openrouter:google/gemini-3-pro-image', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'openrouter:google/gemini-3-pro-image-preview', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 0.375, + }, + { modelKey: 'openrouter:google/gemini-3.1-flash-image', inputUsdPer1M: 0.5, outputUsdPer1M: 3 }, + { + modelKey: 'openrouter:google/gemini-3.1-flash-image-preview', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + }, + { + modelKey: 'openrouter:google/gemini-3.1-flash-lite', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.025, + cacheWriteUsdPer1M: 0.083333, + }, + { + modelKey: 'openrouter:google/gemini-3.1-flash-lite-image', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + }, + { + modelKey: 'openrouter:google/gemini-3.1-flash-lite-preview', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.025, + cacheWriteUsdPer1M: 0.083333, + }, + { + modelKey: 'openrouter:google/gemini-3.1-pro-preview', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'openrouter:google/gemini-3.1-pro-preview-customtools', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'openrouter:google/gemini-3.5-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 9, + cacheReadUsdPer1M: 0.15, + cacheWriteUsdPer1M: 0.083333, + }, + { + modelKey: 'openrouter:google/gemini-3.5-flash-lite', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.083333, + }, + { + modelKey: 'openrouter:google/gemini-3.6-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.15, + cacheWriteUsdPer1M: 0.083333, + }, + { modelKey: 'openrouter:google/gemma-2-27b-it', inputUsdPer1M: 0.65, outputUsdPer1M: 0.65 }, + { modelKey: 'openrouter:google/gemma-3-12b-it', inputUsdPer1M: 0.05, outputUsdPer1M: 0.15 }, + { + modelKey: 'openrouter:google/gemma-3-27b-it', + inputUsdPer1M: 0.08, + outputUsdPer1M: 0.45, + cacheReadUsdPer1M: 0.04, + }, + { modelKey: 'openrouter:google/gemma-3-4b-it', inputUsdPer1M: 0.05, outputUsdPer1M: 0.1 }, + { modelKey: 'openrouter:google/gemma-3n-e4b-it', inputUsdPer1M: 0.06, outputUsdPer1M: 0.12 }, + { modelKey: 'openrouter:google/gemma-4-26b-a4b-it', inputUsdPer1M: 0.07, outputUsdPer1M: 0.34 }, + { modelKey: 'openrouter:google/gemma-4-26b-a4b-it:free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'openrouter:google/gemma-4-31b-it', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.34, + cacheReadUsdPer1M: 0.1, + }, + { modelKey: 'openrouter:google/gemma-4-31b-it:free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'openrouter:google/lyria-3-clip-preview', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'openrouter:google/lyria-3-pro-preview', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'openrouter:gryphe/mythomax-l2-13b', inputUsdPer1M: 0.08, outputUsdPer1M: 0.11 }, + { + modelKey: 'openrouter:ibm-granite/granite-4.0-h-micro', + inputUsdPer1M: 0.017, + outputUsdPer1M: 0.112, + }, + { + modelKey: 'openrouter:ibm-granite/granite-4.1-8b', + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.1, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'openrouter:inception/mercury-2', + inputUsdPer1M: 0.25, + outputUsdPer1M: 0.75, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'openrouter:inclusionai/ling-2.6-1t', + inputUsdPer1M: 0.075, + outputUsdPer1M: 0.625, + cacheReadUsdPer1M: 0.015, + }, + { + modelKey: 'openrouter:inclusionai/ling-2.6-flash', + inputUsdPer1M: 0.01, + outputUsdPer1M: 0.03, + cacheReadUsdPer1M: 0.002, + }, + { + modelKey: 'openrouter:inclusionai/ling-3.0-flash', + inputUsdPer1M: 0.021, + outputUsdPer1M: 0.063, + cacheReadUsdPer1M: 0.0042, + }, + { modelKey: 'openrouter:inclusionai/ling-3.0-tiny:free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'openrouter:inclusionai/ring-2.6-1t', + inputUsdPer1M: 0.075, + outputUsdPer1M: 0.625, + cacheReadUsdPer1M: 0.015, + }, + { + modelKey: 'openrouter:kwaipilot/kat-coder-air-v2.5', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'openrouter:kwaipilot/kat-coder-pro-v2', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'openrouter:kwaipilot/kat-coder-pro-v2.5', + inputUsdPer1M: 0.74, + outputUsdPer1M: 2.96, + cacheReadUsdPer1M: 0.15, + }, + { modelKey: 'openrouter:mancer/weaver', inputUsdPer1M: 0.5, outputUsdPer1M: 0.75 }, + { + modelKey: 'openrouter:meituan/longcat-2.0', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.006, + }, + { + modelKey: 'openrouter:meta-llama/llama-3.1-70b-instruct', + inputUsdPer1M: 0.4, + outputUsdPer1M: 0.4, + }, + { + modelKey: 'openrouter:meta-llama/llama-3.1-8b-instruct', + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.08, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'openrouter:meta-llama/llama-3.2-1b-instruct', + inputUsdPer1M: 0.027, + outputUsdPer1M: 0.201, + }, + { + modelKey: 'openrouter:meta-llama/llama-3.2-3b-instruct', + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.33, + }, + { + modelKey: 'openrouter:meta-llama/llama-3.3-70b-instruct', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.32, + }, + { modelKey: 'openrouter:meta-llama/llama-4-maverick', inputUsdPer1M: 0.2, outputUsdPer1M: 0.8 }, + { modelKey: 'openrouter:meta-llama/llama-4-scout', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { + modelKey: 'openrouter:meta-llama/llama-guard-4-12b', + inputUsdPer1M: 0.18, + outputUsdPer1M: 0.18, + }, + { + modelKey: 'openrouter:meta/muse-spark-1.1', + inputUsdPer1M: 1.25, + outputUsdPer1M: 4.25, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'openrouter:meta/muse-spark-1.2', + inputUsdPer1M: 1.25, + outputUsdPer1M: 4.25, + cacheReadUsdPer1M: 0.15, + }, + { modelKey: 'openrouter:microsoft/phi-4', inputUsdPer1M: 0.07, outputUsdPer1M: 0.14 }, + { modelKey: 'openrouter:microsoft/wizardlm-2-8x22b', inputUsdPer1M: 0.62, outputUsdPer1M: 0.62 }, + { modelKey: 'openrouter:minimax/minimax-01', inputUsdPer1M: 0.2, outputUsdPer1M: 1.1 }, + { modelKey: 'openrouter:minimax/minimax-m1', inputUsdPer1M: 0.55, outputUsdPer1M: 2.2 }, + { modelKey: 'openrouter:minimax/minimax-m2', inputUsdPer1M: 0.255, outputUsdPer1M: 1.02 }, + { + modelKey: 'openrouter:minimax/minimax-m2-her', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'openrouter:minimax/minimax-m2.1', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'openrouter:minimax/minimax-m2.5', + inputUsdPer1M: 0.22, + outputUsdPer1M: 0.9, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'openrouter:minimax/minimax-m2.7', + inputUsdPer1M: 0.27, + outputUsdPer1M: 1.08, + cacheReadUsdPer1M: 0.054, + }, + { + modelKey: 'openrouter:minimax/minimax-m3', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'openrouter:mistralai/codestral-2508', + inputUsdPer1M: 0.3, + outputUsdPer1M: 0.9, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'openrouter:mistralai/ministral-14b-2512', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.2, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'openrouter:mistralai/ministral-3b-2512', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.1, + cacheReadUsdPer1M: 0.01, + }, + { + modelKey: 'openrouter:mistralai/ministral-8b-2512', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.15, + cacheReadUsdPer1M: 0.015, + }, + { + modelKey: 'openrouter:mistralai/mistral-large', + inputUsdPer1M: 2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'openrouter:mistralai/mistral-large-2407', + inputUsdPer1M: 2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'openrouter:mistralai/mistral-large-2512', + inputUsdPer1M: 0.5, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'openrouter:mistralai/mistral-medium-3', + inputUsdPer1M: 0.4, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.04, + }, + { modelKey: 'openrouter:mistralai/mistral-medium-3-5', inputUsdPer1M: 1.5, outputUsdPer1M: 7.5 }, + { + modelKey: 'openrouter:mistralai/mistral-medium-3.1', + inputUsdPer1M: 0.4, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.04, + }, + { modelKey: 'openrouter:mistralai/mistral-nemo', inputUsdPer1M: 0.019, outputUsdPer1M: 0.03 }, + { + modelKey: 'openrouter:mistralai/mistral-saba', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'openrouter:mistralai/mistral-small-24b-instruct-2501', + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.08, + }, + { + modelKey: 'openrouter:mistralai/mistral-small-2603', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.015, + }, + { + modelKey: 'openrouter:mistralai/mistral-small-3.1-24b-instruct', + inputUsdPer1M: 0.351, + outputUsdPer1M: 0.555, + }, + { + modelKey: 'openrouter:mistralai/mistral-small-3.2-24b-instruct', + inputUsdPer1M: 0.09375, + outputUsdPer1M: 0.25, + }, + { + modelKey: 'openrouter:mistralai/mixtral-8x22b-instruct', + inputUsdPer1M: 2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'openrouter:mistralai/voxtral-small-24b-2507', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.01, + }, + { modelKey: 'openrouter:moonshotai/kimi-k2', inputUsdPer1M: 0.57, outputUsdPer1M: 2.3 }, + { modelKey: 'openrouter:moonshotai/kimi-k2-0905', inputUsdPer1M: 0.6, outputUsdPer1M: 2.5 }, + { + modelKey: 'openrouter:moonshotai/kimi-k2-thinking', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'openrouter:moonshotai/kimi-k2.5', + inputUsdPer1M: 0.57, + outputUsdPer1M: 2.85, + cacheReadUsdPer1M: 0.095, + }, + { + modelKey: 'openrouter:moonshotai/kimi-k2.6', + inputUsdPer1M: 0.589, + outputUsdPer1M: 2.48, + cacheReadUsdPer1M: 0.0992, + }, + { + modelKey: 'openrouter:moonshotai/kimi-k2.7-code', + inputUsdPer1M: 0.7, + outputUsdPer1M: 3.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'openrouter:moonshotai/kimi-k3', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + }, + { modelKey: 'openrouter:morph/morph-v3-fast', inputUsdPer1M: 0.8, outputUsdPer1M: 1.2 }, + { modelKey: 'openrouter:morph/morph-v3-large', inputUsdPer1M: 0.9, outputUsdPer1M: 1.9 }, + { + modelKey: 'openrouter:nex-agi/nex-n2-mini', + inputUsdPer1M: 0.025, + outputUsdPer1M: 0.1, + cacheReadUsdPer1M: 0.0025, + }, + { + modelKey: 'openrouter:nex-agi/nex-n2-pro', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'openrouter:nousresearch/hermes-3-llama-3.1-405b', + inputUsdPer1M: 1, + outputUsdPer1M: 1, + }, + { + modelKey: 'openrouter:nousresearch/hermes-3-llama-3.1-70b', + inputUsdPer1M: 0.7, + outputUsdPer1M: 0.7, + }, + { modelKey: 'openrouter:nousresearch/hermes-4-405b', inputUsdPer1M: 1, outputUsdPer1M: 3 }, + { modelKey: 'openrouter:nousresearch/hermes-4-70b', inputUsdPer1M: 0.13, outputUsdPer1M: 0.4 }, + { + modelKey: 'openrouter:nvidia/nemotron-3-nano-30b-a3b', + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.2, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'openrouter:nvidia/nemotron-3-nano-30b-a3b:free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'openrouter:nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'openrouter:nvidia/nemotron-3-super-120b-a12b', + inputUsdPer1M: 0.3, + outputUsdPer1M: 0.9, + }, + { + modelKey: 'openrouter:nvidia/nemotron-3-super-120b-a12b:free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'openrouter:nvidia/nemotron-3-ultra-550b-a55b', + inputUsdPer1M: 0.6, + outputUsdPer1M: 3.6, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'openrouter:nvidia/nemotron-3-ultra-550b-a55b:free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'openrouter:nvidia/nemotron-3.5-content-safety:free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'openrouter:nvidia/nemotron-nano-12b-v2-vl:free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { modelKey: 'openrouter:nvidia/nemotron-nano-9b-v2:free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'openrouter:openai/gpt-3.5-turbo', inputUsdPer1M: 0.5, outputUsdPer1M: 1.5 }, + { modelKey: 'openrouter:openai/gpt-3.5-turbo-0613', inputUsdPer1M: 1, outputUsdPer1M: 2 }, + { modelKey: 'openrouter:openai/gpt-3.5-turbo-16k', inputUsdPer1M: 3, outputUsdPer1M: 4 }, + { modelKey: 'openrouter:openai/gpt-3.5-turbo-instruct', inputUsdPer1M: 1.5, outputUsdPer1M: 2 }, + { modelKey: 'openrouter:openai/gpt-4', inputUsdPer1M: 30, outputUsdPer1M: 60 }, + { modelKey: 'openrouter:openai/gpt-4-turbo', inputUsdPer1M: 10, outputUsdPer1M: 30 }, + { modelKey: 'openrouter:openai/gpt-4-turbo-preview', inputUsdPer1M: 10, outputUsdPer1M: 30 }, + { + modelKey: 'openrouter:openai/gpt-4.1', + inputUsdPer1M: 2, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.5, + }, + { + modelKey: 'openrouter:openai/gpt-4.1-mini', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.6, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'openrouter:openai/gpt-4.1-nano', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'openrouter:openai/gpt-4o', + inputUsdPer1M: 2.5, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 1.25, + }, + { modelKey: 'openrouter:openai/gpt-4o-2024-05-13', inputUsdPer1M: 5, outputUsdPer1M: 15 }, + { + modelKey: 'openrouter:openai/gpt-4o-2024-08-06', + inputUsdPer1M: 2.5, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 1.25, + }, + { + modelKey: 'openrouter:openai/gpt-4o-2024-11-20', + inputUsdPer1M: 2.5, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 1.25, + }, + { + modelKey: 'openrouter:openai/gpt-4o-mini', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'openrouter:openai/gpt-4o-mini-2024-07-18', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'openrouter:openai/gpt-5', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + }, + { + modelKey: 'openrouter:openai/gpt-5-image', + inputUsdPer1M: 10, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 1.25, + }, + { + modelKey: 'openrouter:openai/gpt-5-image-mini', + inputUsdPer1M: 2.5, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.25, + }, + { + modelKey: 'openrouter:openai/gpt-5-mini', + inputUsdPer1M: 0.25, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'openrouter:openai/gpt-5-nano', + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.005, + }, + { modelKey: 'openrouter:openai/gpt-5-pro', inputUsdPer1M: 15, outputUsdPer1M: 120 }, + { + modelKey: 'openrouter:openai/gpt-5.1', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + }, + { + modelKey: 'openrouter:openai/gpt-5.1-codex', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.13, + }, + { + modelKey: 'openrouter:openai/gpt-5.1-codex-max', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + }, + { + modelKey: 'openrouter:openai/gpt-5.1-codex-mini', + inputUsdPer1M: 0.25, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'openrouter:openai/gpt-5.2', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'openrouter:openai/gpt-5.2-chat', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'openrouter:openai/gpt-5.2-codex', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { modelKey: 'openrouter:openai/gpt-5.2-pro', inputUsdPer1M: 21, outputUsdPer1M: 168 }, + { + modelKey: 'openrouter:openai/gpt-5.3-chat', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'openrouter:openai/gpt-5.3-codex', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'openrouter:openai/gpt-5.4', + inputUsdPer1M: 2.5, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.25, + }, + { + modelKey: 'openrouter:openai/gpt-5.4-image-2', + inputUsdPer1M: 8, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 2, + }, + { + modelKey: 'openrouter:openai/gpt-5.4-mini', + inputUsdPer1M: 0.75, + outputUsdPer1M: 4.5, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'openrouter:openai/gpt-5.4-nano', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.25, + cacheReadUsdPer1M: 0.02, + }, + { modelKey: 'openrouter:openai/gpt-5.4-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, + { + modelKey: 'openrouter:openai/gpt-5.5', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + }, + { modelKey: 'openrouter:openai/gpt-5.5-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, + { + modelKey: 'openrouter:openai/gpt-5.6-luna', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.01, + cacheWriteUsdPer1M: 0.125, + }, + { + modelKey: 'openrouter:openai/gpt-5.6-luna-pro', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.01, + cacheWriteUsdPer1M: 0.125, + }, + { + modelKey: 'openrouter:openai/gpt-5.6-sol', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openrouter:openai/gpt-5.6-sol-pro', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'openrouter:openai/gpt-5.6-terra', + inputUsdPer1M: 1, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { + modelKey: 'openrouter:openai/gpt-5.6-terra-pro', + inputUsdPer1M: 1, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { modelKey: 'openrouter:openai/gpt-audio', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { modelKey: 'openrouter:openai/gpt-audio-mini', inputUsdPer1M: 0.6, outputUsdPer1M: 2.4 }, + { + modelKey: 'openrouter:openai/gpt-chat-latest', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + }, + { modelKey: 'openrouter:openai/gpt-oss-120b', inputUsdPer1M: 0.037, outputUsdPer1M: 0.17 }, + { + modelKey: 'openrouter:openai/gpt-oss-20b', + inputUsdPer1M: 0.03, + outputUsdPer1M: 0.13, + cacheReadUsdPer1M: 0.03, + }, + { modelKey: 'openrouter:openai/gpt-oss-20b:free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'openrouter:openai/gpt-oss-safeguard-20b', + inputUsdPer1M: 0.075, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.0375, + }, + { + modelKey: 'openrouter:openai/o1', + inputUsdPer1M: 15, + outputUsdPer1M: 60, + cacheReadUsdPer1M: 7.5, + }, + { modelKey: 'openrouter:openai/o1-pro', inputUsdPer1M: 150, outputUsdPer1M: 600 }, + { modelKey: 'openrouter:openai/o3', inputUsdPer1M: 2, outputUsdPer1M: 8, cacheReadUsdPer1M: 0.5 }, + { + modelKey: 'openrouter:openai/o3-mini', + inputUsdPer1M: 1.1, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.55, + }, + { + modelKey: 'openrouter:openai/o3-mini-high', + inputUsdPer1M: 1.1, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.55, + }, + { modelKey: 'openrouter:openai/o3-pro', inputUsdPer1M: 20, outputUsdPer1M: 80 }, + { + modelKey: 'openrouter:openai/o4-mini', + inputUsdPer1M: 1.1, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.275, + }, + { + modelKey: 'openrouter:openai/o4-mini-high', + inputUsdPer1M: 1.1, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.275, + }, + { modelKey: 'openrouter:openrouter/free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'openrouter:perceptron/perceptron-mk1', inputUsdPer1M: 0.15, outputUsdPer1M: 1.5 }, + { modelKey: 'openrouter:perplexity/sonar', inputUsdPer1M: 1, outputUsdPer1M: 1 }, + { modelKey: 'openrouter:perplexity/sonar-deep-research', inputUsdPer1M: 2, outputUsdPer1M: 8 }, + { modelKey: 'openrouter:perplexity/sonar-pro', inputUsdPer1M: 3, outputUsdPer1M: 15 }, + { modelKey: 'openrouter:perplexity/sonar-pro-search', inputUsdPer1M: 3, outputUsdPer1M: 15 }, + { modelKey: 'openrouter:perplexity/sonar-reasoning-pro', inputUsdPer1M: 2, outputUsdPer1M: 8 }, + { + modelKey: 'openrouter:poolside/laguna-s-2.1', + inputUsdPer1M: 0.09, + outputUsdPer1M: 0.18, + cacheReadUsdPer1M: 0.009, + }, + { modelKey: 'openrouter:poolside/laguna-s-2.1:free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'openrouter:poolside/laguna-xs-2.1', + inputUsdPer1M: 0.06, + outputUsdPer1M: 0.12, + cacheReadUsdPer1M: 0.03, + }, + { modelKey: 'openrouter:poolside/laguna-xs-2.1:free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'openrouter:qwen/qwen-2.5-72b-instruct', inputUsdPer1M: 0.36, outputUsdPer1M: 0.4 }, + { modelKey: 'openrouter:qwen/qwen-2.5-7b-instruct', inputUsdPer1M: 0.1, outputUsdPer1M: 0.2 }, + { + modelKey: 'openrouter:qwen/qwen-2.5-coder-32b-instruct', + inputUsdPer1M: 0.66, + outputUsdPer1M: 1, + }, + { + modelKey: 'openrouter:qwen/qwen-plus', + inputUsdPer1M: 0.26, + outputUsdPer1M: 0.78, + cacheReadUsdPer1M: 0.052, + cacheWriteUsdPer1M: 0.325, + }, + { modelKey: 'openrouter:qwen/qwen-plus-2025-07-28', inputUsdPer1M: 0.26, outputUsdPer1M: 0.78 }, + { + modelKey: 'openrouter:qwen/qwen-plus-2025-07-28:thinking', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.2, + cacheWriteUsdPer1M: 0.5, + }, + { + modelKey: 'openrouter:qwen/qwen2.5-vl-72b-instruct', + inputUsdPer1M: 0.25, + outputUsdPer1M: 0.75, + }, + { modelKey: 'openrouter:qwen/qwen3-14b', inputUsdPer1M: 0.2275, outputUsdPer1M: 0.91 }, + { modelKey: 'openrouter:qwen/qwen3-235b-a22b', inputUsdPer1M: 0.455, outputUsdPer1M: 1.82 }, + { modelKey: 'openrouter:qwen/qwen3-235b-a22b-2507', inputUsdPer1M: 0.09, outputUsdPer1M: 0.55 }, + { + modelKey: 'openrouter:qwen/qwen3-235b-a22b-thinking-2507', + inputUsdPer1M: 0.23, + outputUsdPer1M: 2.3, + }, + { modelKey: 'openrouter:qwen/qwen3-30b-a3b', inputUsdPer1M: 0.12, outputUsdPer1M: 0.5 }, + { + modelKey: 'openrouter:qwen/qwen3-30b-a3b-instruct-2507', + inputUsdPer1M: 0.04815, + outputUsdPer1M: 0.19305, + }, + { + modelKey: 'openrouter:qwen/qwen3-30b-a3b-thinking-2507', + inputUsdPer1M: 0.2, + outputUsdPer1M: 2.4, + }, + { modelKey: 'openrouter:qwen/qwen3-32b', inputUsdPer1M: 0.08, outputUsdPer1M: 0.28 }, + { modelKey: 'openrouter:qwen/qwen3-8b', inputUsdPer1M: 0.117, outputUsdPer1M: 0.455 }, + { + modelKey: 'openrouter:qwen/qwen3-coder', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'openrouter:qwen/qwen3-coder-30b-a3b-instruct', + inputUsdPer1M: 0.07, + outputUsdPer1M: 0.27, + }, + { + modelKey: 'openrouter:qwen/qwen3-coder-flash', + inputUsdPer1M: 0.195, + outputUsdPer1M: 0.975, + cacheReadUsdPer1M: 0.039, + cacheWriteUsdPer1M: 0.24375, + }, + { + modelKey: 'openrouter:qwen/qwen3-coder-next', + inputUsdPer1M: 0.12, + outputUsdPer1M: 0.8, + cacheReadUsdPer1M: 0.07, + }, + { + modelKey: 'openrouter:qwen/qwen3-coder-plus', + inputUsdPer1M: 0.65, + outputUsdPer1M: 3.25, + cacheReadUsdPer1M: 0.13, + cacheWriteUsdPer1M: 0.8125, + }, + { + modelKey: 'openrouter:qwen/qwen3-max', + inputUsdPer1M: 0.78, + outputUsdPer1M: 3.9, + cacheReadUsdPer1M: 0.156, + cacheWriteUsdPer1M: 0.975, + }, + { modelKey: 'openrouter:qwen/qwen3-max-thinking', inputUsdPer1M: 0.78, outputUsdPer1M: 3.9 }, + { + modelKey: 'openrouter:qwen/qwen3-next-80b-a3b-instruct', + inputUsdPer1M: 0.09, + outputUsdPer1M: 1.1, + }, + { + modelKey: 'openrouter:qwen/qwen3-next-80b-a3b-thinking', + inputUsdPer1M: 0.15, + outputUsdPer1M: 1.2, + }, + { + modelKey: 'openrouter:qwen/qwen3-vl-235b-a22b-instruct', + inputUsdPer1M: 0.21, + outputUsdPer1M: 1.9, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'openrouter:qwen/qwen3-vl-235b-a22b-thinking', + inputUsdPer1M: 0.4, + outputUsdPer1M: 4, + }, + { + modelKey: 'openrouter:qwen/qwen3-vl-30b-a3b-instruct', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + }, + { + modelKey: 'openrouter:qwen/qwen3-vl-30b-a3b-thinking', + inputUsdPer1M: 0.2, + outputUsdPer1M: 2.4, + }, + { + modelKey: 'openrouter:qwen/qwen3-vl-32b-instruct', + inputUsdPer1M: 0.104, + outputUsdPer1M: 0.416, + }, + { modelKey: 'openrouter:qwen/qwen3-vl-8b-instruct', inputUsdPer1M: 0.117, outputUsdPer1M: 0.455 }, + { modelKey: 'openrouter:qwen/qwen3-vl-8b-thinking', inputUsdPer1M: 0.18, outputUsdPer1M: 2.1 }, + { modelKey: 'openrouter:qwen/qwen3.5-122b-a10b', inputUsdPer1M: 0.29, outputUsdPer1M: 2.4 }, + { modelKey: 'openrouter:qwen/qwen3.5-27b', inputUsdPer1M: 0.195, outputUsdPer1M: 1.56 }, + { modelKey: 'openrouter:qwen/qwen3.5-35b-a3b', inputUsdPer1M: 0.14, outputUsdPer1M: 1 }, + { modelKey: 'openrouter:qwen/qwen3.5-397b-a17b', inputUsdPer1M: 0.39, outputUsdPer1M: 2.34 }, + { modelKey: 'openrouter:qwen/qwen3.5-9b', inputUsdPer1M: 0.1, outputUsdPer1M: 0.15 }, + { modelKey: 'openrouter:qwen/qwen3.5-flash-02-23', inputUsdPer1M: 0.065, outputUsdPer1M: 0.26 }, + { modelKey: 'openrouter:qwen/qwen3.5-plus-02-15', inputUsdPer1M: 0.26, outputUsdPer1M: 1.56 }, + { + modelKey: 'openrouter:qwen/qwen3.5-plus-20260420', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.8, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'openrouter:qwen/qwen3.6-27b', + inputUsdPer1M: 0.6, + outputUsdPer1M: 3.6, + cacheReadUsdPer1M: 0.12, + }, + { + modelKey: 'openrouter:qwen/qwen3.6-35b-a3b', + inputUsdPer1M: 0.14, + outputUsdPer1M: 1, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'openrouter:qwen/qwen3.6-flash', + inputUsdPer1M: 0.1875, + outputUsdPer1M: 1.125, + cacheWriteUsdPer1M: 0.234375, + }, + { + modelKey: 'openrouter:qwen/qwen3.6-max-preview', + inputUsdPer1M: 1.027, + outputUsdPer1M: 6.162, + cacheWriteUsdPer1M: 1.28375, + }, + { + modelKey: 'openrouter:qwen/qwen3.6-plus', + inputUsdPer1M: 0.325, + outputUsdPer1M: 1.95, + cacheWriteUsdPer1M: 0.40625, + }, + { + modelKey: 'openrouter:qwen/qwen3.7-flash', + inputUsdPer1M: 0.03, + outputUsdPer1M: 0.13, + cacheReadUsdPer1M: 0.006, + cacheWriteUsdPer1M: 0.038, + }, + { + modelKey: 'openrouter:qwen/qwen3.7-max', + inputUsdPer1M: 1.475, + outputUsdPer1M: 4.425, + cacheReadUsdPer1M: 0.295, + cacheWriteUsdPer1M: 1.84375, + }, + { + modelKey: 'openrouter:qwen/qwen3.7-plus', + inputUsdPer1M: 0.32, + outputUsdPer1M: 1.28, + cacheReadUsdPer1M: 0.064, + cacheWriteUsdPer1M: 0.4, + }, + { + modelKey: 'openrouter:qwen/qwen3.8-max', + inputUsdPer1M: 2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.25, + cacheWriteUsdPer1M: 2.5, + }, + { modelKey: 'openrouter:rekaai/reka-edge', inputUsdPer1M: 0.1, outputUsdPer1M: 0.1 }, + { modelKey: 'openrouter:rekaai/reka-flash-3', inputUsdPer1M: 0.1, outputUsdPer1M: 0.2 }, + { modelKey: 'openrouter:relace/relace-apply-3', inputUsdPer1M: 0.85, outputUsdPer1M: 1.25 }, + { modelKey: 'openrouter:relace/relace-search', inputUsdPer1M: 1, outputUsdPer1M: 3 }, + { + modelKey: 'openrouter:sakana/fugu-ultra', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + }, + { modelKey: 'openrouter:sao10k/l3-lunaris-8b', inputUsdPer1M: 0.04, outputUsdPer1M: 0.05 }, + { modelKey: 'openrouter:sao10k/l3.1-euryale-70b', inputUsdPer1M: 0.85, outputUsdPer1M: 0.85 }, + { modelKey: 'openrouter:sao10k/l3.3-euryale-70b', inputUsdPer1M: 0.65, outputUsdPer1M: 0.75 }, + { modelKey: 'openrouter:stepfun/step-3.5-flash', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { + modelKey: 'openrouter:stepfun/step-3.7-flash', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.15, + cacheReadUsdPer1M: 0.04, + }, + { + modelKey: 'openrouter:tencent/hunyuan-a13b-instruct', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.57, + }, + { + modelKey: 'openrouter:tencent/hy3', + inputUsdPer1M: 0.132, + outputUsdPer1M: 0.528, + cacheReadUsdPer1M: 0.033, + }, + { + modelKey: 'openrouter:tencent/hy3-preview', + inputUsdPer1M: 0.063, + outputUsdPer1M: 0.21, + cacheReadUsdPer1M: 0.021, + }, + { + modelKey: 'openrouter:thedrummer/cydonia-24b-v4.1', + inputUsdPer1M: 0.3, + outputUsdPer1M: 0.5, + cacheReadUsdPer1M: 0.15, + }, + { modelKey: 'openrouter:thedrummer/rocinante-12b', inputUsdPer1M: 0.25, outputUsdPer1M: 0.5 }, + { + modelKey: 'openrouter:thedrummer/skyfall-36b-v2', + inputUsdPer1M: 0.55, + outputUsdPer1M: 0.8, + cacheReadUsdPer1M: 0.25, + }, + { modelKey: 'openrouter:thedrummer/unslopnemo-12b', inputUsdPer1M: 0.4, outputUsdPer1M: 0.4 }, + { + modelKey: 'openrouter:thinkingmachines/inkling', + inputUsdPer1M: 1, + outputUsdPer1M: 4.05, + cacheReadUsdPer1M: 0.17, + }, + { + modelKey: 'openrouter:thinkingmachines/inkling-small', + inputUsdPer1M: 0.5, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.1, + }, + { modelKey: 'openrouter:undi95/remm-slerp-l2-13b', inputUsdPer1M: 0.45, outputUsdPer1M: 0.65 }, + { + modelKey: 'openrouter:upstage/solar-pro-3', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.015, + }, + { modelKey: 'openrouter:writer/palmyra-x5', inputUsdPer1M: 0.6, outputUsdPer1M: 6 }, + { + modelKey: 'openrouter:x-ai/grok-4.20', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'openrouter:x-ai/grok-4.20-multi-agent', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'openrouter:x-ai/grok-4.3', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'openrouter:x-ai/grok-4.5', + inputUsdPer1M: 2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.3, + }, + { + modelKey: 'openrouter:x-ai/grok-build-0.1', + inputUsdPer1M: 1, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'openrouter:xiaomi/mimo-v2.5', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'openrouter:xiaomi/mimo-v2.5-pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.0036, + }, + { + modelKey: 'openrouter:z-ai/glm-4.5', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.2, + cacheReadUsdPer1M: 0.11, + }, + { + modelKey: 'openrouter:z-ai/glm-4.5-air', + inputUsdPer1M: 0.13, + outputUsdPer1M: 0.85, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'openrouter:z-ai/glm-4.5v', + inputUsdPer1M: 0.6, + outputUsdPer1M: 1.8, + cacheReadUsdPer1M: 0.11, + }, + { + modelKey: 'openrouter:z-ai/glm-4.6', + inputUsdPer1M: 0.5, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'openrouter:z-ai/glm-4.6v', + inputUsdPer1M: 0.3, + outputUsdPer1M: 0.9, + cacheReadUsdPer1M: 0.055, + }, + { + modelKey: 'openrouter:z-ai/glm-4.7', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.75, + cacheReadUsdPer1M: 0.08, + }, + { + modelKey: 'openrouter:z-ai/glm-4.7-flash', + inputUsdPer1M: 0.06, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.01, + }, + { + modelKey: 'openrouter:z-ai/glm-5', + inputUsdPer1M: 0.95, + outputUsdPer1M: 2.55, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'openrouter:z-ai/glm-5-turbo', + inputUsdPer1M: 1.2, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.24, + }, + { + modelKey: 'openrouter:z-ai/glm-5.1', + inputUsdPer1M: 0.952, + outputUsdPer1M: 2.992, + cacheReadUsdPer1M: 0.1768, + }, + { + modelKey: 'openrouter:z-ai/glm-5.2', + inputUsdPer1M: 0.6958, + outputUsdPer1M: 2.1868, + cacheReadUsdPer1M: 0.12922, + }, + { + modelKey: 'openrouter:z-ai/glm-5v-turbo', + inputUsdPer1M: 1.2, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.24, + }, + { modelKey: 'siliconflow:baidu/ERNIE-4.5-300B-A47B', inputUsdPer1M: 0.28, outputUsdPer1M: 1.1 }, + { + modelKey: 'siliconflow:ByteDance-Seed/Seed-OSS-36B-Instruct', + inputUsdPer1M: 0.21, + outputUsdPer1M: 0.57, + }, + { modelKey: 'siliconflow:deepseek-ai/DeepSeek-R1', inputUsdPer1M: 0.5, outputUsdPer1M: 2.18 }, + { modelKey: 'siliconflow:deepseek-ai/DeepSeek-V3', inputUsdPer1M: 0.25, outputUsdPer1M: 1 }, + { modelKey: 'siliconflow:deepseek-ai/DeepSeek-V3.1', inputUsdPer1M: 0.27, outputUsdPer1M: 1 }, + { + modelKey: 'siliconflow:deepseek-ai/DeepSeek-V3.1-Terminus', + inputUsdPer1M: 0.27, + outputUsdPer1M: 1, + }, + { modelKey: 'siliconflow:deepseek-ai/DeepSeek-V3.2', inputUsdPer1M: 0.27, outputUsdPer1M: 0.42 }, + { + modelKey: 'siliconflow:deepseek-ai/DeepSeek-V3.2-Exp', + inputUsdPer1M: 0.27, + outputUsdPer1M: 0.41, + }, + { + modelKey: 'siliconflow:deepseek-ai/DeepSeek-V4-Flash', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.028, + }, + { + modelKey: 'siliconflow:deepseek-ai/DeepSeek-V4-Pro', + inputUsdPer1M: 1.74, + outputUsdPer1M: 3.48, + cacheReadUsdPer1M: 0.145, + }, + { modelKey: 'siliconflow:google/gemma-4-26B-A4B-it', inputUsdPer1M: 0.12, outputUsdPer1M: 0.4 }, + { modelKey: 'siliconflow:google/gemma-4-31B-it', inputUsdPer1M: 0.13, outputUsdPer1M: 0.4 }, + { modelKey: 'siliconflow:inclusionAI/Ling-flash-2.0', inputUsdPer1M: 0.14, outputUsdPer1M: 0.57 }, + { + modelKey: 'siliconflow:MiniMaxAI/MiniMax-M2.5', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'siliconflow:moonshotai/Kimi-K2.5', + inputUsdPer1M: 0.45, + outputUsdPer1M: 2.25, + cacheReadUsdPer1M: 0.07, + }, + { + modelKey: 'siliconflow:moonshotai/Kimi-K2.6', + inputUsdPer1M: 0.77, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.2, + }, + { modelKey: 'siliconflow:openai/gpt-oss-120b', inputUsdPer1M: 0.05, outputUsdPer1M: 0.45 }, + { modelKey: 'siliconflow:openai/gpt-oss-20b', inputUsdPer1M: 0.04, outputUsdPer1M: 0.18 }, + { modelKey: 'siliconflow:Qwen/Qwen2.5-72B-Instruct', inputUsdPer1M: 0.59, outputUsdPer1M: 0.59 }, + { modelKey: 'siliconflow:Qwen/Qwen2.5-7B-Instruct', inputUsdPer1M: 0.05, outputUsdPer1M: 0.05 }, + { modelKey: 'siliconflow:Qwen/Qwen3-14B', inputUsdPer1M: 0.07, outputUsdPer1M: 0.28 }, + { + modelKey: 'siliconflow:Qwen/Qwen3-235B-A22B-Thinking-2507', + inputUsdPer1M: 0.13, + outputUsdPer1M: 0.6, + }, + { + modelKey: 'siliconflow:Qwen/Qwen3-30B-A3B-Instruct-2507', + inputUsdPer1M: 0.09, + outputUsdPer1M: 0.3, + }, + { modelKey: 'siliconflow:Qwen/Qwen3-32B', inputUsdPer1M: 0.14, outputUsdPer1M: 0.57 }, + { modelKey: 'siliconflow:Qwen/Qwen3-8B', inputUsdPer1M: 0.06, outputUsdPer1M: 0.06 }, + { + modelKey: 'siliconflow:Qwen/Qwen3-Coder-30B-A3B-Instruct', + inputUsdPer1M: 0.07, + outputUsdPer1M: 0.28, + }, + { + modelKey: 'siliconflow:Qwen/Qwen3-Coder-480B-A35B-Instruct', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1, + }, + { + modelKey: 'siliconflow:Qwen/Qwen3-VL-235B-A22B-Instruct', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.5, + }, + { + modelKey: 'siliconflow:Qwen/Qwen3-VL-235B-A22B-Thinking', + inputUsdPer1M: 0.45, + outputUsdPer1M: 3.5, + }, + { + modelKey: 'siliconflow:Qwen/Qwen3-VL-30B-A3B-Instruct', + inputUsdPer1M: 0.29, + outputUsdPer1M: 1, + }, + { + modelKey: 'siliconflow:Qwen/Qwen3-VL-30B-A3B-Thinking', + inputUsdPer1M: 0.29, + outputUsdPer1M: 1, + }, + { modelKey: 'siliconflow:Qwen/Qwen3-VL-32B-Instruct', inputUsdPer1M: 0.2, outputUsdPer1M: 0.6 }, + { modelKey: 'siliconflow:Qwen/Qwen3-VL-32B-Thinking', inputUsdPer1M: 0.2, outputUsdPer1M: 1.5 }, + { modelKey: 'siliconflow:Qwen/Qwen3-VL-8B-Instruct', inputUsdPer1M: 0.18, outputUsdPer1M: 0.68 }, + { modelKey: 'siliconflow:Qwen/Qwen3.5-122B-A10B', inputUsdPer1M: 0.26, outputUsdPer1M: 2.08 }, + { modelKey: 'siliconflow:Qwen/Qwen3.5-27B', inputUsdPer1M: 0.25, outputUsdPer1M: 2 }, + { modelKey: 'siliconflow:Qwen/Qwen3.5-35B-A3B', inputUsdPer1M: 0.24, outputUsdPer1M: 1.8 }, + { modelKey: 'siliconflow:Qwen/Qwen3.5-397B-A17B', inputUsdPer1M: 0.39, outputUsdPer1M: 2.34 }, + { modelKey: 'siliconflow:Qwen/Qwen3.5-9B', inputUsdPer1M: 0.1, outputUsdPer1M: 0.15 }, + { modelKey: 'siliconflow:Qwen/Qwen3.6-27B', inputUsdPer1M: 0.3, outputUsdPer1M: 3.2 }, + { modelKey: 'siliconflow:Qwen/Qwen3.6-35B-A3B', inputUsdPer1M: 0.2, outputUsdPer1M: 1.6 }, + { modelKey: 'siliconflow:stepfun-ai/Step-3.5-Flash', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { + modelKey: 'siliconflow:tencent/Hunyuan-A13B-Instruct', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.57, + }, + { + modelKey: 'siliconflow:tencent/Hy3-preview', + inputUsdPer1M: 0.066, + outputUsdPer1M: 0.26, + cacheReadUsdPer1M: 0.029, + }, + { modelKey: 'siliconflow:zai-org/GLM-4.5-Air', inputUsdPer1M: 0.14, outputUsdPer1M: 0.86 }, + { + modelKey: 'siliconflow:zai-org/GLM-5', + inputUsdPer1M: 0.95, + outputUsdPer1M: 2.55, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'siliconflow:zai-org/GLM-5.1', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'siliconflow:zai-org/GLM-5.2', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'siliconflow:zai-org/GLM-5V-Turbo', + inputUsdPer1M: 1.2, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.24, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'stepfun:step-1-32k', + inputUsdPer1M: 2.05, + outputUsdPer1M: 9.59, + cacheReadUsdPer1M: 0.41, + }, + { + modelKey: 'stepfun:step-2-16k', + inputUsdPer1M: 5.21, + outputUsdPer1M: 16.44, + cacheReadUsdPer1M: 1.04, + }, + { + modelKey: 'stepfun:step-3.5-flash', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'stepfun:step-3.5-flash-2603', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'stepfun:step-3.7-flash', + inputUsdPer1M: 0.185, + outputUsdPer1M: 1.11, + cacheReadUsdPer1M: 0.037, + }, + { + modelKey: 'stepfun-ai:step-1-32k', + inputUsdPer1M: 2.05, + outputUsdPer1M: 9.59, + cacheReadUsdPer1M: 0.41, + }, + { + modelKey: 'stepfun-ai:step-2-16k', + inputUsdPer1M: 5.21, + outputUsdPer1M: 16.44, + cacheReadUsdPer1M: 1.04, + }, + { + modelKey: 'stepfun-ai:step-3.5-flash', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'stepfun-ai:step-3.5-flash-2603', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'stepfun-ai:step-3.7-flash', + inputUsdPer1M: 0.185, + outputUsdPer1M: 1.11, + cacheReadUsdPer1M: 0.037, + }, + { modelKey: 'togetherai:deepcogito/cogito-v2-1-671b', inputUsdPer1M: 1.25, outputUsdPer1M: 1.25 }, + { modelKey: 'togetherai:deepseek-ai/DeepSeek-R1', inputUsdPer1M: 3, outputUsdPer1M: 7 }, + { modelKey: 'togetherai:deepseek-ai/DeepSeek-V3', inputUsdPer1M: 1.25, outputUsdPer1M: 1.25 }, + { modelKey: 'togetherai:deepseek-ai/DeepSeek-V3-1', inputUsdPer1M: 0.6, outputUsdPer1M: 1.7 }, + { + modelKey: 'togetherai:deepseek-ai/DeepSeek-V4-Flash-0731', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'togetherai:deepseek-ai/DeepSeek-V4-Pro', + inputUsdPer1M: 1.74, + outputUsdPer1M: 3.48, + cacheReadUsdPer1M: 0.2, + }, + { modelKey: 'togetherai:essentialai/Rnj-1-Instruct', inputUsdPer1M: 0.15, outputUsdPer1M: 0.15 }, + { modelKey: 'togetherai:google/gemma-3n-E4B-it', inputUsdPer1M: 0.06, outputUsdPer1M: 0.12 }, + { modelKey: 'togetherai:google/gemma-4-31B-it', inputUsdPer1M: 0.39, outputUsdPer1M: 0.97 }, + { modelKey: 'togetherai:LiquidAI/LFM2-24B-A2B', inputUsdPer1M: 0.03, outputUsdPer1M: 0.12 }, + { + modelKey: 'togetherai:meta-llama/Llama-3.3-70B-Instruct-Turbo', + inputUsdPer1M: 1.04, + outputUsdPer1M: 1.04, + }, + { + modelKey: 'togetherai:meta-llama/Meta-Llama-3-8B-Instruct-Lite', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.14, + }, + { + modelKey: 'togetherai:MiniMaxAI/MiniMax-M2.5', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'togetherai:MiniMaxAI/MiniMax-M2.7', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'togetherai:MiniMaxAI/MiniMax-M3', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { modelKey: 'togetherai:moonshotai/Kimi-K2.5', inputUsdPer1M: 0.5, outputUsdPer1M: 2.8 }, + { + modelKey: 'togetherai:moonshotai/Kimi-K2.6', + inputUsdPer1M: 1.2, + outputUsdPer1M: 4.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'togetherai:moonshotai/Kimi-K2.7-Code', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.19, + }, + { + modelKey: 'togetherai:moonshotai/Kimi-K3', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + }, + { + modelKey: 'togetherai:nvidia/nemotron-3-ultra-550b-a55b', + inputUsdPer1M: 0.6, + outputUsdPer1M: 3.6, + cacheReadUsdPer1M: 0.2, + }, + { modelKey: 'togetherai:openai/gpt-oss-120b', inputUsdPer1M: 0.15, outputUsdPer1M: 0.6 }, + { modelKey: 'togetherai:openai/gpt-oss-20b', inputUsdPer1M: 0.05, outputUsdPer1M: 0.2 }, + { modelKey: 'togetherai:pearl-ai/gemma-4-31b-it', inputUsdPer1M: 0.28, outputUsdPer1M: 0.86 }, + { + modelKey: 'togetherai:Qwen/Qwen2.5-7B-Instruct-Turbo', + inputUsdPer1M: 0.3, + outputUsdPer1M: 0.3, + }, + { + modelKey: 'togetherai:Qwen/Qwen3-235B-A22B-Instruct-2507-tput', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.6, + }, + { + modelKey: 'togetherai:Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8', + inputUsdPer1M: 2, + outputUsdPer1M: 2, + }, + { modelKey: 'togetherai:Qwen/Qwen3-Coder-Next-FP8', inputUsdPer1M: 0.5, outputUsdPer1M: 1.2 }, + { + modelKey: 'togetherai:Qwen/Qwen3.5-397B-A17B', + inputUsdPer1M: 0.6, + outputUsdPer1M: 3.6, + cacheReadUsdPer1M: 0.35, + }, + { modelKey: 'togetherai:Qwen/Qwen3.5-9B', inputUsdPer1M: 0.17, outputUsdPer1M: 0.25 }, + { modelKey: 'togetherai:Qwen/Qwen3.6-Plus', inputUsdPer1M: 0.5, outputUsdPer1M: 3 }, + { + modelKey: 'togetherai:Qwen/Qwen3.7-Max', + inputUsdPer1M: 1.25, + outputUsdPer1M: 3.75, + cacheReadUsdPer1M: 0.125, + }, + { + modelKey: 'togetherai:thinkingmachines/Inkling', + inputUsdPer1M: 1, + outputUsdPer1M: 4.05, + cacheReadUsdPer1M: 0.17, + }, + { modelKey: 'togetherai:zai-org/GLM-5', inputUsdPer1M: 1, outputUsdPer1M: 3.2 }, + { + modelKey: 'togetherai:zai-org/GLM-5.1', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + }, + { + modelKey: 'togetherai:zai-org/GLM-5.2', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + }, + { + modelKey: 'tencent-coding-plan:glm-5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'tencent-coding-plan:hunyuan-2.0-instruct', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'tencent-coding-plan:hunyuan-2.0-thinking', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'tencent-coding-plan:hunyuan-t1', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'tencent-coding-plan:hunyuan-turbos', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'tencent-coding-plan:kimi-k2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'tencent-coding-plan:minimax-m2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'tencent-coding-plan:tc-code-latest', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'tencent-token-plan:hy3', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'tencent-tokenhub:hy3', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'tencent-tokenhub:hy3-preview', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'vercel:alibaba/qwen-3-14b', inputUsdPer1M: 0.12, outputUsdPer1M: 0.24 }, + { modelKey: 'vercel:alibaba/qwen-3-235b', inputUsdPer1M: 0.22, outputUsdPer1M: 0.88 }, + { modelKey: 'vercel:alibaba/qwen-3-30b', inputUsdPer1M: 0.12, outputUsdPer1M: 0.5 }, + { modelKey: 'vercel:alibaba/qwen-3-32b', inputUsdPer1M: 0.16, outputUsdPer1M: 0.64 }, + { + modelKey: 'vercel:alibaba/qwen-3.6-max-preview', + inputUsdPer1M: 1.3, + outputUsdPer1M: 7.8, + cacheReadUsdPer1M: 0.26, + cacheWriteUsdPer1M: 1.625, + }, + { modelKey: 'vercel:alibaba/qwen3-235b-a22b-thinking', inputUsdPer1M: 0.4, outputUsdPer1M: 4 }, + { + modelKey: 'vercel:alibaba/qwen3-coder', + inputUsdPer1M: 1.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.3, + }, + { modelKey: 'vercel:alibaba/qwen3-coder-30b-a3b', inputUsdPer1M: 0.15, outputUsdPer1M: 0.6 }, + { modelKey: 'vercel:alibaba/qwen3-coder-next', inputUsdPer1M: 0.5, outputUsdPer1M: 1.2 }, + { + modelKey: 'vercel:alibaba/qwen3-coder-plus', + inputUsdPer1M: 1, + outputUsdPer1M: 5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:alibaba/qwen3-max', + inputUsdPer1M: 1.2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.24, + }, + { + modelKey: 'vercel:alibaba/qwen3-max-preview', + inputUsdPer1M: 1.2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.24, + }, + { + modelKey: 'vercel:alibaba/qwen3-max-thinking', + inputUsdPer1M: 1.2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.24, + }, + { + modelKey: 'vercel:alibaba/qwen3-next-80b-a3b-instruct', + inputUsdPer1M: 0.15, + outputUsdPer1M: 1.2, + }, + { + modelKey: 'vercel:alibaba/qwen3-next-80b-a3b-thinking', + inputUsdPer1M: 0.15, + outputUsdPer1M: 1.2, + }, + { + modelKey: 'vercel:alibaba/qwen3-vl-235b-a22b-instruct', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.6, + }, + { modelKey: 'vercel:alibaba/qwen3-vl-instruct', inputUsdPer1M: 0.4, outputUsdPer1M: 1.6 }, + { modelKey: 'vercel:alibaba/qwen3-vl-thinking', inputUsdPer1M: 0.4, outputUsdPer1M: 4 }, + { + modelKey: 'vercel:alibaba/qwen3.5-flash', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.001, + cacheWriteUsdPer1M: 0.125, + }, + { + modelKey: 'vercel:alibaba/qwen3.5-plus', + inputUsdPer1M: 0.4, + outputUsdPer1M: 2.4, + cacheReadUsdPer1M: 0.04, + cacheWriteUsdPer1M: 0.5, + }, + { modelKey: 'vercel:alibaba/qwen3.6-27b', inputUsdPer1M: 0.6, outputUsdPer1M: 3.6 }, + { + modelKey: 'vercel:alibaba/qwen3.6-plus', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 0.625, + }, + { + modelKey: 'vercel:alibaba/qwen3.7-flash', + inputUsdPer1M: 0.03, + outputUsdPer1M: 0.13, + cacheReadUsdPer1M: 0.006, + cacheWriteUsdPer1M: 0.038, + }, + { + modelKey: 'vercel:alibaba/qwen3.7-max', + inputUsdPer1M: 2.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 3.125, + }, + { + modelKey: 'vercel:alibaba/qwen3.7-plus', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.6, + cacheReadUsdPer1M: 0.08, + cacheWriteUsdPer1M: 0.5, + }, + { + modelKey: 'vercel:alibaba/qwen3.8-max', + inputUsdPer1M: 2, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.25, + cacheWriteUsdPer1M: 2.5, + }, + { + modelKey: 'vercel:amazon/nova-2-lite', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'vercel:amazon/nova-lite', + inputUsdPer1M: 0.06, + outputUsdPer1M: 0.24, + cacheReadUsdPer1M: 0.015, + }, + { + modelKey: 'vercel:amazon/nova-micro', + inputUsdPer1M: 0.035, + outputUsdPer1M: 0.14, + cacheReadUsdPer1M: 0.00875, + }, + { + modelKey: 'vercel:amazon/nova-pro', + inputUsdPer1M: 0.8, + outputUsdPer1M: 3.2, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:anthropic/claude-3-haiku', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.25, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.3, + }, + { + modelKey: 'vercel:anthropic/claude-fable-5', + inputUsdPer1M: 10, + outputUsdPer1M: 50, + cacheReadUsdPer1M: 1, + cacheWriteUsdPer1M: 12.5, + }, + { + modelKey: 'vercel:anthropic/claude-haiku-4.5', + inputUsdPer1M: 1, + outputUsdPer1M: 5, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { + modelKey: 'vercel:anthropic/claude-opus-4', + inputUsdPer1M: 15, + outputUsdPer1M: 75, + cacheReadUsdPer1M: 1.5, + cacheWriteUsdPer1M: 18.75, + }, + { + modelKey: 'vercel:anthropic/claude-opus-4.5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'vercel:anthropic/claude-opus-4.6', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'vercel:anthropic/claude-opus-4.7', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'vercel:anthropic/claude-opus-4.8', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'vercel:anthropic/claude-opus-4.8-fast', + inputUsdPer1M: 10, + outputUsdPer1M: 50, + cacheReadUsdPer1M: 1, + cacheWriteUsdPer1M: 12.5, + }, + { + modelKey: 'vercel:anthropic/claude-opus-5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'vercel:anthropic/claude-sonnet-4', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'vercel:anthropic/claude-sonnet-4.5', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'vercel:anthropic/claude-sonnet-4.6', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'vercel:anthropic/claude-sonnet-5', + inputUsdPer1M: 2, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 2.5, + }, + { + modelKey: 'vercel:arcee-ai/trinity-large-thinking', + inputUsdPer1M: 0.25, + outputUsdPer1M: 0.8999999999999999, + }, + { modelKey: 'vercel:arcee-ai/trinity-mini', inputUsdPer1M: 0.045, outputUsdPer1M: 0.15 }, + { + modelKey: 'vercel:bytedance/seed-1.6', + inputUsdPer1M: 0.25, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'vercel:bytedance/seed-1.8', + inputUsdPer1M: 0.25, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.05, + }, + { modelKey: 'vercel:cohere/command-a', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { modelKey: 'vercel:deepseek/deepseek-r1', inputUsdPer1M: 1.35, outputUsdPer1M: 5.4 }, + { + modelKey: 'vercel:deepseek/deepseek-v3', + inputUsdPer1M: 0.27, + outputUsdPer1M: 1.12, + cacheReadUsdPer1M: 0.135, + }, + { + modelKey: 'vercel:deepseek/deepseek-v3.1', + inputUsdPer1M: 0.25, + outputUsdPer1M: 0.95, + cacheReadUsdPer1M: 0.13, + }, + { + modelKey: 'vercel:deepseek/deepseek-v3.1-terminus', + inputUsdPer1M: 0.27, + outputUsdPer1M: 1, + cacheReadUsdPer1M: 0.135, + }, + { + modelKey: 'vercel:deepseek/deepseek-v3.2', + inputUsdPer1M: 0.28, + outputUsdPer1M: 0.42, + cacheReadUsdPer1M: 0.028, + }, + { modelKey: 'vercel:deepseek/deepseek-v3.2-thinking', inputUsdPer1M: 0.62, outputUsdPer1M: 1.85 }, + { + modelKey: 'vercel:deepseek/deepseek-v4-flash', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.04, + }, + { + modelKey: 'vercel:deepseek/deepseek-v4-flash-0731', + inputUsdPer1M: 0.13, + outputUsdPer1M: 0.26, + cacheReadUsdPer1M: 0.028, + }, + { + modelKey: 'vercel:deepseek/deepseek-v4-pro', + inputUsdPer1M: 1.74, + outputUsdPer1M: 3.48, + cacheReadUsdPer1M: 0.14, + }, + { + modelKey: 'vercel:google/gemini-2.5-flash', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'vercel:google/gemini-2.5-flash-image', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'vercel:google/gemini-2.5-flash-lite', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.01, + }, + { + modelKey: 'vercel:google/gemini-2.5-pro', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + }, + { + modelKey: 'vercel:google/gemini-3-flash', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'vercel:google/gemini-3-pro-image', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:google/gemini-3.1-flash-image', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'vercel:google/gemini-3.1-flash-image-preview', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'vercel:google/gemini-3.1-flash-lite', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'vercel:google/gemini-3.1-flash-lite-image', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'vercel:google/gemini-3.1-pro-preview', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:google/gemini-3.5-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 9, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'vercel:google/gemini-3.5-flash-lite', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'vercel:google/gemini-3.6-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.15, + }, + { modelKey: 'vercel:google/gemini-omni-flash-preview', inputUsdPer1M: 1.5, outputUsdPer1M: 9 }, + { + modelKey: 'vercel:google/gemma-4-26b-a4b-it', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.015, + }, + { modelKey: 'vercel:google/gemma-4-31b-it', inputUsdPer1M: 0.14, outputUsdPer1M: 0.4 }, + { + modelKey: 'vercel:inception/mercury-2', + inputUsdPer1M: 0.25, + outputUsdPer1M: 0.75, + cacheReadUsdPer1M: 0.024999999999999998, + }, + { modelKey: 'vercel:inception/mercury-coder-small', inputUsdPer1M: 0.25, outputUsdPer1M: 1 }, + { + modelKey: 'vercel:inclusionai/ling-3.0-flash', + inputUsdPer1M: 0.06, + outputUsdPer1M: 0.18, + cacheReadUsdPer1M: 0.012, + }, + { modelKey: 'vercel:interfaze/interfaze-beta', inputUsdPer1M: 1.5, outputUsdPer1M: 3.5 }, + { + modelKey: 'vercel:kwaipilot/kat-coder-air-v2.5', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'vercel:kwaipilot/kat-coder-pro-v1', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'vercel:kwaipilot/kat-coder-pro-v2', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'vercel:kwaipilot/kat-coder-pro-v2.5', + inputUsdPer1M: 0.74, + outputUsdPer1M: 2.96, + cacheReadUsdPer1M: 0.15, + }, + { modelKey: 'vercel:meta/llama-3.1-70b', inputUsdPer1M: 0.72, outputUsdPer1M: 0.72 }, + { modelKey: 'vercel:meta/llama-3.1-8b', inputUsdPer1M: 0.22, outputUsdPer1M: 0.22 }, + { modelKey: 'vercel:meta/llama-3.3-70b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'vercel:meta/llama-4-maverick', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { modelKey: 'vercel:meta/llama-4-scout', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'vercel:meta/muse-spark-1.1', + inputUsdPer1M: 1.25, + outputUsdPer1M: 4.25, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'vercel:meta/muse-spark-1.2', + inputUsdPer1M: 1.25, + outputUsdPer1M: 4.25, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'vercel:meta/muse-spark-1.2-contributor', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.2, + cacheReadUsdPer1M: 0.002, + }, + { + modelKey: 'vercel:minimax/minimax-m2', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'vercel:minimax/minimax-m2.1', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'vercel:minimax/minimax-m2.1-lightning', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.4, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'vercel:minimax/minimax-m2.5', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'vercel:minimax/minimax-m2.5-highspeed', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.4, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'vercel:minimax/minimax-m2.7', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'vercel:minimax/minimax-m2.7-highspeed', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.4, + cacheReadUsdPer1M: 0.06, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'vercel:minimax/minimax-m3', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { modelKey: 'vercel:mistral/codestral', inputUsdPer1M: 0.3, outputUsdPer1M: 0.9 }, + { modelKey: 'vercel:mistral/devstral-2', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, + { modelKey: 'vercel:mistral/devstral-small-2', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { modelKey: 'vercel:mistral/magistral-medium', inputUsdPer1M: 2, outputUsdPer1M: 5 }, + { modelKey: 'vercel:mistral/magistral-small', inputUsdPer1M: 0.5, outputUsdPer1M: 1.5 }, + { modelKey: 'vercel:mistral/ministral-14b', inputUsdPer1M: 0.2, outputUsdPer1M: 0.2 }, + { modelKey: 'vercel:mistral/ministral-3b', inputUsdPer1M: 0.04, outputUsdPer1M: 0.04 }, + { modelKey: 'vercel:mistral/ministral-8b', inputUsdPer1M: 0.1, outputUsdPer1M: 0.1 }, + { modelKey: 'vercel:mistral/mistral-large-3', inputUsdPer1M: 0.5, outputUsdPer1M: 1.5 }, + { modelKey: 'vercel:mistral/mistral-medium', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, + { modelKey: 'vercel:mistral/mistral-medium-3.5', inputUsdPer1M: 1.5, outputUsdPer1M: 7.5 }, + { modelKey: 'vercel:mistral/mistral-nemo', inputUsdPer1M: 0.15, outputUsdPer1M: 0.15 }, + { modelKey: 'vercel:mistral/mistral-small', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { modelKey: 'vercel:mistral/pixtral-12b', inputUsdPer1M: 0.15, outputUsdPer1M: 0.15 }, + { modelKey: 'vercel:moonshotai/kimi-k2', inputUsdPer1M: 0.57, outputUsdPer1M: 2.3 }, + { + modelKey: 'vercel:moonshotai/kimi-k2-thinking', + inputUsdPer1M: 0.47, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.141, + }, + { + modelKey: 'vercel:moonshotai/kimi-k2.5', + inputUsdPer1M: 0.6, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'vercel:moonshotai/kimi-k2.6', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.16, + }, + { + modelKey: 'vercel:moonshotai/kimi-k2.7-code', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.19, + }, + { + modelKey: 'vercel:moonshotai/kimi-k2.7-code-highspeed', + inputUsdPer1M: 1.9, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.38, + }, + { + modelKey: 'vercel:moonshotai/kimi-k3', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + }, + { + modelKey: 'vercel:moonshotai/kimi-k3-fast', + inputUsdPer1M: 4.5, + outputUsdPer1M: 22.5, + cacheReadUsdPer1M: 0.45, + }, + { modelKey: 'vercel:morph/morph-v3-fast', inputUsdPer1M: 0.8, outputUsdPer1M: 1.2 }, + { modelKey: 'vercel:morph/morph-v3-large', inputUsdPer1M: 0.9, outputUsdPer1M: 1.9 }, + { modelKey: 'vercel:nvidia/nemotron-3-nano-30b-a3b', inputUsdPer1M: 0.05, outputUsdPer1M: 0.24 }, + { + modelKey: 'vercel:nvidia/nemotron-3-super-120b-a12b', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.65, + }, + { + modelKey: 'vercel:nvidia/nemotron-3-ultra-550b-a55b', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.4, + cacheReadUsdPer1M: 0.12, + }, + { modelKey: 'vercel:nvidia/nemotron-nano-12b-v2-vl', inputUsdPer1M: 0.2, outputUsdPer1M: 0.6 }, + { modelKey: 'vercel:nvidia/nemotron-nano-9b-v2', inputUsdPer1M: 0.06, outputUsdPer1M: 0.23 }, + { modelKey: 'vercel:openai/gpt-3.5-turbo', inputUsdPer1M: 0.5, outputUsdPer1M: 1.5 }, + { modelKey: 'vercel:openai/gpt-4-turbo', inputUsdPer1M: 10, outputUsdPer1M: 30 }, + { + modelKey: 'vercel:openai/gpt-4.1', + inputUsdPer1M: 2, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.5, + }, + { + modelKey: 'vercel:openai/gpt-4.1-mini', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.6, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'vercel:openai/gpt-4.1-nano', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'vercel:openai/gpt-4o', + inputUsdPer1M: 2.5, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 1.25, + }, + { + modelKey: 'vercel:openai/gpt-4o-mini', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'vercel:openai/gpt-4o-mini-search-preview', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + }, + { modelKey: 'vercel:openai/gpt-4o-mini-transcribe', inputUsdPer1M: 1.25, outputUsdPer1M: 5 }, + { modelKey: 'vercel:openai/gpt-4o-transcribe', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, + { + modelKey: 'vercel:openai/gpt-5', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + }, + { + modelKey: 'vercel:openai/gpt-5-codex', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.13, + }, + { + modelKey: 'vercel:openai/gpt-5-mini', + inputUsdPer1M: 0.25, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'vercel:openai/gpt-5-nano', + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.005, + }, + { modelKey: 'vercel:openai/gpt-5-pro', inputUsdPer1M: 15, outputUsdPer1M: 120 }, + { + modelKey: 'vercel:openai/gpt-5.1-codex', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.13, + }, + { + modelKey: 'vercel:openai/gpt-5.1-codex-max', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + }, + { + modelKey: 'vercel:openai/gpt-5.1-codex-mini', + inputUsdPer1M: 0.25, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'vercel:openai/gpt-5.1-instant', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.13, + }, + { + modelKey: 'vercel:openai/gpt-5.1-thinking', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.125, + }, + { + modelKey: 'vercel:openai/gpt-5.2', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'vercel:openai/gpt-5.2-codex', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { modelKey: 'vercel:openai/gpt-5.2-pro', inputUsdPer1M: 21, outputUsdPer1M: 168 }, + { + modelKey: 'vercel:openai/gpt-5.3-chat', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'vercel:openai/gpt-5.3-codex', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.175, + }, + { + modelKey: 'vercel:openai/gpt-5.4', + inputUsdPer1M: 2.5, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.25, + }, + { + modelKey: 'vercel:openai/gpt-5.4-mini', + inputUsdPer1M: 0.75, + outputUsdPer1M: 4.5, + cacheReadUsdPer1M: 0.075, + }, + { + modelKey: 'vercel:openai/gpt-5.4-nano', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.25, + cacheReadUsdPer1M: 0.02, + }, + { modelKey: 'vercel:openai/gpt-5.4-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, + { + modelKey: 'vercel:openai/gpt-5.5', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + }, + { modelKey: 'vercel:openai/gpt-5.5-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, + { + modelKey: 'vercel:openai/gpt-5.6-luna', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.02, + cacheWriteUsdPer1M: 0.25, + }, + { + modelKey: 'vercel:openai/gpt-5.6-sol', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'vercel:openai/gpt-5.6-terra', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 2.5, + }, + { + modelKey: 'vercel:openai/gpt-image-1', + inputUsdPer1M: 5, + outputUsdPer1M: 40, + cacheReadUsdPer1M: 1.25, + }, + { + modelKey: 'vercel:openai/gpt-image-1-mini', + inputUsdPer1M: 2, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:openai/gpt-image-1.5', + inputUsdPer1M: 5, + outputUsdPer1M: 32, + cacheReadUsdPer1M: 1.25, + }, + { + modelKey: 'vercel:openai/gpt-image-2', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 1.25, + }, + { modelKey: 'vercel:openai/gpt-oss-120b', inputUsdPer1M: 0.1, outputUsdPer1M: 0.5 }, + { modelKey: 'vercel:openai/gpt-oss-20b', inputUsdPer1M: 0.05, outputUsdPer1M: 0.2 }, + { + modelKey: 'vercel:openai/gpt-oss-safeguard-20b', + inputUsdPer1M: 0.075, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.037, + }, + { + modelKey: 'vercel:openai/gpt-realtime-1.5', + inputUsdPer1M: 4, + outputUsdPer1M: 16, + cacheReadUsdPer1M: 0.4, + }, + { + modelKey: 'vercel:openai/gpt-realtime-2', + inputUsdPer1M: 4, + outputUsdPer1M: 24, + cacheReadUsdPer1M: 0.4, + }, + { + modelKey: 'vercel:openai/gpt-realtime-2.1', + inputUsdPer1M: 4, + outputUsdPer1M: 24, + cacheReadUsdPer1M: 0.4, + }, + { + modelKey: 'vercel:openai/gpt-realtime-mini', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.4, + cacheReadUsdPer1M: 0.06, + }, + { modelKey: 'vercel:openai/o1', inputUsdPer1M: 15, outputUsdPer1M: 60, cacheReadUsdPer1M: 7.5 }, + { modelKey: 'vercel:openai/o3', inputUsdPer1M: 2, outputUsdPer1M: 8, cacheReadUsdPer1M: 0.5 }, + { + modelKey: 'vercel:openai/o3-deep-research', + inputUsdPer1M: 10, + outputUsdPer1M: 40, + cacheReadUsdPer1M: 2.5, + }, + { + modelKey: 'vercel:openai/o3-mini', + inputUsdPer1M: 1.1, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.55, + }, + { modelKey: 'vercel:openai/o3-pro', inputUsdPer1M: 20, outputUsdPer1M: 80 }, + { + modelKey: 'vercel:openai/o4-mini', + inputUsdPer1M: 1.1, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.275, + }, + { + modelKey: 'vercel:poolside/laguna-s-2.1', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.2, + cacheReadUsdPer1M: 0.01, + }, + { modelKey: 'vercel:poolside/laguna-s-2.1-free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'vercel:sakana/fugu-ultra', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + }, + { + modelKey: 'vercel:stepfun/step-3.5-flash', + inputUsdPer1M: 0.09, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'vercel:stepfun/step-3.7-flash', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.15, + cacheReadUsdPer1M: 0.04, + }, + { + modelKey: 'vercel:tencent/hy3', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.58, + cacheReadUsdPer1M: 0.035, + }, + { + modelKey: 'vercel:thinkingmachines/inkling', + inputUsdPer1M: 1, + outputUsdPer1M: 4.05, + cacheReadUsdPer1M: 0.17, + }, + { + modelKey: 'vercel:thinkingmachines/inkling-small', + inputUsdPer1M: 0.5, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'vercel:xai/grok-4.1-fast-non-reasoning', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.5, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'vercel:xai/grok-4.1-fast-reasoning', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.5, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'vercel:xai/grok-4.20-multi-agent', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:xai/grok-4.20-multi-agent-beta', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:xai/grok-4.20-non-reasoning', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:xai/grok-4.20-non-reasoning-beta', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.4, + }, + { + modelKey: 'vercel:xai/grok-4.20-reasoning', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:xai/grok-4.20-reasoning-beta', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:xai/grok-4.3', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { modelKey: 'vercel:xai/grok-4.5', inputUsdPer1M: 2, outputUsdPer1M: 6, cacheReadUsdPer1M: 0.3 }, + { + modelKey: 'vercel:xai/grok-build-0.1', + inputUsdPer1M: 1, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'vercel:xiaomi/mimo-v2.5', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'vercel:xiaomi/mimo-v2.5-pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.0036, + }, + { + modelKey: 'vercel:zai/glm-4.5', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.2, + cacheReadUsdPer1M: 0.11, + }, + { + modelKey: 'vercel:zai/glm-4.5-air', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.1, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'vercel:zai/glm-4.5v', + inputUsdPer1M: 0.6, + outputUsdPer1M: 1.8, + cacheReadUsdPer1M: 0.11, + }, + { + modelKey: 'vercel:zai/glm-4.6', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.2, + cacheReadUsdPer1M: 0.11, + }, + { + modelKey: 'vercel:zai/glm-4.6v', + inputUsdPer1M: 0.3, + outputUsdPer1M: 0.9, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'vercel:zai/glm-4.7', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.2, + cacheReadUsdPer1M: 0.12, + }, + { modelKey: 'vercel:zai/glm-4.7-flash', inputUsdPer1M: 0.07, outputUsdPer1M: 0.4 }, + { + modelKey: 'vercel:zai/glm-4.7-flashx', + inputUsdPer1M: 0.06, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.01, + }, + { modelKey: 'vercel:zai/glm-5', inputUsdPer1M: 1, outputUsdPer1M: 3.2 }, + { + modelKey: 'vercel:zai/glm-5-turbo', + inputUsdPer1M: 1.2, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.24, + }, + { + modelKey: 'vercel:zai/glm-5.1', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + }, + { + modelKey: 'vercel:zai/glm-5.2', + inputUsdPer1M: 1.1, + outputUsdPer1M: 3.851, + cacheReadUsdPer1M: 0.275, + }, + { + modelKey: 'vercel:zai/glm-5.2-fast', + inputUsdPer1M: 2.1, + outputUsdPer1M: 6.6, + cacheReadUsdPer1M: 0.21, + }, + { + modelKey: 'vercel:zai/glm-5v-turbo', + inputUsdPer1M: 1.2, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.24, + }, + { + modelKey: 'xai:grok-4.20-0309-non-reasoning', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'xai:grok-4.20-0309-reasoning', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'xai:grok-4.20-multi-agent-0309', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + }, + { modelKey: 'xai:grok-4.3', inputUsdPer1M: 1.25, outputUsdPer1M: 2.5, cacheReadUsdPer1M: 0.2 }, + { modelKey: 'xai:grok-4.5', inputUsdPer1M: 2, outputUsdPer1M: 6, cacheReadUsdPer1M: 0.3 }, + { modelKey: 'xai:grok-build-0.1', inputUsdPer1M: 1, outputUsdPer1M: 2, cacheReadUsdPer1M: 0.2 }, + { + modelKey: 'xiaomi:mimo-v2-flash', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'xiaomi:mimo-v2-omni', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'xiaomi:mimo-v2-pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.0036, + }, + { + modelKey: 'xiaomi:mimo-v2.5', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'xiaomi:mimo-v2.5-pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.0036, + }, + { + modelKey: 'xiaomi:mimo-v2.5-pro-ultraspeed', + inputUsdPer1M: 1.305, + outputUsdPer1M: 2.61, + cacheReadUsdPer1M: 0.0108, + }, + { + modelKey: 'xiaomi-token-plan-cn:mimo-v2-pro', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'xiaomi-token-plan-cn:mimo-v2-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'xiaomi-token-plan-cn:mimo-v2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'xiaomi-token-plan-cn:mimo-v2.5-pro', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'xiaomi-token-plan-cn:mimo-v2.5-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'xiaomi-token-plan-cn:mimo-v2.5-tts-voiceclone', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'xiaomi-token-plan-cn:mimo-v2.5-tts-voicedesign', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'xiaomi-token-plan-sgp:mimo-v2-pro', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'xiaomi-token-plan-sgp:mimo-v2-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'xiaomi-token-plan-sgp:mimo-v2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'xiaomi-token-plan-sgp:mimo-v2.5-pro', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'xiaomi-token-plan-sgp:mimo-v2.5-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'xiaomi-token-plan-sgp:mimo-v2.5-tts-voiceclone', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'xiaomi-token-plan-sgp:mimo-v2.5-tts-voicedesign', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'xiaomi-token-plan-ams:mimo-v2-pro', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'xiaomi-token-plan-ams:mimo-v2-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'xiaomi-token-plan-ams:mimo-v2.5', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'xiaomi-token-plan-ams:mimo-v2.5-pro', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { modelKey: 'xiaomi-token-plan-ams:mimo-v2.5-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'xiaomi-token-plan-ams:mimo-v2.5-tts-voiceclone', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'xiaomi-token-plan-ams:mimo-v2.5-tts-voicedesign', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + }, + { + modelKey: 'zai:glm-4.5', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.2, + cacheReadUsdPer1M: 0.11, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zai:glm-4.5-air', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.1, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zai:glm-4.5-flash', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'zai:glm-4.5v', inputUsdPer1M: 0.6, outputUsdPer1M: 1.8 }, + { + modelKey: 'zai:glm-4.6', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.2, + cacheReadUsdPer1M: 0.11, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'zai:glm-4.6v', inputUsdPer1M: 0.3, outputUsdPer1M: 0.9 }, + { + modelKey: 'zai:glm-4.7', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.2, + cacheReadUsdPer1M: 0.11, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zai:glm-4.7-flash', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zai:glm-4.7-flashx', + inputUsdPer1M: 0.07, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.01, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zai:glm-5', + inputUsdPer1M: 1, + outputUsdPer1M: 3.2, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zai:glm-5-turbo', + inputUsdPer1M: 1.2, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.24, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zai:glm-5.1', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zai:glm-5.2', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.4, + cacheReadUsdPer1M: 0.26, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zai:glm-5v-turbo', + inputUsdPer1M: 1.2, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.24, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zenmux:anthropic/claude-3.5-haiku', + inputUsdPer1M: 0.8, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.08, + cacheWriteUsdPer1M: 1, + }, + { + modelKey: 'zenmux:anthropic/claude-3.7-sonnet', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'zenmux:anthropic/claude-fable-5', + inputUsdPer1M: 10, + outputUsdPer1M: 50, + cacheReadUsdPer1M: 1, + cacheWriteUsdPer1M: 12.5, + }, + { + modelKey: 'zenmux:anthropic/claude-haiku-4.5', + inputUsdPer1M: 1, + outputUsdPer1M: 5, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { + modelKey: 'zenmux:anthropic/claude-opus-4', + inputUsdPer1M: 15, + outputUsdPer1M: 75, + cacheReadUsdPer1M: 1.5, + cacheWriteUsdPer1M: 18.75, + }, + { + modelKey: 'zenmux:anthropic/claude-opus-4.1', + inputUsdPer1M: 15, + outputUsdPer1M: 75, + cacheReadUsdPer1M: 1.5, + cacheWriteUsdPer1M: 18.75, + }, + { + modelKey: 'zenmux:anthropic/claude-opus-4.5', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'zenmux:anthropic/claude-opus-4.6', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'zenmux:anthropic/claude-opus-4.7', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'zenmux:anthropic/claude-opus-4.8', + inputUsdPer1M: 5, + outputUsdPer1M: 25, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'zenmux:anthropic/claude-sonnet-4', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'zenmux:anthropic/claude-sonnet-4.5', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'zenmux:anthropic/claude-sonnet-4.6', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + { + modelKey: 'zenmux:anthropic/claude-sonnet-5', + inputUsdPer1M: 2, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 4, + }, + { + modelKey: 'zenmux:anthropic/claude-sonnet-5-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zenmux:baidu/ernie-5.0-thinking-preview', + inputUsdPer1M: 0.84, + outputUsdPer1M: 3.37, + }, + { + modelKey: 'zenmux:deepseek/deepseek-chat', + inputUsdPer1M: 0.28, + outputUsdPer1M: 0.42, + cacheReadUsdPer1M: 0.03, + }, + { modelKey: 'zenmux:deepseek/deepseek-v3.2', inputUsdPer1M: 0.28, outputUsdPer1M: 0.43 }, + { modelKey: 'zenmux:deepseek/deepseek-v3.2-exp', inputUsdPer1M: 0.22, outputUsdPer1M: 0.33 }, + { + modelKey: 'zenmux:deepseek/deepseek-v4-flash', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.0028, + }, + { + modelKey: 'zenmux:deepseek/deepseek-v4-pro', + inputUsdPer1M: 0.435, + outputUsdPer1M: 0.87, + cacheReadUsdPer1M: 0.003625, + }, + { + modelKey: 'zenmux:google/gemini-2.5-flash', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.07, + cacheWriteUsdPer1M: 1, + }, + { + modelKey: 'zenmux:google/gemini-2.5-flash-lite', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.4, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 1, + }, + { + modelKey: 'zenmux:google/gemini-2.5-pro', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.31, + cacheWriteUsdPer1M: 4.5, + }, + { + modelKey: 'zenmux:google/gemini-3-flash-preview', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + cacheWriteUsdPer1M: 1, + }, + { + modelKey: 'zenmux:google/gemini-3.1-flash-lite', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.025, + }, + { + modelKey: 'zenmux:google/gemini-3.1-flash-lite-preview', + inputUsdPer1M: 0.25, + outputUsdPer1M: 1.5, + }, + { + modelKey: 'zenmux:google/gemini-3.1-pro-preview', + inputUsdPer1M: 2, + outputUsdPer1M: 12, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 4.5, + }, + { + modelKey: 'zenmux:google/gemini-3.5-flash', + inputUsdPer1M: 1.5, + outputUsdPer1M: 9, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'zenmux:inclusionai/ling-1t', + inputUsdPer1M: 0.56, + outputUsdPer1M: 2.24, + cacheReadUsdPer1M: 0.11, + }, + { + modelKey: 'zenmux:inclusionai/ring-1t', + inputUsdPer1M: 0.56, + outputUsdPer1M: 2.24, + cacheReadUsdPer1M: 0.11, + }, + { + modelKey: 'zenmux:inclusionai/ring-2.6-1t', + inputUsdPer1M: 0.3, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'zenmux:kuaishou/kat-coder-pro-v2', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + }, + { + modelKey: 'zenmux:minimax/minimax-m2', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.38, + }, + { + modelKey: 'zenmux:minimax/minimax-m2.1', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.38, + }, + { + modelKey: 'zenmux:minimax/minimax-m2.5', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.03, + cacheWriteUsdPer1M: 0.375, + }, + { + modelKey: 'zenmux:minimax/minimax-m2.5-lightning', + inputUsdPer1M: 0.6, + outputUsdPer1M: 4.8, + cacheReadUsdPer1M: 0.06, + cacheWriteUsdPer1M: 0.75, + }, + { modelKey: 'zenmux:minimax/minimax-m2.7', inputUsdPer1M: 0.3055, outputUsdPer1M: 1.2219 }, + { + modelKey: 'zenmux:minimax/minimax-m2.7-highspeed', + inputUsdPer1M: 0.611, + outputUsdPer1M: 2.4439, + }, + { modelKey: 'zenmux:minimax/minimax-m3', inputUsdPer1M: 0.6, outputUsdPer1M: 2.4 }, + { + modelKey: 'zenmux:moonshotai/kimi-k2-0905', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'zenmux:moonshotai/kimi-k2-thinking', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'zenmux:moonshotai/kimi-k2-thinking-turbo', + inputUsdPer1M: 1.15, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.15, + }, + { + modelKey: 'zenmux:moonshotai/kimi-k2.5', + inputUsdPer1M: 0.58, + outputUsdPer1M: 3.02, + cacheReadUsdPer1M: 0.1, + }, + { + modelKey: 'zenmux:moonshotai/kimi-k2.6', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.16, + }, + { + modelKey: 'zenmux:moonshotai/kimi-k2.7-code', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.16, + }, + { + modelKey: 'zenmux:moonshotai/kimi-k2.7-code-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'zenmux:moonshotai/kimi-k3', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + }, + { + modelKey: 'zenmux:moonshotai/kimi-k3-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'zenmux:openai/gpt-5', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.12, + }, + { + modelKey: 'zenmux:openai/gpt-5-codex', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.12, + }, + { + modelKey: 'zenmux:openai/gpt-5.1', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.12, + }, + { + modelKey: 'zenmux:openai/gpt-5.1-chat', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.12, + }, + { + modelKey: 'zenmux:openai/gpt-5.1-codex', + inputUsdPer1M: 1.25, + outputUsdPer1M: 10, + cacheReadUsdPer1M: 0.12, + }, + { + modelKey: 'zenmux:openai/gpt-5.1-codex-mini', + inputUsdPer1M: 0.25, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'zenmux:openai/gpt-5.2', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.17, + }, + { + modelKey: 'zenmux:openai/gpt-5.2-codex', + inputUsdPer1M: 1.75, + outputUsdPer1M: 14, + cacheReadUsdPer1M: 0.17, + }, + { modelKey: 'zenmux:openai/gpt-5.2-pro', inputUsdPer1M: 21, outputUsdPer1M: 168 }, + { modelKey: 'zenmux:openai/gpt-5.3-chat', inputUsdPer1M: 1.75, outputUsdPer1M: 14 }, + { modelKey: 'zenmux:openai/gpt-5.3-codex', inputUsdPer1M: 1.75, outputUsdPer1M: 14 }, + { modelKey: 'zenmux:openai/gpt-5.4', inputUsdPer1M: 3.75, outputUsdPer1M: 18.75 }, + { modelKey: 'zenmux:openai/gpt-5.4-mini', inputUsdPer1M: 0.75, outputUsdPer1M: 4.5 }, + { modelKey: 'zenmux:openai/gpt-5.4-nano', inputUsdPer1M: 0.2, outputUsdPer1M: 1.25 }, + { modelKey: 'zenmux:openai/gpt-5.4-pro', inputUsdPer1M: 45, outputUsdPer1M: 225 }, + { + modelKey: 'zenmux:openai/gpt-5.5', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + }, + { + modelKey: 'zenmux:openai/gpt-5.5-instant', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + }, + { modelKey: 'zenmux:openai/gpt-5.5-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, + { + modelKey: 'zenmux:openai/gpt-5.6-luna', + inputUsdPer1M: 1, + outputUsdPer1M: 6, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { + modelKey: 'zenmux:openai/gpt-5.6-sol', + inputUsdPer1M: 5, + outputUsdPer1M: 30, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 6.25, + }, + { + modelKey: 'zenmux:openai/gpt-5.6-terra', + inputUsdPer1M: 2.5, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.25, + cacheWriteUsdPer1M: 3.125, + }, + { + modelKey: 'zenmux:qwen/qwen3-coder-plus', + inputUsdPer1M: 1, + outputUsdPer1M: 5, + cacheReadUsdPer1M: 0.1, + cacheWriteUsdPer1M: 1.25, + }, + { modelKey: 'zenmux:qwen/qwen3-max', inputUsdPer1M: 1.2, outputUsdPer1M: 6 }, + { modelKey: 'zenmux:qwen/qwen3.5-flash', inputUsdPer1M: 0.1, outputUsdPer1M: 0.4 }, + { modelKey: 'zenmux:qwen/qwen3.5-plus', inputUsdPer1M: 0.8, outputUsdPer1M: 4.8 }, + { + modelKey: 'zenmux:qwen/qwen3.6-plus', + inputUsdPer1M: 0.5, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.05, + cacheWriteUsdPer1M: 0.625, + }, + { + modelKey: 'zenmux:qwen/qwen3.7-max', + inputUsdPer1M: 2.5, + outputUsdPer1M: 7.5, + cacheReadUsdPer1M: 0.5, + cacheWriteUsdPer1M: 3.125, + }, + { + modelKey: 'zenmux:qwen/qwen3.7-plus', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.6, + cacheReadUsdPer1M: 0.08, + cacheWriteUsdPer1M: 0.5, + }, + { modelKey: 'zenmux:sapiens-ai/agnes-1.5-lite', inputUsdPer1M: 0.12, outputUsdPer1M: 0.6 }, + { modelKey: 'zenmux:sapiens-ai/agnes-1.5-pro', inputUsdPer1M: 0.16, outputUsdPer1M: 0.8 }, + { modelKey: 'zenmux:stepfun/step-3', inputUsdPer1M: 0.21, outputUsdPer1M: 0.57 }, + { modelKey: 'zenmux:stepfun/step-3.5-flash', inputUsdPer1M: 0.1, outputUsdPer1M: 0.3 }, + { modelKey: 'zenmux:stepfun/step-3.7-flash', inputUsdPer1M: 0.2, outputUsdPer1M: 1.15 }, + { modelKey: 'zenmux:stepfun/step-3.7-flash-free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'zenmux:tencent/hy3-preview', + inputUsdPer1M: 0.172, + outputUsdPer1M: 0.572, + cacheReadUsdPer1M: 0.058, + cacheWriteUsdPer1M: 0, + }, + { + modelKey: 'zenmux:volcengine/doubao-seed-1.8', + inputUsdPer1M: 0.11, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.02, + cacheWriteUsdPer1M: 0.0024, + }, + { modelKey: 'zenmux:volcengine/doubao-seed-2.0-code', inputUsdPer1M: 0.9, outputUsdPer1M: 4.48 }, + { + modelKey: 'zenmux:volcengine/doubao-seed-2.0-lite', + inputUsdPer1M: 0.09, + outputUsdPer1M: 0.51, + cacheReadUsdPer1M: 0.02, + cacheWriteUsdPer1M: 0.0024, + }, + { + modelKey: 'zenmux:volcengine/doubao-seed-2.0-mini', + inputUsdPer1M: 0.03, + outputUsdPer1M: 0.28, + cacheReadUsdPer1M: 0.01, + cacheWriteUsdPer1M: 0.0024, + }, + { + modelKey: 'zenmux:volcengine/doubao-seed-2.0-pro', + inputUsdPer1M: 0.45, + outputUsdPer1M: 2.24, + cacheReadUsdPer1M: 0.09, + cacheWriteUsdPer1M: 0.0024, + }, + { + modelKey: 'zenmux:volcengine/doubao-seed-code', + inputUsdPer1M: 0.17, + outputUsdPer1M: 1.12, + cacheReadUsdPer1M: 0.03, + }, + { modelKey: 'zenmux:x-ai/grok-4', inputUsdPer1M: 3, outputUsdPer1M: 15, cacheReadUsdPer1M: 0.75 }, + { + modelKey: 'zenmux:x-ai/grok-4-fast', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.5, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'zenmux:x-ai/grok-4.1-fast', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.5, + cacheReadUsdPer1M: 0.05, + }, + { + modelKey: 'zenmux:x-ai/grok-4.1-fast-non-reasoning', + inputUsdPer1M: 0.2, + outputUsdPer1M: 0.5, + cacheReadUsdPer1M: 0.05, + }, + { modelKey: 'zenmux:x-ai/grok-4.2-fast', inputUsdPer1M: 3, outputUsdPer1M: 9 }, + { modelKey: 'zenmux:x-ai/grok-4.2-fast-non-reasoning', inputUsdPer1M: 3, outputUsdPer1M: 9 }, + { + modelKey: 'zenmux:x-ai/grok-4.3', + inputUsdPer1M: 1.25, + outputUsdPer1M: 2.5, + cacheReadUsdPer1M: 0.2, + cacheWriteUsdPer1M: 0, + }, + { modelKey: 'zenmux:x-ai/grok-4.5', inputUsdPer1M: 2, outputUsdPer1M: 6, cacheReadUsdPer1M: 0.5 }, + { + modelKey: 'zenmux:x-ai/grok-build-0.1', + inputUsdPer1M: 1, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'zenmux:x-ai/grok-code-fast-1', + inputUsdPer1M: 0.2, + outputUsdPer1M: 1.5, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'zenmux:xiaomi/mimo-v2-flash', + inputUsdPer1M: 0.1, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.01, + }, + { + modelKey: 'zenmux:xiaomi/mimo-v2-omni', + inputUsdPer1M: 0.4, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.08, + }, + { + modelKey: 'zenmux:xiaomi/mimo-v2-pro', + inputUsdPer1M: 1, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'zenmux:xiaomi/mimo-v2.5', + inputUsdPer1M: 0.4, + outputUsdPer1M: 2, + cacheReadUsdPer1M: 0.08, + }, + { + modelKey: 'zenmux:xiaomi/mimo-v2.5-pro', + inputUsdPer1M: 1, + outputUsdPer1M: 3, + cacheReadUsdPer1M: 0.2, + }, + { + modelKey: 'zenmux:z-ai/glm-4.5', + inputUsdPer1M: 0.35, + outputUsdPer1M: 1.54, + cacheReadUsdPer1M: 0.07, + }, + { + modelKey: 'zenmux:z-ai/glm-4.5-air', + inputUsdPer1M: 0.11, + outputUsdPer1M: 0.56, + cacheReadUsdPer1M: 0.02, + }, + { + modelKey: 'zenmux:z-ai/glm-4.6', + inputUsdPer1M: 0.35, + outputUsdPer1M: 1.54, + cacheReadUsdPer1M: 0.07, + }, + { + modelKey: 'zenmux:z-ai/glm-4.6v', + inputUsdPer1M: 0.14, + outputUsdPer1M: 0.42, + cacheReadUsdPer1M: 0.03, + }, + { + modelKey: 'zenmux:z-ai/glm-4.6v-flash', + inputUsdPer1M: 0.02, + outputUsdPer1M: 0.21, + cacheReadUsdPer1M: 0.0043, + }, + { modelKey: 'zenmux:z-ai/glm-4.6v-flash-free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'zenmux:z-ai/glm-4.7', + inputUsdPer1M: 0.28, + outputUsdPer1M: 1.14, + cacheReadUsdPer1M: 0.06, + }, + { modelKey: 'zenmux:z-ai/glm-4.7-flash-free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, + { + modelKey: 'zenmux:z-ai/glm-4.7-flashx', + inputUsdPer1M: 0.07, + outputUsdPer1M: 0.42, + cacheReadUsdPer1M: 0.01, + }, + { + modelKey: 'zenmux:z-ai/glm-5', + inputUsdPer1M: 0.58, + outputUsdPer1M: 2.6, + cacheReadUsdPer1M: 0.14, + }, + { modelKey: 'zenmux:z-ai/glm-5-turbo', inputUsdPer1M: 0.88, outputUsdPer1M: 3.48 }, + { + modelKey: 'zenmux:z-ai/glm-5.1', + inputUsdPer1M: 0.8781, + outputUsdPer1M: 3.5126, + cacheReadUsdPer1M: 0.1903, + }, + { + modelKey: 'zenmux:z-ai/glm-5.2', + inputUsdPer1M: 1.4, + outputUsdPer1M: 4.5, + cacheReadUsdPer1M: 0.26, + }, + { + modelKey: 'zenmux:z-ai/glm-5.2-free', + inputUsdPer1M: 0, + outputUsdPer1M: 0, + cacheReadUsdPer1M: 0, + }, + { + modelKey: 'zenmux:z-ai/glm-5v-turbo', + inputUsdPer1M: 0.726, + outputUsdPer1M: 3.1946, + cacheReadUsdPer1M: 0.1743, + }, +]; diff --git a/packages/ui/src/__tests__/model-picker.test.ts b/packages/ui/src/__tests__/model-picker.test.ts index cd7dc5c038b..a9d12b938f8 100644 --- a/packages/ui/src/__tests__/model-picker.test.ts +++ b/packages/ui/src/__tests__/model-picker.test.ts @@ -1,6 +1,7 @@ import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { + buildModelPickerDescriptions, buildModelPickerOptions, buildModelPickerProviderTypes, } from '../model-picker-internals.js'; @@ -117,4 +118,28 @@ describe('ModelPicker option shaping', () => { ], ); }); + + it('maps model facts to localized option descriptions', () => { + const describedGroups: ModelMenuGroup[] = [ + { + ...groups[0], + choices: [ + { + ...groups[0].choices[0], + description: 'Balanced Claude model', + knowledgeCutoff: '2025-07-31', + }, + ], + }, + ]; + + assert.deepEqual( + [...buildModelPickerDescriptions(describedGroups, 'zh')], + [['anthropic-team:claude-sonnet-4', 'Balanced Claude model · 知识截止:2025-07-31']], + ); + assert.deepEqual( + [...buildModelPickerDescriptions(describedGroups, 'en')], + [['anthropic-team:claude-sonnet-4', 'Balanced Claude model · Knowledge cutoff: 2025-07-31']], + ); + }); }); diff --git a/packages/ui/src/chat-model-helpers.ts b/packages/ui/src/chat-model-helpers.ts index d9a78d351f2..81b1f049c7a 100644 --- a/packages/ui/src/chat-model-helpers.ts +++ b/packages/ui/src/chat-model-helpers.ts @@ -24,6 +24,19 @@ import type { ChatModelChoice, ProviderType, UiLocale } from '@maka/core'; import { getSharedUiCopy } from './shared-ui-copy.js'; export type { ChatModelChoice } from '@maka/core'; +export function modelChoiceDescription( + choice: Pick, + locale: UiLocale = 'zh', +): string | undefined { + const description = choice.description?.trim(); + const knowledge = choice.knowledgeCutoff?.trim(); + const copy = getSharedUiCopy(locale).modelPicker; + const parts = [description, knowledge ? copy.knowledgeCutoff(knowledge) : undefined].filter( + (value): value is string => Boolean(value), + ); + return parts.length > 0 ? parts.join(' · ') : undefined; +} + export interface ModelMenuGroup { connectionSlug: string; /** Provider of this group, so the menu can render its brand mark on the heading. */ diff --git a/packages/ui/src/chat-model-switcher.tsx b/packages/ui/src/chat-model-switcher.tsx index fc251658aef..040a1458613 100644 --- a/packages/ui/src/chat-model-switcher.tsx +++ b/packages/ui/src/chat-model-switcher.tsx @@ -24,6 +24,7 @@ import { Check, Settings } from './icons.js'; import { type ChatModelChoice, type ModelMenuGroup, + modelChoiceDescription, modelMenuGroups, modelChoiceValue, } from './chat-model-helpers.js'; @@ -64,6 +65,7 @@ function ModelMenuItems(props: { disabled?: boolean; onPick(input: { llmConnectionSlug: string; model: string }): void | Promise; }) { + const locale = useUiLocale(); return ( <> {props.leadingOption ? ( @@ -89,6 +91,7 @@ function ModelMenuItems(props: { key={value} icon={providerMarkIcon(choice.providerType, props.renderProviderMark)} label={choice.label} + description={modelChoiceDescription(choice, locale)} endContent={value === props.currentValue ? currentCheck : undefined} isDisabled={props.disabled} onClick={() => { diff --git a/packages/ui/src/model-picker-internals.ts b/packages/ui/src/model-picker-internals.ts index 93203844d67..90e3af1d1fd 100644 --- a/packages/ui/src/model-picker-internals.ts +++ b/packages/ui/src/model-picker-internals.ts @@ -1,6 +1,10 @@ import type { SelectorDivider, SelectorOptionData } from '@astryxdesign/core/Selector'; -import type { ProviderType } from '@maka/core'; -import { type ModelMenuGroup, modelChoiceValue } from './chat-model-helpers.js'; +import type { ProviderType, UiLocale } from '@maka/core'; +import { + type ModelMenuGroup, + modelChoiceDescription, + modelChoiceValue, +} from './chat-model-helpers.js'; export type ModelPickerOption = SelectorOptionData; @@ -61,3 +65,17 @@ export function buildModelPickerProviderTypes( } return new Map(entries); } + +export function buildModelPickerDescriptions( + groups: readonly ModelMenuGroup[], + locale: UiLocale, +): ReadonlyMap { + return new Map( + groups.flatMap((group) => + group.choices.map((choice) => [ + modelChoiceValue(choice.connectionSlug, choice.model), + modelChoiceDescription(choice, locale), + ] as const), + ), + ); +} diff --git a/packages/ui/src/model-picker.tsx b/packages/ui/src/model-picker.tsx index 042b97fad9a..bdfc2212e15 100644 --- a/packages/ui/src/model-picker.tsx +++ b/packages/ui/src/model-picker.tsx @@ -19,6 +19,7 @@ import type { ProviderType } from '@maka/core'; import type { ModelMenuGroup } from './chat-model-helpers.js'; import { buildModelPickerOptions, + buildModelPickerDescriptions, buildModelPickerProviderTypes, type ModelPickerLeadingOption, } from './model-picker-internals.js'; @@ -44,7 +45,8 @@ export interface ModelPickerProps { } export function ModelPicker(props: ModelPickerProps) { - const copy = getSharedUiCopy(useUiLocale()).modelPicker; + const locale = useUiLocale(); + const copy = getSharedUiCopy(locale).modelPicker; const options = useMemo( () => buildModelPickerOptions(props.groups, props.leadingOption), @@ -54,6 +56,10 @@ export function ModelPicker(props: ModelPickerProps) { () => buildModelPickerProviderTypes(props.groups, props.leadingOption), [props.groups, props.leadingOption], ); + const descriptions = useMemo( + () => buildModelPickerDescriptions(props.groups, locale), + [locale, props.groups], + ); // size=md matches the other settings-row selectors. Settings is the only // production host since the composer footer moved to ghost DropdownMenus, @@ -90,6 +96,7 @@ export function ModelPicker(props: ModelPickerProps) { className="modelPickerOption" icon={providerMark} label={{option.label ?? option.value}} + description={descriptions.get(option.value)} /> ); }} diff --git a/packages/ui/src/shared-ui-copy.ts b/packages/ui/src/shared-ui-copy.ts index c36aa19b841..a3449d0461b 100644 --- a/packages/ui/src/shared-ui-copy.ts +++ b/packages/ui/src/shared-ui-copy.ts @@ -42,6 +42,7 @@ export interface SharedUiCopy { }; modelPicker: { searchPlaceholder: string; + knowledgeCutoff: (date: string) => string; }; moduleHubs: { extensions: { @@ -147,6 +148,7 @@ const SHARED_UI_COPY = { }, modelPicker: { searchPlaceholder: '搜索模型…', + knowledgeCutoff: (date) => `知识截止:${date}`, }, moduleHubs: { extensions: { @@ -235,6 +237,7 @@ const SHARED_UI_COPY = { }, modelPicker: { searchPlaceholder: 'Search models…', + knowledgeCutoff: (date) => `Knowledge cutoff: ${date}`, }, moduleHubs: { extensions: { diff --git a/scripts/sync-model-metadata.mjs b/scripts/sync-model-metadata.mjs index 25d0b20f15d..089ec9d1f0b 100644 --- a/scripts/sync-model-metadata.mjs +++ b/scripts/sync-model-metadata.mjs @@ -3,6 +3,8 @@ import { pathToFileURL } from 'node:url'; const SOURCE_URL = 'https://models.dev/api.json'; const DEFAULT_OUTPUT = 'packages/core/src/model-metadata.generated.ts'; +const DEFAULT_PRICING_OUTPUT = 'packages/runtime/src/telemetry/model-pricing.generated.ts'; +const PRICING_EXCLUDED_PROVIDER_TYPES = new Set(['zai-coding-plan', 'MiniMax-cn']); export const PROVIDERS = { anthropic: 'anthropic', alibaba: 'alibaba', @@ -56,6 +58,9 @@ export const PROVIDERS = { export async function main(argv = process.argv) { const inputPath = option('--input', argv); const outputPath = option('--output', argv) ?? DEFAULT_OUTPUT; + const pricingOutputPath = + option('--pricing-output', argv) ?? + (outputPath === DEFAULT_OUTPUT ? DEFAULT_PRICING_OUTPUT : undefined); const catalog = JSON.parse( inputPath ? await readFile(inputPath, 'utf8') @@ -66,6 +71,7 @@ export async function main(argv = process.argv) { ); const generated = {}; + const generatedPricing = []; const generatedProviders = {}; const generatedModelProviderOverrides = {}; const directory = {}; @@ -109,6 +115,14 @@ export async function main(argv = process.argv) { .filter(([, model]) => model.provider !== undefined) .map(([id, model]) => [id, toModelProviderOverride(sourceId, id, model.provider)]), ); + if (!PRICING_EXCLUDED_PROVIDER_TYPES.has(providerType)) { + generatedPricing.push( + ...Object.entries(provider.models) + .sort(([left], [right]) => left.localeCompare(right)) + .map(([id, model]) => toPricing(providerType, id, model)) + .filter((pricing) => pricing !== undefined), + ); + } } const providerTypeUnion = Object.keys(PROVIDERS).map(JSON.stringify).join(' | '); @@ -149,6 +163,9 @@ export async function main(argv = process.argv) { } lines.push('};', ''); await writeFile(outputPath, lines.join('\n')); + if (pricingOutputPath) { + await writeFile(pricingOutputPath, buildPricingModule(generatedPricing)); + } } function toModelProviderOverride(providerId, modelId, override) { @@ -173,6 +190,7 @@ export function toMetadata(providerId, modelId, provider, model) { typeof provider.doc !== 'string' || typeof model?.name !== 'string' || (model.modalities !== undefined && !Array.isArray(model.modalities?.input)) || + (model.modalities !== undefined && !Array.isArray(model.modalities?.output)) || typeof model.limit?.context !== 'number' || typeof model.limit?.output !== 'number' || typeof model.reasoning !== 'boolean' || @@ -180,6 +198,17 @@ export function toMetadata(providerId, modelId, provider, model) { ) { throw new Error(`models.dev model ${providerId}/${modelId} has an unsupported shape`); } + if ( + (model.description !== undefined && typeof model.description !== 'string') || + (model.knowledge !== undefined && typeof model.knowledge !== 'string') || + (model.limit?.input !== undefined && + (typeof model.limit.input !== 'number' || !Number.isFinite(model.limit.input))) || + (model.structured_output !== undefined && typeof model.structured_output !== 'boolean') || + (model.last_updated !== undefined && typeof model.last_updated !== 'string') + ) { + throw new Error(`models.dev model ${providerId}/${modelId} has an unsupported shape`); + } + const lifecycle = lifecycleForStatus(providerId, modelId, model.status); const reasoningOptions = model.reasoning_options ?? []; if (!Array.isArray(reasoningOptions)) { throw new Error(`models.dev model ${providerId}/${modelId} has an unsupported shape`); @@ -203,10 +232,15 @@ export function toMetadata(providerId, modelId, provider, model) { } return { displayName: model.name, - lifecycle: model.status === 'deprecated' ? 'deprecated' : 'active', + ...(model.description !== undefined ? { description: model.description } : {}), + lifecycle, docsUrl: provider.doc, contextWindow: model.limit?.context, + ...(model.limit?.input !== undefined ? { inputLimit: model.limit.input } : {}), maxOutputTokens: model.limit?.output, + ...(model.knowledge !== undefined ? { knowledgeCutoff: model.knowledge } : {}), + ...(model.structured_output !== undefined ? { structuredOutput: model.structured_output } : {}), + ...(model.last_updated !== undefined ? { lastUpdated: model.last_updated } : {}), capabilities: { ...(model.modalities ? { vision: model.modalities.input.includes('image') } : {}), reasoning: model.reasoning === true, @@ -224,7 +258,8 @@ export function toMetadata(providerId, modelId, provider, model) { ? { modalities: { input: model.modalities.input.filter( - (value) => value === 'text' || value === 'image' || value === 'audio', + (value) => + value === 'text' || value === 'image' || value === 'audio' || value === 'pdf', ), output: (Array.isArray(model.modalities.output) ? model.modalities.output : []).filter( (value) => value === 'text' || value === 'image' || value === 'audio', @@ -235,6 +270,67 @@ export function toMetadata(providerId, modelId, provider, model) { }; } +export function toPricing(providerType, modelId, model) { + const cost = model?.cost; + if (cost === undefined) return undefined; + if (!cost || typeof cost !== 'object' || Array.isArray(cost)) { + throw new Error(`models.dev model ${providerType}/${modelId} has an unsupported cost shape`); + } + const inputUsdPer1M = priceNumber(providerType, modelId, cost.input, 'input'); + const outputUsdPer1M = priceNumber(providerType, modelId, cost.output, 'output'); + const cacheReadUsdPer1M = optionalPriceNumber( + providerType, + modelId, + cost.cache_read, + 'cache_read', + ); + const cacheWriteUsdPer1M = optionalPriceNumber( + providerType, + modelId, + cost.cache_write, + 'cache_write', + ); + return { + modelKey: `${providerType}:${modelId}`, + inputUsdPer1M, + outputUsdPer1M, + ...(cacheReadUsdPer1M !== undefined ? { cacheReadUsdPer1M } : {}), + ...(cacheWriteUsdPer1M !== undefined ? { cacheWriteUsdPer1M } : {}), + }; +} + +function lifecycleForStatus(providerId, modelId, status) { + if (status === undefined) return 'active'; + if (status === 'active' || status === 'beta' || status === 'alpha' || status === 'deprecated') { + return status; + } + throw new Error(`models.dev model ${providerId}/${modelId} has an unsupported status`); +} + +function priceNumber(providerType, modelId, value, field) { + if (typeof value !== 'number' || !Number.isFinite(value) || value < 0) { + throw new Error(`models.dev model ${providerType}/${modelId} has an unsupported cost.${field}`); + } + return value; +} + +function optionalPriceNumber(providerType, modelId, value, field) { + return value === undefined ? undefined : priceNumber(providerType, modelId, value, field); +} + +function buildPricingModule(pricing) { + const lines = [ + '// Generated by scripts/sync-model-metadata.mjs from https://models.dev/api.json.', + '// Do not edit by hand; special access-path pricing belongs in builtin-pricing.ts.', + "import type { PricingConfig } from '@maka/core/usage-stats/types';", + '', + 'export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [', + ]; + for (const entry of pricing) lines.push(` ${JSON.stringify(entry)},`); + lines.push('];', ''); + return lines.join('\n'); +} + if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { await main(); } diff --git a/scripts/sync-model-metadata.test.mjs b/scripts/sync-model-metadata.test.mjs index e8ecb29a81d..3179113e4e8 100644 --- a/scripts/sync-model-metadata.test.mjs +++ b/scripts/sync-model-metadata.test.mjs @@ -1,7 +1,7 @@ import assert from 'node:assert/strict'; import test from 'node:test'; -import { toMetadata, PROVIDERS } from './sync-model-metadata.mjs'; +import { toMetadata, toPricing, PROVIDERS } from './sync-model-metadata.mjs'; const PROVIDER = { doc: 'https://example.com/docs' }; const BASE_MODEL = { @@ -19,6 +19,56 @@ test('models.dev reasoning_options effort values pass through to thinkingOptions assert.deepEqual(metadata.thinkingOptions, { efforts: ['high', 'max'] }); }); +test('models.dev facts preserve the extended metadata contract', () => { + const metadata = toMetadata('test', 'm', PROVIDER, { + ...BASE_MODEL, + description: 'A useful model', + knowledge: '2025-12-01', + last_updated: '2026-01-02', + structured_output: false, + status: 'beta', + limit: { context: 128_000, input: 96_000, output: 8_192 }, + modalities: { input: ['text', 'image', 'pdf', 'video'], output: ['text'] }, + }); + assert.equal(metadata.description, 'A useful model'); + assert.equal(metadata.knowledgeCutoff, '2025-12-01'); + assert.equal(metadata.inputLimit, 96_000); + assert.equal(metadata.structuredOutput, false); + assert.equal(metadata.lastUpdated, '2026-01-02'); + assert.equal(metadata.lifecycle, 'beta'); + assert.deepEqual(metadata.modalities, { input: ['text', 'image', 'pdf'], output: ['text'] }); + + assert.equal( + toMetadata('test', 'alpha-model', PROVIDER, { + ...BASE_MODEL, + status: 'alpha', + }).lifecycle, + 'alpha', + ); +}); + +test('models.dev pricing keeps base rates and ignores tiered rates', () => { + assert.deepEqual( + toPricing('openai', 'gpt-test', { + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 30 }, + tiers: [{ input: 6, output: 30 }], + }, + }), + { + modelKey: 'openai:gpt-test', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, + cacheWriteUsdPer1M: 3.75, + }, + ); +}); + test('models.dev reasoning_options toggle passes through to thinkingOptions', () => { const metadata = toMetadata('test', 'm', PROVIDER, { ...BASE_MODEL, @@ -99,6 +149,7 @@ test('main() syncs only the mapped providers into the generated snapshot', async limit: { context: 1_048_576, output: 131_072 }, reasoning: true, tool_call: true, + cost: { input: 1, output: 2 }, reasoning_options: [{ type: 'toggle' }, { type: 'effort', values: ['low', 'high', 'max'] }], }; catalog['unmapped-provider'] = { @@ -121,10 +172,12 @@ test('main() syncs only the mapped providers into the generated snapshot', async const dir = await mkdtemp(join(tmpdir(), 'maka-sync-')); const input = join(dir, 'catalog.json'); const output = join(dir, 'out.ts'); + const pricingOutput = join(dir, 'pricing.ts'); await writeFile(input, JSON.stringify(catalog)); const { main } = await import('./sync-model-metadata.mjs'); - await main(['--input', input, '--output', output]); + await main(['--input', input, '--output', output, '--pricing-output', pricingOutput]); const out = await readFile(output, 'utf8'); + const pricing = await readFile(pricingOutput, 'utf8'); await rm(dir, { recursive: true, force: true }); assert.match(out, /"kimi-coding-plan": \{/); @@ -132,6 +185,7 @@ test('main() syncs only the mapped providers into the generated snapshot', async assert.match(out, /"thinkingOptions":\{"efforts":\["low","high","max"\],"toggle":true\}/); assert.match(out, /"kimi-for-coding": \{/); assert.match(out, /"kimi-for-coding": \{"api":"https:\/\/api\.kimi\.com\/coding\/v1"\}/); + assert.match(pricing, /"modelKey":"kimi-coding-plan:k3","inputUsdPer1M":1,"outputUsdPer1M":2/); // The unmapped provider must appear only in the directory (the complete // upstream catalog), never as a snapshot segment or provider fact. const directoryStart = out.indexOf('GENERATED_MODELS_DEV_DIRECTORY'); From 2ee6cd12e985d540538faeb255825093b7aaf672 Mon Sep 17 00:00:00 2001 From: biny Date: Fri, 7 Aug 2026 16:35:55 +0800 Subject: [PATCH 2/5] fix(ci): align tests with generated model facts --- .../main/__tests__/onboarding-service.test.ts | 2 ++ packages/core/src/chat-model-choice.ts | 4 +-- .../usage-pricing-two-client-uds.test.ts | 31 ++++++++++++------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/apps/desktop/src/main/__tests__/onboarding-service.test.ts b/apps/desktop/src/main/__tests__/onboarding-service.test.ts index 8dca6aa44e5..7493066cfec 100644 --- a/apps/desktop/src/main/__tests__/onboarding-service.test.ts +++ b/apps/desktop/src/main/__tests__/onboarding-service.test.ts @@ -113,6 +113,8 @@ describe('createOnboardingService.getSnapshot', () => { providerLabel: 'Anthropic', model: 'claude-sonnet-4-5-20250929', label: 'Claude Sonnet 4.5', + description: 'Balanced Claude model for coding, analysis, agent workflows, and cost control', + knowledgeCutoff: '2025-07-31', connectionName: 'Anthropic Live', isDefault: true, thinkingLevels: ['off'], diff --git a/packages/core/src/chat-model-choice.ts b/packages/core/src/chat-model-choice.ts index 14c309a614e..3d125866a38 100644 --- a/packages/core/src/chat-model-choice.ts +++ b/packages/core/src/chat-model-choice.ts @@ -67,9 +67,7 @@ export function buildChatModelChoices(connections: readonly LlmConnection[]): Ch model: entry.id, label: entry.displayName?.trim() || entry.id, ...(entry.description !== undefined ? { description: entry.description } : {}), - ...(entry.knowledgeCutoff !== undefined - ? { knowledgeCutoff: entry.knowledgeCutoff } - : {}), + ...(entry.knowledgeCutoff !== undefined ? { knowledgeCutoff: entry.knowledgeCutoff } : {}), ...(provider.authKind === 'oauth_token' ? {} : { connectionName: connection.name }), isDefault: entry.isDefault, thinkingLevels: thinkingVariantsForModel(connection.providerType, entry.id), diff --git a/packages/runtime-host/src/__tests__/usage-pricing-two-client-uds.test.ts b/packages/runtime-host/src/__tests__/usage-pricing-two-client-uds.test.ts index 08d174a3fa8..1bed7c92fa6 100644 --- a/packages/runtime-host/src/__tests__/usage-pricing-two-client-uds.test.ts +++ b/packages/runtime-host/src/__tests__/usage-pricing-two-client-uds.test.ts @@ -502,16 +502,9 @@ describe('production Usage/Pricing UDS', () => { }, ]); - const initial = requirePricingPage( - await desktop.request('pricing.query', { kind: 'start' }, REQUEST_TIMEOUT_MS), - ); - assert.deepEqual(initial, { - kind: 'page', - revision: 0, - offset: 0, - entries: builtinPricingEntries(), - nextOffset: null, - }); + const initial = await readPricing(desktop); + assert.equal(initial.revision, 0); + assert.deepEqual(initial.entries, builtinPricingEntries()); const decomposedModelKey = 'e\u0301'; const composedModelKey = '\u00e9'; const candidates = [pricing(decomposedModelKey, 1), pricing(composedModelKey, 2)] as const; @@ -790,7 +783,23 @@ async function readCoordinatorPricing( ); assert.equal(outcome.ok, true); if (!outcome.ok) throw new Error('Expected an effective pricing page'); - return requirePricingPage(outcome.result); + const first = requirePricingPage(outcome.result); + const entries = [...first.entries]; + let nextOffset = first.nextOffset; + while (nextOffset !== null) { + const nextOutcome = await coordinator.handlers['pricing.query']( + { kind: 'continue', revision: first.revision, offset: nextOffset }, + CONNECTION_CONTEXT, + ); + assert.equal(nextOutcome.ok, true); + if (!nextOutcome.ok) throw new Error('Expected an effective pricing page'); + const page = requirePricingPage(nextOutcome.result); + assert.equal(page.revision, first.revision); + assert.equal(page.offset, nextOffset); + entries.push(...page.entries); + nextOffset = page.nextOffset; + } + return { ...first, entries, nextOffset: null }; } function builtinPricingEntries(): readonly EffectivePricingEntry[] { From c5f3e66d336689c05bcb5942d106aaa7eb90889a Mon Sep 17 00:00:00 2001 From: biny Date: Sat, 8 Aug 2026 15:07:29 +0800 Subject: [PATCH 3/5] fix(runtime): preserve access-path model limits --- .../src/__tests__/builtin-pricing.test.ts | 5 + .../context-budget-model-facts.test.ts | 35 + .../models-dev-pricing-contract.test.ts | 10 + packages/runtime/src/context-budget-policy.ts | 20 +- .../src/telemetry/model-pricing.generated.ts | 1242 +---------------- scripts/sync-model-metadata.mjs | 28 +- scripts/sync-model-metadata.test.mjs | 32 +- 7 files changed, 184 insertions(+), 1188 deletions(-) diff --git a/packages/runtime/src/__tests__/builtin-pricing.test.ts b/packages/runtime/src/__tests__/builtin-pricing.test.ts index 70ce005af77..1c68f2719b4 100644 --- a/packages/runtime/src/__tests__/builtin-pricing.test.ts +++ b/packages/runtime/src/__tests__/builtin-pricing.test.ts @@ -18,3 +18,8 @@ test('special access-path pricing remains in the local supplement', () => { outputUsdPer1M: 2.2, }); }); + +test('subscription access paths stay unpriced instead of inheriting API rates', () => { + assert.equal(getBuiltinPricing('github-copilot:gpt-5.5'), null); + assert.equal(getBuiltinPricing('gemini-cli:gemini-2.5-pro'), null); +}); diff --git a/packages/runtime/src/__tests__/context-budget-model-facts.test.ts b/packages/runtime/src/__tests__/context-budget-model-facts.test.ts index 84443fb453b..ba6738e9194 100644 --- a/packages/runtime/src/__tests__/context-budget-model-facts.test.ts +++ b/packages/runtime/src/__tests__/context-budget-model-facts.test.ts @@ -30,3 +30,38 @@ test('invalid zero input limits do not disable the context-window fallback', () assert.equal(resolveSelectedModelContextWindow(connection, undefined), 1_000); }); + +test('access-path context windows remain authoritative for the real Codex models', () => { + const limits = [ + ['gpt-5.5', 272_000], + ['gpt-5.6-sol', 372_000], + ] as const; + + for (const [modelId, expected] of limits) { + assert.equal( + resolveSelectedModelContextWindow( + { + slug: 'openai-codex', + providerType: 'openai-codex', + defaultModel: modelId, + models: [{ id: modelId }], + }, + undefined, + ), + expected, + `${modelId} must use its Codex access-path limit instead of the generated input limit`, + ); + } +}); + +test('a relay user declaration remains ahead of runtime and static model facts', () => { + const connection = { + slug: 'relay', + providerType: 'openai-compatible' as const, + defaultModel: 'relay-model', + models: [{ id: 'relay-model', contextWindow: 64_000, inputLimit: 128_000 }], + relayModelProfiles: { 'relay-model': { contextWindow: 64_000 } }, + }; + + assert.equal(resolveSelectedModelContextWindow(connection, undefined), 64_000); +}); diff --git a/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts b/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts index 0aded1807ac..5b342743890 100644 --- a/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts +++ b/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts @@ -42,3 +42,13 @@ test('generated pricing stays keyed to generated model facts', () => { assert.deepEqual(gaps, []); }); + +test('subscription access paths have no generated API pricing', () => { + for (const providerType of ['github-copilot', 'gemini-cli'] as const) { + assert.equal( + GENERATED_MODEL_PRICING.some(({ modelKey }) => modelKey.startsWith(`${providerType}:`)), + false, + `${providerType} must not inherit public API prices`, + ); + } +}); diff --git a/packages/runtime/src/context-budget-policy.ts b/packages/runtime/src/context-budget-policy.ts index 5d09e7ffdb1..a204813a3db 100644 --- a/packages/runtime/src/context-budget-policy.ts +++ b/packages/runtime/src/context-budget-policy.ts @@ -422,16 +422,20 @@ export function resolveSelectedModelContextWindow( if (declared !== undefined) return declared; const model = connection.models?.find((candidate) => candidate.id === selectedModelId); const metadata = lookupModelMetadata(connection.providerType, selectedModelId); - return ( - positiveInputLimit(model?.inputLimit) ?? - positiveInputLimit(metadata?.inputLimit) ?? - model?.contextWindow ?? - metadata?.contextWindow - ); + // Provider/access-path facts outrank static metadata. Within one source, + // use the narrowest positive bound: models.dev's input limit can be lower + // than its total context window, while an access path can expose a narrower + // context window than the public catalog. + const modelLimit = narrowestPositiveLimit(model?.contextWindow, model?.inputLimit); + const metadataLimit = narrowestPositiveLimit(metadata.contextWindow, metadata.inputLimit); + return modelLimit ?? metadataLimit; } -function positiveInputLimit(value: number | undefined): number | undefined { - return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : undefined; +function narrowestPositiveLimit(...values: Array): number | undefined { + const positiveValues = values.filter( + (value): value is number => typeof value === 'number' && Number.isFinite(value) && value > 0, + ); + return positiveValues.length > 0 ? Math.min(...positiveValues) : undefined; } export interface ContextBudgetCapacity { diff --git a/packages/runtime/src/telemetry/model-pricing.generated.ts b/packages/runtime/src/telemetry/model-pricing.generated.ts index 8b098c67251..fefcdfdb727 100644 --- a/packages/runtime/src/telemetry/model-pricing.generated.ts +++ b/packages/runtime/src/telemetry/model-pricing.generated.ts @@ -181,421 +181,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheWriteUsdPer1M: 2.5, }, { modelKey: 'alibaba:qwq-plus', inputUsdPer1M: 0.8, outputUsdPer1M: 2.4 }, - { - modelKey: 'alibaba-coding-plan-cn:glm-4.7', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan-cn:glm-5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan-cn:kimi-k2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan-cn:MiniMax-M2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan-cn:qwen3-coder-next', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan-cn:qwen3-coder-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan-cn:qwen3-max-2026-01-23', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan-cn:qwen3.5-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan-cn:qwen3.6-flash', - inputUsdPer1M: 0.1875, - outputUsdPer1M: 1.125, - cacheWriteUsdPer1M: 0.234375, - }, - { - modelKey: 'alibaba-coding-plan-cn:qwen3.6-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan-cn:qwen3.7-max', - inputUsdPer1M: 2.5, - outputUsdPer1M: 7.5, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 3.125, - }, - { - modelKey: 'alibaba-coding-plan-cn:qwen3.7-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan:glm-4.7', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan:glm-5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan:kimi-k2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan:MiniMax-M2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan:qwen3-coder-next', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan:qwen3-coder-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan:qwen3-max-2026-01-23', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan:qwen3.5-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan:qwen3.6-flash', - inputUsdPer1M: 0.1875, - outputUsdPer1M: 1.125, - cacheWriteUsdPer1M: 0.234375, - }, - { - modelKey: 'alibaba-coding-plan:qwen3.6-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-coding-plan:qwen3.7-max', - inputUsdPer1M: 2.5, - outputUsdPer1M: 7.5, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 3.125, - }, - { - modelKey: 'alibaba-coding-plan:qwen3.7-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { modelKey: 'alibaba-token-plan-cn:deepseek-v3.2', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'alibaba-token-plan-cn:deepseek-v4-flash', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:deepseek-v4-flash-0731', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:deepseek-v4-pro', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:glm-5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:glm-5.1', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:glm-5.2', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { modelKey: 'alibaba-token-plan-cn:happyhorse-1.1-i2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'alibaba-token-plan-cn:happyhorse-1.1-r2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'alibaba-token-plan-cn:happyhorse-1.1-t2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'alibaba-token-plan-cn:kimi-k2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:kimi-k2.6', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:kimi-k2.7-code', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:MiniMax-M2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { modelKey: 'alibaba-token-plan-cn:qwen-image-2.0', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'alibaba-token-plan-cn:qwen-image-2.0-pro', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'alibaba-token-plan-cn:qwen3.6-flash', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:qwen3.6-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:qwen3.7-max', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:qwen3.7-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:qwen3.8-max', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan-cn:qwen3.8-max-preview', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { modelKey: 'alibaba-token-plan-cn:wan2.7-image', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'alibaba-token-plan-cn:wan2.7-image-pro', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'alibaba-token-plan:deepseek-v3.2', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'alibaba-token-plan:deepseek-v4-flash', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:deepseek-v4-flash-0731', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:deepseek-v4-pro', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:glm-5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:glm-5.1', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:glm-5.2', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { modelKey: 'alibaba-token-plan:happyhorse-1.1-i2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'alibaba-token-plan:happyhorse-1.1-r2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'alibaba-token-plan:happyhorse-1.1-t2v', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'alibaba-token-plan:kimi-k2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:kimi-k2.6', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:kimi-k2.7-code', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:MiniMax-M2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { modelKey: 'alibaba-token-plan:qwen-image-2.0', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'alibaba-token-plan:qwen-image-2.0-pro', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'alibaba-token-plan:qwen3.6-flash', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:qwen3.6-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:qwen3.7-max', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:qwen3.7-plus', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:qwen3.8-max', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'alibaba-token-plan:qwen3.8-max-preview', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { modelKey: 'alibaba-token-plan:wan2.7-image', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'alibaba-token-plan:wan2.7-image-pro', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'cerebras:gemma-4-31b', inputUsdPer1M: 0.99, outputUsdPer1M: 1.49 }, - { modelKey: 'cerebras:gpt-oss-120b', inputUsdPer1M: 0.35, outputUsdPer1M: 0.75 }, - { - modelKey: 'cerebras:zai-glm-4.7', - inputUsdPer1M: 2.25, - outputUsdPer1M: 2.75, - cacheReadUsdPer1M: 2.25, - cacheWriteUsdPer1M: 0, - }, { modelKey: 'cohere:command-a-03-2025', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, { modelKey: 'cohere:command-a-plus-05-2026', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, { modelKey: 'cohere:command-a-reasoning-08-2025', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, @@ -1002,275 +587,83 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 4.4, cacheReadUsdPer1M: 0.14, }, - { - modelKey: 'fireworks-ai:accounts/fireworks/models/gpt-oss-120b', - inputUsdPer1M: 0.15, - outputUsdPer1M: 0.6, - cacheReadUsdPer1M: 0.015, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/models/gpt-oss-20b', - inputUsdPer1M: 0.07, - outputUsdPer1M: 0.3, - cacheReadUsdPer1M: 0.035, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/models/kimi-k2p6', - inputUsdPer1M: 0.95, - outputUsdPer1M: 4, - cacheReadUsdPer1M: 0.16, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/models/kimi-k2p7-code', - inputUsdPer1M: 0.95, - outputUsdPer1M: 4, - cacheReadUsdPer1M: 0.19, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/models/kimi-k3', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/models/minimax-m2p7', - inputUsdPer1M: 0.3, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.06, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/models/minimax-m3', - inputUsdPer1M: 0.3, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.06, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/models/qwen3p7-plus', - inputUsdPer1M: 0.4, - outputUsdPer1M: 1.6, - cacheReadUsdPer1M: 0.08, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/routers/glm-5p2-fast', - inputUsdPer1M: 2.1, - outputUsdPer1M: 6.6, - cacheReadUsdPer1M: 0.21, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k2p6-fast', - inputUsdPer1M: 2, - outputUsdPer1M: 8, - cacheReadUsdPer1M: 0.3, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k2p6-turbo', - inputUsdPer1M: 2, - outputUsdPer1M: 8, - cacheReadUsdPer1M: 0.3, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k2p7-code-fast', - inputUsdPer1M: 1.9, - outputUsdPer1M: 8, - cacheReadUsdPer1M: 0.38, - }, - { - modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k3-fast', - inputUsdPer1M: 4.5, - outputUsdPer1M: 22.5, - cacheReadUsdPer1M: 0.45, - }, - { - modelKey: 'github-copilot:claude-fable-5', - inputUsdPer1M: 10, - outputUsdPer1M: 50, - cacheReadUsdPer1M: 1, - cacheWriteUsdPer1M: 12.5, - }, - { - modelKey: 'github-copilot:claude-haiku-4.5', - inputUsdPer1M: 1, - outputUsdPer1M: 5, - cacheReadUsdPer1M: 0.1, - cacheWriteUsdPer1M: 1.25, - }, - { - modelKey: 'github-copilot:claude-opus-4.5', - inputUsdPer1M: 5, - outputUsdPer1M: 25, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'github-copilot:claude-opus-4.6', - inputUsdPer1M: 5, - outputUsdPer1M: 25, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'github-copilot:claude-opus-4.7', - inputUsdPer1M: 5, - outputUsdPer1M: 25, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'github-copilot:claude-opus-4.8', - inputUsdPer1M: 5, - outputUsdPer1M: 25, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'github-copilot:claude-opus-5', - inputUsdPer1M: 5, - outputUsdPer1M: 25, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'github-copilot:claude-sonnet-4', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - cacheWriteUsdPer1M: 3.75, - }, - { - modelKey: 'github-copilot:claude-sonnet-4.5', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - cacheWriteUsdPer1M: 3.75, - }, - { - modelKey: 'github-copilot:claude-sonnet-4.6', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - cacheWriteUsdPer1M: 3.75, - }, - { - modelKey: 'github-copilot:claude-sonnet-5', - inputUsdPer1M: 2, - outputUsdPer1M: 10, - cacheReadUsdPer1M: 0.2, - cacheWriteUsdPer1M: 2.5, - }, - { - modelKey: 'github-copilot:gemini-3.1-pro-preview', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'github-copilot:gemini-3.5-flash', - inputUsdPer1M: 1.5, - outputUsdPer1M: 9, - cacheReadUsdPer1M: 0.15, - }, - { - modelKey: 'github-copilot:gemini-3.6-flash', - inputUsdPer1M: 1.5, - outputUsdPer1M: 7.5, - cacheReadUsdPer1M: 0.15, - }, - { - modelKey: 'github-copilot:gpt-4.1', - inputUsdPer1M: 2, - outputUsdPer1M: 8, - cacheReadUsdPer1M: 0.5, - }, - { - modelKey: 'github-copilot:gpt-5-mini', - inputUsdPer1M: 0.25, - outputUsdPer1M: 2, - cacheReadUsdPer1M: 0.025, - }, - { - modelKey: 'github-copilot:gpt-5.2', - inputUsdPer1M: 1.75, - outputUsdPer1M: 14, - cacheReadUsdPer1M: 0.175, - }, - { - modelKey: 'github-copilot:gpt-5.2-codex', - inputUsdPer1M: 1.75, - outputUsdPer1M: 14, - cacheReadUsdPer1M: 0.175, + { + modelKey: 'fireworks-ai:accounts/fireworks/models/gpt-oss-120b', + inputUsdPer1M: 0.15, + outputUsdPer1M: 0.6, + cacheReadUsdPer1M: 0.015, }, { - modelKey: 'github-copilot:gpt-5.3-codex', - inputUsdPer1M: 1.75, - outputUsdPer1M: 14, - cacheReadUsdPer1M: 0.175, + modelKey: 'fireworks-ai:accounts/fireworks/models/gpt-oss-20b', + inputUsdPer1M: 0.07, + outputUsdPer1M: 0.3, + cacheReadUsdPer1M: 0.035, }, { - modelKey: 'github-copilot:gpt-5.4', - inputUsdPer1M: 2.5, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.25, + modelKey: 'fireworks-ai:accounts/fireworks/models/kimi-k2p6', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.16, }, { - modelKey: 'github-copilot:gpt-5.4-mini', - inputUsdPer1M: 0.75, - outputUsdPer1M: 4.5, - cacheReadUsdPer1M: 0.075, + modelKey: 'fireworks-ai:accounts/fireworks/models/kimi-k2p7-code', + inputUsdPer1M: 0.95, + outputUsdPer1M: 4, + cacheReadUsdPer1M: 0.19, }, { - modelKey: 'github-copilot:gpt-5.4-nano', - inputUsdPer1M: 0.2, - outputUsdPer1M: 1.25, - cacheReadUsdPer1M: 0.02, + modelKey: 'fireworks-ai:accounts/fireworks/models/kimi-k3', + inputUsdPer1M: 3, + outputUsdPer1M: 15, + cacheReadUsdPer1M: 0.3, }, { - modelKey: 'github-copilot:gpt-5.5', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, + modelKey: 'fireworks-ai:accounts/fireworks/models/minimax-m2p7', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, }, { - modelKey: 'github-copilot:gpt-5.6-luna', - inputUsdPer1M: 0.2, + modelKey: 'fireworks-ai:accounts/fireworks/models/minimax-m3', + inputUsdPer1M: 0.3, outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.02, + cacheReadUsdPer1M: 0.06, }, { - modelKey: 'github-copilot:gpt-5.6-sol', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, + modelKey: 'fireworks-ai:accounts/fireworks/models/qwen3p7-plus', + inputUsdPer1M: 0.4, + outputUsdPer1M: 1.6, + cacheReadUsdPer1M: 0.08, }, { - modelKey: 'github-copilot:gpt-5.6-terra', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, + modelKey: 'fireworks-ai:accounts/fireworks/routers/glm-5p2-fast', + inputUsdPer1M: 2.1, + outputUsdPer1M: 6.6, + cacheReadUsdPer1M: 0.21, }, { - modelKey: 'github-copilot:grok-4.5', + modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k2p6-fast', inputUsdPer1M: 2, - outputUsdPer1M: 6, - cacheReadUsdPer1M: 0.5, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.3, }, { - modelKey: 'github-copilot:kimi-k2.7-code', - inputUsdPer1M: 0.95, - outputUsdPer1M: 4, - cacheReadUsdPer1M: 0.19, + modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k2p6-turbo', + inputUsdPer1M: 2, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.3, }, { - modelKey: 'github-copilot:kimi-k3', - inputUsdPer1M: 0.95, - outputUsdPer1M: 4, - cacheReadUsdPer1M: 0.19, + modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k2p7-code-fast', + inputUsdPer1M: 1.9, + outputUsdPer1M: 8, + cacheReadUsdPer1M: 0.38, }, { - modelKey: 'github-copilot:mai-code-1-flash-picker', - inputUsdPer1M: 0.75, - outputUsdPer1M: 4.5, - cacheReadUsdPer1M: 0.075, + modelKey: 'fireworks-ai:accounts/fireworks/routers/kimi-k3-fast', + inputUsdPer1M: 4.5, + outputUsdPer1M: 22.5, + cacheReadUsdPer1M: 0.45, }, { modelKey: 'google:deep-research-max-preview-04-2026', @@ -1402,152 +795,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ { modelKey: 'google:gemini-robotics-er-1.6-preview', inputUsdPer1M: 1, outputUsdPer1M: 5 }, { modelKey: 'google:lyria-3-clip-preview', inputUsdPer1M: 0, outputUsdPer1M: 0 }, { modelKey: 'google:lyria-3-pro-preview', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'gemini-cli:deep-research-max-preview-04-2026', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'gemini-cli:deep-research-preview-04-2026', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'gemini-cli:gemini-2.0-flash', - inputUsdPer1M: 0.1, - outputUsdPer1M: 0.4, - cacheReadUsdPer1M: 0.025, - }, - { modelKey: 'gemini-cli:gemini-2.0-flash-lite', inputUsdPer1M: 0.075, outputUsdPer1M: 0.3 }, - { - modelKey: 'gemini-cli:gemini-2.5-computer-use-preview-10-2025', - inputUsdPer1M: 1.25, - outputUsdPer1M: 10, - }, - { - modelKey: 'gemini-cli:gemini-2.5-flash', - inputUsdPer1M: 0.3, - outputUsdPer1M: 2.5, - cacheReadUsdPer1M: 0.03, - }, - { - modelKey: 'gemini-cli:gemini-2.5-flash-image', - inputUsdPer1M: 0.3, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.075, - }, - { - modelKey: 'gemini-cli:gemini-2.5-flash-lite', - inputUsdPer1M: 0.1, - outputUsdPer1M: 0.4, - cacheReadUsdPer1M: 0.01, - }, - { modelKey: 'gemini-cli:gemini-2.5-flash-preview-tts', inputUsdPer1M: 0.5, outputUsdPer1M: 10 }, - { - modelKey: 'gemini-cli:gemini-2.5-pro', - inputUsdPer1M: 1.25, - outputUsdPer1M: 10, - cacheReadUsdPer1M: 0.125, - }, - { modelKey: 'gemini-cli:gemini-2.5-pro-preview-tts', inputUsdPer1M: 1, outputUsdPer1M: 20 }, - { - modelKey: 'gemini-cli:gemini-3-flash-preview', - inputUsdPer1M: 0.5, - outputUsdPer1M: 3, - cacheReadUsdPer1M: 0.05, - }, - { modelKey: 'gemini-cli:gemini-3-pro-image', inputUsdPer1M: 2, outputUsdPer1M: 120 }, - { modelKey: 'gemini-cli:gemini-3-pro-image-preview', inputUsdPer1M: 2, outputUsdPer1M: 120 }, - { - modelKey: 'gemini-cli:gemini-3-pro-preview', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, - { modelKey: 'gemini-cli:gemini-3.1-flash-image', inputUsdPer1M: 0.5, outputUsdPer1M: 60 }, - { modelKey: 'gemini-cli:gemini-3.1-flash-image-preview', inputUsdPer1M: 0.5, outputUsdPer1M: 60 }, - { - modelKey: 'gemini-cli:gemini-3.1-flash-lite', - inputUsdPer1M: 0.25, - outputUsdPer1M: 1.5, - cacheReadUsdPer1M: 0.025, - }, - { modelKey: 'gemini-cli:gemini-3.1-flash-lite-image', inputUsdPer1M: 0.25, outputUsdPer1M: 30 }, - { - modelKey: 'gemini-cli:gemini-3.1-flash-lite-preview', - inputUsdPer1M: 0.25, - outputUsdPer1M: 1.5, - cacheReadUsdPer1M: 0.025, - }, - { - modelKey: 'gemini-cli:gemini-3.1-flash-live-preview', - inputUsdPer1M: 0.75, - outputUsdPer1M: 4.5, - }, - { modelKey: 'gemini-cli:gemini-3.1-flash-tts-preview', inputUsdPer1M: 1, outputUsdPer1M: 20 }, - { - modelKey: 'gemini-cli:gemini-3.1-pro-preview', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'gemini-cli:gemini-3.1-pro-preview-customtools', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'gemini-cli:gemini-3.5-flash', - inputUsdPer1M: 1.5, - outputUsdPer1M: 9, - cacheReadUsdPer1M: 0.15, - }, - { - modelKey: 'gemini-cli:gemini-3.5-flash-lite', - inputUsdPer1M: 0.3, - outputUsdPer1M: 2.5, - cacheReadUsdPer1M: 0.03, - }, - { - modelKey: 'gemini-cli:gemini-3.5-live-translate-preview', - inputUsdPer1M: 3.5, - outputUsdPer1M: 21, - }, - { - modelKey: 'gemini-cli:gemini-3.6-flash', - inputUsdPer1M: 1.5, - outputUsdPer1M: 7.5, - cacheReadUsdPer1M: 0.15, - }, - { modelKey: 'gemini-cli:gemini-embedding-001', inputUsdPer1M: 0.15, outputUsdPer1M: 0 }, - { modelKey: 'gemini-cli:gemini-embedding-2', inputUsdPer1M: 0.2, outputUsdPer1M: 0 }, - { - modelKey: 'gemini-cli:gemini-flash-latest', - inputUsdPer1M: 1.5, - outputUsdPer1M: 9, - cacheReadUsdPer1M: 0.15, - }, - { - modelKey: 'gemini-cli:gemini-flash-lite-latest', - inputUsdPer1M: 0.25, - outputUsdPer1M: 1.5, - cacheReadUsdPer1M: 0.025, - }, - { modelKey: 'gemini-cli:gemini-omni-flash-preview', inputUsdPer1M: 1.5, outputUsdPer1M: 17.5 }, - { modelKey: 'gemini-cli:gemini-robotics-er-1.6-preview', inputUsdPer1M: 1, outputUsdPer1M: 5 }, - { modelKey: 'gemini-cli:lyria-3-clip-preview', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'gemini-cli:lyria-3-pro-preview', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'groq:allam-2-7b', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { modelKey: 'groq:llama-3.1-8b-instant', inputUsdPer1M: 0.05, outputUsdPer1M: 0.08 }, - { modelKey: 'groq:llama-3.3-70b-versatile', inputUsdPer1M: 0.59, outputUsdPer1M: 0.79 }, - { - modelKey: 'groq:meta-llama/llama-prompt-guard-2-22m', - inputUsdPer1M: 0.03, - outputUsdPer1M: 0.03, - }, { modelKey: 'groq:meta-llama/llama-prompt-guard-2-86m', inputUsdPer1M: 0.04, @@ -1717,34 +964,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.2, }, { modelKey: 'huggingface:zai-org/GLM-5.2', inputUsdPer1M: 1.4, outputUsdPer1M: 4.4 }, - { - modelKey: 'kimi-coding-plan:k3', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'kimi-coding-plan:k3-256k', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'kimi-coding-plan:kimi-for-coding', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'kimi-coding-plan:kimi-for-coding-highspeed', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, { modelKey: 'MiniMax:MiniMax-M2', inputUsdPer1M: 0.3, outputUsdPer1M: 1.2 }, { modelKey: 'MiniMax:MiniMax-M2.1', @@ -1768,67 +987,24 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheWriteUsdPer1M: 0.375, }, { - modelKey: 'MiniMax:MiniMax-M2.7', - inputUsdPer1M: 0.3, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.06, - cacheWriteUsdPer1M: 0.375, - }, - { - modelKey: 'MiniMax:MiniMax-M2.7-highspeed', - inputUsdPer1M: 0.6, - outputUsdPer1M: 2.4, - cacheReadUsdPer1M: 0.06, - cacheWriteUsdPer1M: 0.375, - }, - { - modelKey: 'MiniMax:MiniMax-M3', - inputUsdPer1M: 0.3, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.06, - }, - { modelKey: 'minimax-coding-plan:MiniMax-M2', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'minimax-coding-plan:MiniMax-M2.1', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'minimax-coding-plan:MiniMax-M2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'minimax-coding-plan:MiniMax-M2.5-highspeed', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'minimax-coding-plan:MiniMax-M2.7', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, + modelKey: 'MiniMax:MiniMax-M2.7', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, + cacheWriteUsdPer1M: 0.375, }, { - modelKey: 'minimax-coding-plan:MiniMax-M2.7-highspeed', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, + modelKey: 'MiniMax:MiniMax-M2.7-highspeed', + inputUsdPer1M: 0.6, + outputUsdPer1M: 2.4, + cacheReadUsdPer1M: 0.06, + cacheWriteUsdPer1M: 0.375, }, { - modelKey: 'minimax-coding-plan:MiniMax-M3', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, + modelKey: 'MiniMax:MiniMax-M3', + inputUsdPer1M: 0.3, + outputUsdPer1M: 1.2, + cacheReadUsdPer1M: 0.06, }, { modelKey: 'mistral:codestral-latest', inputUsdPer1M: 0.3, outputUsdPer1M: 0.9 }, { modelKey: 'mistral:devstral-2512', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, @@ -2674,141 +1850,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ }, { modelKey: 'opencode:ring-2.6-1t-free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, { modelKey: 'opencode:trinity-large-preview-free', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'opencode-go:deepseek-v4-flash', - inputUsdPer1M: 0.14, - outputUsdPer1M: 0.28, - cacheReadUsdPer1M: 0.0028, - }, - { - modelKey: 'opencode-go:deepseek-v4-pro', - inputUsdPer1M: 0.435, - outputUsdPer1M: 0.87, - cacheReadUsdPer1M: 0.003625, - }, - { modelKey: 'opencode-go:glm-5', inputUsdPer1M: 1, outputUsdPer1M: 3.2, cacheReadUsdPer1M: 0.2 }, - { - modelKey: 'opencode-go:glm-5.1', - inputUsdPer1M: 1.4, - outputUsdPer1M: 4.4, - cacheReadUsdPer1M: 0.26, - }, - { - modelKey: 'opencode-go:glm-5.2', - inputUsdPer1M: 1.4, - outputUsdPer1M: 4.4, - cacheReadUsdPer1M: 0.26, - }, - { - modelKey: 'opencode-go:gpt-5.6-luna', - inputUsdPer1M: 0.1, - outputUsdPer1M: 0.6, - cacheReadUsdPer1M: 0.01, - cacheWriteUsdPer1M: 0.125, - }, - { modelKey: 'opencode-go:grok-4.5', inputUsdPer1M: 2, outputUsdPer1M: 6, cacheReadUsdPer1M: 0.5 }, - { - modelKey: 'opencode-go:hy3', - inputUsdPer1M: 0.14, - outputUsdPer1M: 0.58, - cacheReadUsdPer1M: 0.035, - }, - { - modelKey: 'opencode-go:kimi-k2.5', - inputUsdPer1M: 0.6, - outputUsdPer1M: 3, - cacheReadUsdPer1M: 0.1, - }, - { - modelKey: 'opencode-go:kimi-k2.6', - inputUsdPer1M: 0.95, - outputUsdPer1M: 4, - cacheReadUsdPer1M: 0.16, - }, - { - modelKey: 'opencode-go:kimi-k2.7-code', - inputUsdPer1M: 0.95, - outputUsdPer1M: 4, - cacheReadUsdPer1M: 0.19, - }, - { modelKey: 'opencode-go:kimi-k3', inputUsdPer1M: 3, outputUsdPer1M: 15, cacheReadUsdPer1M: 0.3 }, - { - modelKey: 'opencode-go:mimo-v2-omni', - inputUsdPer1M: 0.4, - outputUsdPer1M: 2, - cacheReadUsdPer1M: 0.08, - }, - { - modelKey: 'opencode-go:mimo-v2-pro', - inputUsdPer1M: 1, - outputUsdPer1M: 3, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'opencode-go:mimo-v2.5', - inputUsdPer1M: 0.14, - outputUsdPer1M: 0.28, - cacheReadUsdPer1M: 0.0028, - }, - { - modelKey: 'opencode-go:mimo-v2.5-pro', - inputUsdPer1M: 0.435, - outputUsdPer1M: 0.87, - cacheReadUsdPer1M: 0.003625, - }, - { - modelKey: 'opencode-go:minimax-m2.5', - inputUsdPer1M: 0.3, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.03, - }, - { - modelKey: 'opencode-go:minimax-m2.7', - inputUsdPer1M: 0.3, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.06, - }, - { - modelKey: 'opencode-go:minimax-m3', - inputUsdPer1M: 0.3, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.06, - }, - { - modelKey: 'opencode-go:qwen3.5-plus', - inputUsdPer1M: 0.2, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.02, - cacheWriteUsdPer1M: 0.25, - }, - { - modelKey: 'opencode-go:qwen3.6-plus', - inputUsdPer1M: 0.5, - outputUsdPer1M: 3, - cacheReadUsdPer1M: 0.05, - cacheWriteUsdPer1M: 0.625, - }, - { - modelKey: 'opencode-go:qwen3.7-max', - inputUsdPer1M: 2.5, - outputUsdPer1M: 7.5, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 3.125, - }, - { - modelKey: 'opencode-go:qwen3.7-plus', - inputUsdPer1M: 0.4, - outputUsdPer1M: 1.6, - cacheReadUsdPer1M: 0.04, - cacheWriteUsdPer1M: 0.5, - }, - { - modelKey: 'opencode-go:qwen3.8-max', - inputUsdPer1M: 2, - outputUsdPer1M: 6, - cacheReadUsdPer1M: 0.25, - cacheWriteUsdPer1M: 2.5, - }, { modelKey: 'openrouter:~anthropic/claude-fable-latest', inputUsdPer1M: 10, @@ -4634,69 +3675,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 4.4, cacheReadUsdPer1M: 0.26, }, - { - modelKey: 'tencent-coding-plan:glm-5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'tencent-coding-plan:hunyuan-2.0-instruct', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'tencent-coding-plan:hunyuan-2.0-thinking', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'tencent-coding-plan:hunyuan-t1', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'tencent-coding-plan:hunyuan-turbos', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'tencent-coding-plan:kimi-k2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'tencent-coding-plan:minimax-m2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'tencent-coding-plan:tc-code-latest', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, - { - modelKey: 'tencent-token-plan:hy3', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - cacheWriteUsdPer1M: 0, - }, { modelKey: 'tencent-tokenhub:hy3', inputUsdPer1M: 0, @@ -5778,96 +4756,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 2.61, cacheReadUsdPer1M: 0.0108, }, - { - modelKey: 'xiaomi-token-plan-cn:mimo-v2-pro', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - }, - { modelKey: 'xiaomi-token-plan-cn:mimo-v2-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'xiaomi-token-plan-cn:mimo-v2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - }, - { - modelKey: 'xiaomi-token-plan-cn:mimo-v2.5-pro', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - }, - { modelKey: 'xiaomi-token-plan-cn:mimo-v2.5-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'xiaomi-token-plan-cn:mimo-v2.5-tts-voiceclone', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - }, - { - modelKey: 'xiaomi-token-plan-cn:mimo-v2.5-tts-voicedesign', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - }, - { - modelKey: 'xiaomi-token-plan-sgp:mimo-v2-pro', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - }, - { modelKey: 'xiaomi-token-plan-sgp:mimo-v2-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'xiaomi-token-plan-sgp:mimo-v2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - }, - { - modelKey: 'xiaomi-token-plan-sgp:mimo-v2.5-pro', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - }, - { modelKey: 'xiaomi-token-plan-sgp:mimo-v2.5-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'xiaomi-token-plan-sgp:mimo-v2.5-tts-voiceclone', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - }, - { - modelKey: 'xiaomi-token-plan-sgp:mimo-v2.5-tts-voicedesign', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - }, - { - modelKey: 'xiaomi-token-plan-ams:mimo-v2-pro', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - }, - { modelKey: 'xiaomi-token-plan-ams:mimo-v2-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'xiaomi-token-plan-ams:mimo-v2.5', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - }, - { - modelKey: 'xiaomi-token-plan-ams:mimo-v2.5-pro', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - cacheReadUsdPer1M: 0, - }, - { modelKey: 'xiaomi-token-plan-ams:mimo-v2.5-tts', inputUsdPer1M: 0, outputUsdPer1M: 0 }, - { - modelKey: 'xiaomi-token-plan-ams:mimo-v2.5-tts-voiceclone', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - }, - { - modelKey: 'xiaomi-token-plan-ams:mimo-v2.5-tts-voicedesign', - inputUsdPer1M: 0, - outputUsdPer1M: 0, - }, { modelKey: 'zai:glm-4.5', inputUsdPer1M: 0.6, diff --git a/scripts/sync-model-metadata.mjs b/scripts/sync-model-metadata.mjs index 089ec9d1f0b..b0b0782824b 100644 --- a/scripts/sync-model-metadata.mjs +++ b/scripts/sync-model-metadata.mjs @@ -4,7 +4,33 @@ import { pathToFileURL } from 'node:url'; const SOURCE_URL = 'https://models.dev/api.json'; const DEFAULT_OUTPUT = 'packages/core/src/model-metadata.generated.ts'; const DEFAULT_PRICING_OUTPUT = 'packages/runtime/src/telemetry/model-pricing.generated.ts'; -const PRICING_EXCLUDED_PROVIDER_TYPES = new Set(['zai-coding-plan', 'MiniMax-cn']); +// models.dev cost fields describe the catalog provider's public API. They are +// not automatically the rate a user pays on an OAuth, free, subscription, or +// plan access path. Such paths stay unpriced unless builtin-pricing.ts carries +// an explicit rate for that exact path. +export const PRICING_EXCLUDED_PROVIDER_TYPES = new Set([ + 'alibaba-coding-plan-cn', + 'alibaba-coding-plan', + 'alibaba-token-plan-cn', + 'alibaba-token-plan', + 'github-copilot', + 'gemini-cli', + 'kimi-coding-plan', + 'minimax-coding-plan', + 'MiniMax-cn', + 'opencode-free', + 'opencode-go', + 'stepfun-ai-step-plan', + 'stepfun-step-plan', + 'tencent-coding-plan', + 'tencent-token-plan', + 'volcengine-agent-plan', + 'volcengine-coding-plan', + 'xiaomi-token-plan-ams', + 'xiaomi-token-plan-cn', + 'xiaomi-token-plan-sgp', + 'zai-coding-plan', +]); export const PROVIDERS = { anthropic: 'anthropic', alibaba: 'alibaba', diff --git a/scripts/sync-model-metadata.test.mjs b/scripts/sync-model-metadata.test.mjs index 3179113e4e8..e7e58298f8b 100644 --- a/scripts/sync-model-metadata.test.mjs +++ b/scripts/sync-model-metadata.test.mjs @@ -1,7 +1,12 @@ import assert from 'node:assert/strict'; import test from 'node:test'; -import { toMetadata, toPricing, PROVIDERS } from './sync-model-metadata.mjs'; +import { + PRICING_EXCLUDED_PROVIDER_TYPES, + PROVIDERS, + toMetadata, + toPricing, +} from './sync-model-metadata.mjs'; const PROVIDER = { doc: 'https://example.com/docs' }; const BASE_MODEL = { @@ -69,6 +74,12 @@ test('models.dev pricing keeps base rates and ignores tiered rates', () => { ); }); +test('subscription and plan access paths do not inherit public API pricing', () => { + assert.equal(PRICING_EXCLUDED_PROVIDER_TYPES.has('github-copilot'), true); + assert.equal(PRICING_EXCLUDED_PROVIDER_TYPES.has('gemini-cli'), true); + assert.equal(PRICING_EXCLUDED_PROVIDER_TYPES.has('zai-coding-plan'), true); +}); + test('models.dev reasoning_options toggle passes through to thinkingOptions', () => { const metadata = toMetadata('test', 'm', PROVIDER, { ...BASE_MODEL, @@ -152,6 +163,20 @@ test('main() syncs only the mapped providers into the generated snapshot', async cost: { input: 1, output: 2 }, reasoning_options: [{ type: 'toggle' }, { type: 'effort', values: ['low', 'high', 'max'] }], }; + catalog['github-copilot'].models['gpt-5.5'] = { + name: 'GPT-5.5', + limit: { context: 400_000, input: 272_000, output: 128_000 }, + reasoning: true, + tool_call: true, + cost: { input: 5, output: 30 }, + }; + catalog.google.models['gemini-2.5-pro'] = { + name: 'Gemini 2.5 Pro', + limit: { context: 1_000_000, input: 900_000, output: 64_000 }, + reasoning: true, + tool_call: true, + cost: { input: 1.25, output: 10 }, + }; catalog['unmapped-provider'] = { id: 'unmapped-provider', name: 'Unmapped', @@ -185,7 +210,10 @@ test('main() syncs only the mapped providers into the generated snapshot', async assert.match(out, /"thinkingOptions":\{"efforts":\["low","high","max"\],"toggle":true\}/); assert.match(out, /"kimi-for-coding": \{/); assert.match(out, /"kimi-for-coding": \{"api":"https:\/\/api\.kimi\.com\/coding\/v1"\}/); - assert.match(pricing, /"modelKey":"kimi-coding-plan:k3","inputUsdPer1M":1,"outputUsdPer1M":2/); + assert.doesNotMatch(pricing, /"modelKey":"kimi-coding-plan:k3"/); + assert.doesNotMatch(pricing, /"modelKey":"github-copilot:gpt-5\.5"/); + assert.match(pricing, /"modelKey":"google:gemini-2\.5-pro","inputUsdPer1M":1\.25/); + assert.doesNotMatch(pricing, /"modelKey":"gemini-cli:gemini-2\.5-pro"/); // The unmapped provider must appear only in the directory (the complete // upstream catalog), never as a snapshot segment or provider fact. const directoryStart = out.indexOf('GENERATED_MODELS_DEV_DIRECTORY'); From 7a20e72e6fd247e29fec2eaa6dbfae9cb982ac71 Mon Sep 17 00:00:00 2001 From: biny Date: Sat, 8 Aug 2026 15:17:33 +0800 Subject: [PATCH 4/5] test(runtime): assert relay context declaration precedence --- .../runtime/src/__tests__/context-budget-model-facts.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/runtime/src/__tests__/context-budget-model-facts.test.ts b/packages/runtime/src/__tests__/context-budget-model-facts.test.ts index ba6738e9194..a8cc5de021c 100644 --- a/packages/runtime/src/__tests__/context-budget-model-facts.test.ts +++ b/packages/runtime/src/__tests__/context-budget-model-facts.test.ts @@ -60,8 +60,8 @@ test('a relay user declaration remains ahead of runtime and static model facts', providerType: 'openai-compatible' as const, defaultModel: 'relay-model', models: [{ id: 'relay-model', contextWindow: 64_000, inputLimit: 128_000 }], - relayModelProfiles: { 'relay-model': { contextWindow: 64_000 } }, + relayModelProfiles: { 'relay-model': { contextWindow: 32_000 } }, }; - assert.equal(resolveSelectedModelContextWindow(connection, undefined), 64_000); + assert.equal(resolveSelectedModelContextWindow(connection, undefined), 32_000); }); From 9dc7ae2e61de0d60e9a2733d256716a66cc3fe33 Mon Sep 17 00:00:00 2001 From: biny Date: Sat, 8 Aug 2026 19:35:19 +0800 Subject: [PATCH 5/5] fix(runtime): skip unsupported tiered pricing --- .../src/__tests__/builtin-pricing.test.ts | 5 + .../models-dev-pricing-contract.test.ts | 10 + .../runtime/src/telemetry/builtin-pricing.ts | 7 - .../src/telemetry/model-pricing.generated.ts | 522 ------------------ scripts/sync-model-metadata.mjs | 10 + scripts/sync-model-metadata.test.mjs | 43 +- 6 files changed, 46 insertions(+), 551 deletions(-) diff --git a/packages/runtime/src/__tests__/builtin-pricing.test.ts b/packages/runtime/src/__tests__/builtin-pricing.test.ts index 1c68f2719b4..c319cc04456 100644 --- a/packages/runtime/src/__tests__/builtin-pricing.test.ts +++ b/packages/runtime/src/__tests__/builtin-pricing.test.ts @@ -23,3 +23,8 @@ test('subscription access paths stay unpriced instead of inheriting API rates', assert.equal(getBuiltinPricing('github-copilot:gpt-5.5'), null); assert.equal(getBuiltinPricing('gemini-cli:gemini-2.5-pro'), null); }); + +test('tiered models stay unpriced until runtime can select a tier', () => { + assert.equal(getBuiltinPricing('google:gemini-2.5-pro'), null); + assert.equal(getBuiltinPricing('MiniMax:MiniMax-M3'), null); +}); diff --git a/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts b/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts index 5b342743890..d89865666d2 100644 --- a/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts +++ b/packages/runtime/src/__tests__/models-dev-pricing-contract.test.ts @@ -52,3 +52,13 @@ test('subscription access paths have no generated API pricing', () => { ); } }); + +test('known tiered models have no generated base pricing', () => { + for (const modelKey of ['google:gemini-2.5-pro', 'openai:gpt-5.5'] as const) { + assert.equal( + GENERATED_MODEL_PRICING.some((pricing) => pricing.modelKey === modelKey), + false, + `${modelKey} must not publish a base rate while tier selection is unsupported`, + ); + } +}); diff --git a/packages/runtime/src/telemetry/builtin-pricing.ts b/packages/runtime/src/telemetry/builtin-pricing.ts index a1ec4cce882..2a795e0bb44 100644 --- a/packages/runtime/src/telemetry/builtin-pricing.ts +++ b/packages/runtime/src/telemetry/builtin-pricing.ts @@ -35,7 +35,6 @@ const LOCAL_PRICING_SUPPLEMENT: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.075, }, { modelKey: 'openai:o1', inputUsdPer1M: 15, outputUsdPer1M: 60, cacheReadUsdPer1M: 7.5 }, - { modelKey: 'google:gemini-2.5-pro', inputUsdPer1M: 1.25, outputUsdPer1M: 10 }, { modelKey: 'google:gemini-2.5-flash', inputUsdPer1M: 0.3, outputUsdPer1M: 2.5 }, { modelKey: 'deepseek:deepseek-chat', @@ -53,12 +52,6 @@ const LOCAL_PRICING_SUPPLEMENT: readonly PricingConfig[] = [ { modelKey: 'zai-coding-plan:glm-4.7', inputUsdPer1M: 0.6, outputUsdPer1M: 2.2 }, { modelKey: 'zai-coding-plan:glm-4.6', inputUsdPer1M: 0.6, outputUsdPer1M: 2.2 }, { modelKey: 'zai-coding-plan:glm-4.5-air', inputUsdPer1M: 0.2, outputUsdPer1M: 0.8 }, - { - modelKey: 'MiniMax:MiniMax-M3', - inputUsdPer1M: 0.3, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.06, - }, { modelKey: 'MiniMax-cn:MiniMax-M3', inputUsdPer1M: 0.3, diff --git a/packages/runtime/src/telemetry/model-pricing.generated.ts b/packages/runtime/src/telemetry/model-pricing.generated.ts index fefcdfdb727..5d8e24da0e1 100644 --- a/packages/runtime/src/telemetry/model-pricing.generated.ts +++ b/packages/runtime/src/telemetry/model-pricing.generated.ts @@ -152,13 +152,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.13, cacheWriteUsdPer1M: 1.625, }, - { - modelKey: 'alibaba:qwen3.6-plus', - inputUsdPer1M: 0.5, - outputUsdPer1M: 3, - cacheReadUsdPer1M: 0.05, - cacheWriteUsdPer1M: 0.625, - }, { modelKey: 'alibaba:qwen3.7-max', inputUsdPer1M: 2.5, @@ -166,13 +159,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.5, cacheWriteUsdPer1M: 3.125, }, - { - modelKey: 'alibaba:qwen3.7-plus', - inputUsdPer1M: 0.5, - outputUsdPer1M: 3, - cacheReadUsdPer1M: 0.05, - cacheWriteUsdPer1M: 0.625, - }, { modelKey: 'alibaba:qwen3.8-max', inputUsdPer1M: 2, @@ -427,12 +413,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 1, cacheReadUsdPer1M: 0.1, }, - { - modelKey: 'deepinfra:Qwen/Qwen3-Max', - inputUsdPer1M: 1.2, - outputUsdPer1M: 6, - cacheReadUsdPer1M: 0.24, - }, { modelKey: 'deepinfra:Qwen/Qwen3-Next-80B-A3B-Instruct', inputUsdPer1M: 0.09, @@ -455,12 +435,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ { modelKey: 'deepinfra:Qwen/Qwen3.5-9B', inputUsdPer1M: 0.1, outputUsdPer1M: 0.15 }, { modelKey: 'deepinfra:Qwen/Qwen3.6-27B', inputUsdPer1M: 0.32, outputUsdPer1M: 3.2 }, { modelKey: 'deepinfra:Qwen/Qwen3.6-35B-A3B', inputUsdPer1M: 0.1, outputUsdPer1M: 0.95 }, - { - modelKey: 'deepinfra:Qwen/Qwen3.7-Max', - inputUsdPer1M: 2.5, - outputUsdPer1M: 7.5, - cacheReadUsdPer1M: 0.5, - }, { modelKey: 'deepinfra:Qwen/Qwen3.8-Max', inputUsdPer1M: 1.65, @@ -665,18 +639,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 22.5, cacheReadUsdPer1M: 0.45, }, - { - modelKey: 'google:deep-research-max-preview-04-2026', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'google:deep-research-preview-04-2026', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, { modelKey: 'google:gemini-2.0-flash', inputUsdPer1M: 0.1, @@ -684,11 +646,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.025, }, { modelKey: 'google:gemini-2.0-flash-lite', inputUsdPer1M: 0.075, outputUsdPer1M: 0.3 }, - { - modelKey: 'google:gemini-2.5-computer-use-preview-10-2025', - inputUsdPer1M: 1.25, - outputUsdPer1M: 10, - }, { modelKey: 'google:gemini-2.5-flash', inputUsdPer1M: 0.3, @@ -708,12 +665,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.01, }, { modelKey: 'google:gemini-2.5-flash-preview-tts', inputUsdPer1M: 0.5, outputUsdPer1M: 10 }, - { - modelKey: 'google:gemini-2.5-pro', - inputUsdPer1M: 1.25, - outputUsdPer1M: 10, - cacheReadUsdPer1M: 0.125, - }, { modelKey: 'google:gemini-2.5-pro-preview-tts', inputUsdPer1M: 1, outputUsdPer1M: 20 }, { modelKey: 'google:gemini-3-flash-preview', @@ -723,12 +674,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ }, { modelKey: 'google:gemini-3-pro-image', inputUsdPer1M: 2, outputUsdPer1M: 120 }, { modelKey: 'google:gemini-3-pro-image-preview', inputUsdPer1M: 2, outputUsdPer1M: 120 }, - { - modelKey: 'google:gemini-3-pro-preview', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, { modelKey: 'google:gemini-3.1-flash-image', inputUsdPer1M: 0.5, outputUsdPer1M: 60 }, { modelKey: 'google:gemini-3.1-flash-image-preview', inputUsdPer1M: 0.5, outputUsdPer1M: 60 }, { @@ -746,18 +691,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ }, { modelKey: 'google:gemini-3.1-flash-live-preview', inputUsdPer1M: 0.75, outputUsdPer1M: 4.5 }, { modelKey: 'google:gemini-3.1-flash-tts-preview', inputUsdPer1M: 1, outputUsdPer1M: 20 }, - { - modelKey: 'google:gemini-3.1-pro-preview', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'google:gemini-3.1-pro-preview-customtools', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, { modelKey: 'google:gemini-3.5-flash', inputUsdPer1M: 1.5, @@ -1000,12 +933,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.06, cacheWriteUsdPer1M: 0.375, }, - { - modelKey: 'MiniMax:MiniMax-M3', - inputUsdPer1M: 0.3, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.06, - }, { modelKey: 'mistral:codestral-latest', inputUsdPer1M: 0.3, outputUsdPer1M: 0.9 }, { modelKey: 'mistral:devstral-2512', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, { modelKey: 'mistral:devstral-latest', inputUsdPer1M: 0.4, outputUsdPer1M: 2 }, @@ -1334,7 +1261,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 14, cacheReadUsdPer1M: 0.175, }, - { modelKey: 'openai:gpt-5.4', inputUsdPer1M: 2.5, outputUsdPer1M: 15, cacheReadUsdPer1M: 0.25 }, { modelKey: 'openai:gpt-5.4-mini', inputUsdPer1M: 0.75, @@ -1347,37 +1273,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 1.25, cacheReadUsdPer1M: 0.02, }, - { modelKey: 'openai:gpt-5.4-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, - { modelKey: 'openai:gpt-5.5', inputUsdPer1M: 5, outputUsdPer1M: 30, cacheReadUsdPer1M: 0.5 }, - { modelKey: 'openai:gpt-5.5-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, - { - modelKey: 'openai:gpt-5.6', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'openai:gpt-5.6-luna', - inputUsdPer1M: 0.2, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.02, - cacheWriteUsdPer1M: 0.25, - }, - { - modelKey: 'openai:gpt-5.6-sol', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'openai:gpt-5.6-terra', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - cacheWriteUsdPer1M: 2.5, - }, { modelKey: 'openai:gpt-image-2', inputUsdPer1M: 5, outputUsdPer1M: 30, cacheReadUsdPer1M: 1.25 }, { modelKey: 'openai:gpt-realtime-2.1', @@ -1464,20 +1359,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.5, cacheWriteUsdPer1M: 6.25, }, - { - modelKey: 'opencode:claude-sonnet-4', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - cacheWriteUsdPer1M: 3.75, - }, - { - modelKey: 'opencode:claude-sonnet-4-5', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - cacheWriteUsdPer1M: 3.75, - }, { modelKey: 'opencode:claude-sonnet-4-6', inputUsdPer1M: 3, @@ -1516,18 +1397,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 3, cacheReadUsdPer1M: 0.05, }, - { - modelKey: 'opencode:gemini-3-pro', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'opencode:gemini-3.1-pro', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - }, { modelKey: 'opencode:gemini-3.5-flash', inputUsdPer1M: 1.5, @@ -1629,7 +1498,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 14, cacheReadUsdPer1M: 0.175, }, - { modelKey: 'opencode:gpt-5.4', inputUsdPer1M: 2.5, outputUsdPer1M: 15, cacheReadUsdPer1M: 0.25 }, { modelKey: 'opencode:gpt-5.4-mini', inputUsdPer1M: 0.75, @@ -1648,35 +1516,12 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 180, cacheReadUsdPer1M: 30, }, - { modelKey: 'opencode:gpt-5.5', inputUsdPer1M: 5, outputUsdPer1M: 30, cacheReadUsdPer1M: 0.5 }, { modelKey: 'opencode:gpt-5.5-pro', inputUsdPer1M: 30, outputUsdPer1M: 180, cacheReadUsdPer1M: 30, }, - { - modelKey: 'opencode:gpt-5.6-luna', - inputUsdPer1M: 0.2, - outputUsdPer1M: 1.2, - cacheReadUsdPer1M: 0.02, - cacheWriteUsdPer1M: 0.25, - }, - { - modelKey: 'opencode:gpt-5.6-sol', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'opencode:gpt-5.6-terra', - inputUsdPer1M: 2.5, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.25, - cacheWriteUsdPer1M: 3.125, - }, - { modelKey: 'opencode:grok-4.5', inputUsdPer1M: 2, outputUsdPer1M: 6, cacheReadUsdPer1M: 0.5 }, { modelKey: 'opencode:grok-build-0.1', inputUsdPer1M: 1, @@ -1891,38 +1736,18 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.15, cacheWriteUsdPer1M: 0.083333, }, - { - modelKey: 'openrouter:~google/gemini-pro-latest', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - cacheWriteUsdPer1M: 0.375, - }, { modelKey: 'openrouter:~moonshotai/kimi-latest', inputUsdPer1M: 2.9, outputUsdPer1M: 14, cacheReadUsdPer1M: 0.29, }, - { - modelKey: 'openrouter:~openai/gpt-latest', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, { modelKey: 'openrouter:~openai/gpt-mini-latest', inputUsdPer1M: 0.75, outputUsdPer1M: 4.5, cacheReadUsdPer1M: 0.075, }, - { - modelKey: 'openrouter:~x-ai/grok-latest', - inputUsdPer1M: 2, - outputUsdPer1M: 6, - cacheReadUsdPer1M: 0.3, - }, { modelKey: 'openrouter:ai21/jamba-large-1.7', inputUsdPer1M: 2, outputUsdPer1M: 8 }, { modelKey: 'openrouter:aion-labs/aion-2.0', @@ -2001,20 +1826,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.5, cacheWriteUsdPer1M: 6.25, }, - { - modelKey: 'openrouter:anthropic/claude-opus-4.6', - inputUsdPer1M: 5, - outputUsdPer1M: 25, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'openrouter:anthropic/claude-opus-4.7', - inputUsdPer1M: 5, - outputUsdPer1M: 25, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, { modelKey: 'openrouter:anthropic/claude-opus-4.7-fast', inputUsdPer1M: 30, @@ -2050,27 +1861,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 1, cacheWriteUsdPer1M: 12.5, }, - { - modelKey: 'openrouter:anthropic/claude-sonnet-4', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - cacheWriteUsdPer1M: 3.75, - }, - { - modelKey: 'openrouter:anthropic/claude-sonnet-4.5', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - cacheWriteUsdPer1M: 3.75, - }, - { - modelKey: 'openrouter:anthropic/claude-sonnet-4.6', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - cacheWriteUsdPer1M: 3.75, - }, { modelKey: 'openrouter:anthropic/claude-sonnet-5', inputUsdPer1M: 2, @@ -2090,14 +1880,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ inputUsdPer1M: 0.42, outputUsdPer1M: 1.25, }, - { modelKey: 'openrouter:bytedance-seed/seed-1.6', inputUsdPer1M: 0.25, outputUsdPer1M: 2 }, - { - modelKey: 'openrouter:bytedance-seed/seed-1.6-flash', - inputUsdPer1M: 0.075, - outputUsdPer1M: 0.3, - }, - { modelKey: 'openrouter:bytedance-seed/seed-2.0-lite', inputUsdPer1M: 0.25, outputUsdPer1M: 2 }, - { modelKey: 'openrouter:bytedance-seed/seed-2.0-mini', inputUsdPer1M: 0.1, outputUsdPer1M: 0.4 }, { modelKey: 'openrouter:bytedance/ui-tars-1.5-7b', inputUsdPer1M: 0.1, @@ -2196,27 +1978,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.01, cacheWriteUsdPer1M: 0.083333, }, - { - modelKey: 'openrouter:google/gemini-2.5-pro', - inputUsdPer1M: 1.25, - outputUsdPer1M: 10, - cacheReadUsdPer1M: 0.125, - cacheWriteUsdPer1M: 0.375, - }, - { - modelKey: 'openrouter:google/gemini-2.5-pro-preview', - inputUsdPer1M: 1.25, - outputUsdPer1M: 10, - cacheReadUsdPer1M: 0.125, - cacheWriteUsdPer1M: 0.375, - }, - { - modelKey: 'openrouter:google/gemini-2.5-pro-preview-05-06', - inputUsdPer1M: 1.25, - outputUsdPer1M: 10, - cacheReadUsdPer1M: 0.125, - cacheWriteUsdPer1M: 0.375, - }, { modelKey: 'openrouter:google/gemini-3-flash-preview', inputUsdPer1M: 0.5, @@ -2263,20 +2024,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.025, cacheWriteUsdPer1M: 0.083333, }, - { - modelKey: 'openrouter:google/gemini-3.1-pro-preview', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - cacheWriteUsdPer1M: 0.375, - }, - { - modelKey: 'openrouter:google/gemini-3.1-pro-preview-customtools', - inputUsdPer1M: 2, - outputUsdPer1M: 12, - cacheReadUsdPer1M: 0.2, - cacheWriteUsdPer1M: 0.375, - }, { modelKey: 'openrouter:google/gemini-3.5-flash', inputUsdPer1M: 1.5, @@ -2810,12 +2557,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 14, cacheReadUsdPer1M: 0.175, }, - { - modelKey: 'openrouter:openai/gpt-5.4', - inputUsdPer1M: 2.5, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.25, - }, { modelKey: 'openrouter:openai/gpt-5.4-image-2', inputUsdPer1M: 8, @@ -2834,56 +2575,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 1.25, cacheReadUsdPer1M: 0.02, }, - { modelKey: 'openrouter:openai/gpt-5.4-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, - { - modelKey: 'openrouter:openai/gpt-5.5', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - }, - { modelKey: 'openrouter:openai/gpt-5.5-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, - { - modelKey: 'openrouter:openai/gpt-5.6-luna', - inputUsdPer1M: 0.1, - outputUsdPer1M: 0.6, - cacheReadUsdPer1M: 0.01, - cacheWriteUsdPer1M: 0.125, - }, - { - modelKey: 'openrouter:openai/gpt-5.6-luna-pro', - inputUsdPer1M: 0.1, - outputUsdPer1M: 0.6, - cacheReadUsdPer1M: 0.01, - cacheWriteUsdPer1M: 0.125, - }, - { - modelKey: 'openrouter:openai/gpt-5.6-sol', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'openrouter:openai/gpt-5.6-sol-pro', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'openrouter:openai/gpt-5.6-terra', - inputUsdPer1M: 1, - outputUsdPer1M: 6, - cacheReadUsdPer1M: 0.1, - cacheWriteUsdPer1M: 1.25, - }, - { - modelKey: 'openrouter:openai/gpt-5.6-terra-pro', - inputUsdPer1M: 1, - outputUsdPer1M: 6, - cacheReadUsdPer1M: 0.1, - cacheWriteUsdPer1M: 1.25, - }, { modelKey: 'openrouter:openai/gpt-audio', inputUsdPer1M: 2.5, outputUsdPer1M: 10 }, { modelKey: 'openrouter:openai/gpt-audio-mini', inputUsdPer1M: 0.6, outputUsdPer1M: 2.4 }, { @@ -2967,20 +2658,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ inputUsdPer1M: 0.66, outputUsdPer1M: 1, }, - { - modelKey: 'openrouter:qwen/qwen-plus', - inputUsdPer1M: 0.26, - outputUsdPer1M: 0.78, - cacheReadUsdPer1M: 0.052, - cacheWriteUsdPer1M: 0.325, - }, - { modelKey: 'openrouter:qwen/qwen-plus-2025-07-28', inputUsdPer1M: 0.26, outputUsdPer1M: 0.78 }, - { - modelKey: 'openrouter:qwen/qwen-plus-2025-07-28:thinking', - inputUsdPer1M: 0.4, - outputUsdPer1M: 1.2, - cacheWriteUsdPer1M: 0.5, - }, { modelKey: 'openrouter:qwen/qwen2.5-vl-72b-instruct', inputUsdPer1M: 0.25, @@ -3018,34 +2695,12 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ inputUsdPer1M: 0.07, outputUsdPer1M: 0.27, }, - { - modelKey: 'openrouter:qwen/qwen3-coder-flash', - inputUsdPer1M: 0.195, - outputUsdPer1M: 0.975, - cacheReadUsdPer1M: 0.039, - cacheWriteUsdPer1M: 0.24375, - }, { modelKey: 'openrouter:qwen/qwen3-coder-next', inputUsdPer1M: 0.12, outputUsdPer1M: 0.8, cacheReadUsdPer1M: 0.07, }, - { - modelKey: 'openrouter:qwen/qwen3-coder-plus', - inputUsdPer1M: 0.65, - outputUsdPer1M: 3.25, - cacheReadUsdPer1M: 0.13, - cacheWriteUsdPer1M: 0.8125, - }, - { - modelKey: 'openrouter:qwen/qwen3-max', - inputUsdPer1M: 0.78, - outputUsdPer1M: 3.9, - cacheReadUsdPer1M: 0.156, - cacheWriteUsdPer1M: 0.975, - }, - { modelKey: 'openrouter:qwen/qwen3-max-thinking', inputUsdPer1M: 0.78, outputUsdPer1M: 3.9 }, { modelKey: 'openrouter:qwen/qwen3-next-80b-a3b-instruct', inputUsdPer1M: 0.09, @@ -3090,13 +2745,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ { modelKey: 'openrouter:qwen/qwen3.5-397b-a17b', inputUsdPer1M: 0.39, outputUsdPer1M: 2.34 }, { modelKey: 'openrouter:qwen/qwen3.5-9b', inputUsdPer1M: 0.1, outputUsdPer1M: 0.15 }, { modelKey: 'openrouter:qwen/qwen3.5-flash-02-23', inputUsdPer1M: 0.065, outputUsdPer1M: 0.26 }, - { modelKey: 'openrouter:qwen/qwen3.5-plus-02-15', inputUsdPer1M: 0.26, outputUsdPer1M: 1.56 }, - { - modelKey: 'openrouter:qwen/qwen3.5-plus-20260420', - inputUsdPer1M: 0.3, - outputUsdPer1M: 1.8, - cacheWriteUsdPer1M: 0.375, - }, { modelKey: 'openrouter:qwen/qwen3.6-27b', inputUsdPer1M: 0.6, @@ -3109,31 +2757,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 1, cacheReadUsdPer1M: 0.05, }, - { - modelKey: 'openrouter:qwen/qwen3.6-flash', - inputUsdPer1M: 0.1875, - outputUsdPer1M: 1.125, - cacheWriteUsdPer1M: 0.234375, - }, - { - modelKey: 'openrouter:qwen/qwen3.6-max-preview', - inputUsdPer1M: 1.027, - outputUsdPer1M: 6.162, - cacheWriteUsdPer1M: 1.28375, - }, - { - modelKey: 'openrouter:qwen/qwen3.6-plus', - inputUsdPer1M: 0.325, - outputUsdPer1M: 1.95, - cacheWriteUsdPer1M: 0.40625, - }, - { - modelKey: 'openrouter:qwen/qwen3.7-flash', - inputUsdPer1M: 0.03, - outputUsdPer1M: 0.13, - cacheReadUsdPer1M: 0.006, - cacheWriteUsdPer1M: 0.038, - }, { modelKey: 'openrouter:qwen/qwen3.7-max', inputUsdPer1M: 1.475, @@ -3141,13 +2764,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.295, cacheWriteUsdPer1M: 1.84375, }, - { - modelKey: 'openrouter:qwen/qwen3.7-plus', - inputUsdPer1M: 0.32, - outputUsdPer1M: 1.28, - cacheReadUsdPer1M: 0.064, - cacheWriteUsdPer1M: 0.4, - }, { modelKey: 'openrouter:qwen/qwen3.8-max', inputUsdPer1M: 2, @@ -3159,12 +2775,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ { modelKey: 'openrouter:rekaai/reka-flash-3', inputUsdPer1M: 0.1, outputUsdPer1M: 0.2 }, { modelKey: 'openrouter:relace/relace-apply-3', inputUsdPer1M: 0.85, outputUsdPer1M: 1.25 }, { modelKey: 'openrouter:relace/relace-search', inputUsdPer1M: 1, outputUsdPer1M: 3 }, - { - modelKey: 'openrouter:sakana/fugu-ultra', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - }, { modelKey: 'openrouter:sao10k/l3-lunaris-8b', inputUsdPer1M: 0.04, outputUsdPer1M: 0.05 }, { modelKey: 'openrouter:sao10k/l3.1-euryale-70b', inputUsdPer1M: 0.85, outputUsdPer1M: 0.85 }, { modelKey: 'openrouter:sao10k/l3.3-euryale-70b', inputUsdPer1M: 0.65, outputUsdPer1M: 0.75 }, @@ -3226,36 +2836,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.015, }, { modelKey: 'openrouter:writer/palmyra-x5', inputUsdPer1M: 0.6, outputUsdPer1M: 6 }, - { - modelKey: 'openrouter:x-ai/grok-4.20', - inputUsdPer1M: 1.25, - outputUsdPer1M: 2.5, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'openrouter:x-ai/grok-4.20-multi-agent', - inputUsdPer1M: 1.25, - outputUsdPer1M: 2.5, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'openrouter:x-ai/grok-4.3', - inputUsdPer1M: 1.25, - outputUsdPer1M: 2.5, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'openrouter:x-ai/grok-4.5', - inputUsdPer1M: 2, - outputUsdPer1M: 6, - cacheReadUsdPer1M: 0.3, - }, - { - modelKey: 'openrouter:x-ai/grok-build-0.1', - inputUsdPer1M: 1, - outputUsdPer1M: 2, - cacheReadUsdPer1M: 0.2, - }, { modelKey: 'openrouter:xiaomi/mimo-v2.5', inputUsdPer1M: 0.14, @@ -3908,13 +3488,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.3, cacheWriteUsdPer1M: 3.75, }, - { - modelKey: 'vercel:anthropic/claude-sonnet-4.6', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - cacheWriteUsdPer1M: 3.75, - }, { modelKey: 'vercel:anthropic/claude-sonnet-5', inputUsdPer1M: 2, @@ -4003,12 +3576,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 0.4, cacheReadUsdPer1M: 0.01, }, - { - modelKey: 'vercel:google/gemini-2.5-pro', - inputUsdPer1M: 1.25, - outputUsdPer1M: 10, - cacheReadUsdPer1M: 0.125, - }, { modelKey: 'vercel:google/gemini-3-flash', inputUsdPer1M: 0.5, @@ -4699,27 +4266,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 4, cacheReadUsdPer1M: 0.24, }, - { - modelKey: 'xai:grok-4.20-0309-non-reasoning', - inputUsdPer1M: 1.25, - outputUsdPer1M: 2.5, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'xai:grok-4.20-0309-reasoning', - inputUsdPer1M: 1.25, - outputUsdPer1M: 2.5, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'xai:grok-4.20-multi-agent-0309', - inputUsdPer1M: 1.25, - outputUsdPer1M: 2.5, - cacheReadUsdPer1M: 0.2, - }, - { modelKey: 'xai:grok-4.3', inputUsdPer1M: 1.25, outputUsdPer1M: 2.5, cacheReadUsdPer1M: 0.2 }, - { modelKey: 'xai:grok-4.5', inputUsdPer1M: 2, outputUsdPer1M: 6, cacheReadUsdPer1M: 0.3 }, - { modelKey: 'xai:grok-build-0.1', inputUsdPer1M: 1, outputUsdPer1M: 2, cacheReadUsdPer1M: 0.2 }, { modelKey: 'xiaomi:mimo-v2-flash', inputUsdPer1M: 0.14, @@ -5192,40 +4738,12 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ { modelKey: 'zenmux:openai/gpt-5.4-mini', inputUsdPer1M: 0.75, outputUsdPer1M: 4.5 }, { modelKey: 'zenmux:openai/gpt-5.4-nano', inputUsdPer1M: 0.2, outputUsdPer1M: 1.25 }, { modelKey: 'zenmux:openai/gpt-5.4-pro', inputUsdPer1M: 45, outputUsdPer1M: 225 }, - { - modelKey: 'zenmux:openai/gpt-5.5', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - }, { modelKey: 'zenmux:openai/gpt-5.5-instant', inputUsdPer1M: 5, outputUsdPer1M: 30, cacheReadUsdPer1M: 0.5, }, - { modelKey: 'zenmux:openai/gpt-5.5-pro', inputUsdPer1M: 30, outputUsdPer1M: 180 }, - { - modelKey: 'zenmux:openai/gpt-5.6-luna', - inputUsdPer1M: 1, - outputUsdPer1M: 6, - cacheReadUsdPer1M: 0.1, - cacheWriteUsdPer1M: 1.25, - }, - { - modelKey: 'zenmux:openai/gpt-5.6-sol', - inputUsdPer1M: 5, - outputUsdPer1M: 30, - cacheReadUsdPer1M: 0.5, - cacheWriteUsdPer1M: 6.25, - }, - { - modelKey: 'zenmux:openai/gpt-5.6-terra', - inputUsdPer1M: 2.5, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.25, - cacheWriteUsdPer1M: 3.125, - }, { modelKey: 'zenmux:qwen/qwen3-coder-plus', inputUsdPer1M: 1, @@ -5236,13 +4754,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ { modelKey: 'zenmux:qwen/qwen3-max', inputUsdPer1M: 1.2, outputUsdPer1M: 6 }, { modelKey: 'zenmux:qwen/qwen3.5-flash', inputUsdPer1M: 0.1, outputUsdPer1M: 0.4 }, { modelKey: 'zenmux:qwen/qwen3.5-plus', inputUsdPer1M: 0.8, outputUsdPer1M: 4.8 }, - { - modelKey: 'zenmux:qwen/qwen3.6-plus', - inputUsdPer1M: 0.5, - outputUsdPer1M: 3, - cacheReadUsdPer1M: 0.05, - cacheWriteUsdPer1M: 0.625, - }, { modelKey: 'zenmux:qwen/qwen3.7-max', inputUsdPer1M: 2.5, @@ -5250,13 +4761,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ cacheReadUsdPer1M: 0.5, cacheWriteUsdPer1M: 3.125, }, - { - modelKey: 'zenmux:qwen/qwen3.7-plus', - inputUsdPer1M: 0.4, - outputUsdPer1M: 1.6, - cacheReadUsdPer1M: 0.08, - cacheWriteUsdPer1M: 0.5, - }, { modelKey: 'zenmux:sapiens-ai/agnes-1.5-lite', inputUsdPer1M: 0.12, outputUsdPer1M: 0.6 }, { modelKey: 'zenmux:sapiens-ai/agnes-1.5-pro', inputUsdPer1M: 0.16, outputUsdPer1M: 0.8 }, { modelKey: 'zenmux:stepfun/step-3', inputUsdPer1M: 0.21, outputUsdPer1M: 0.57 }, @@ -5326,14 +4830,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ }, { modelKey: 'zenmux:x-ai/grok-4.2-fast', inputUsdPer1M: 3, outputUsdPer1M: 9 }, { modelKey: 'zenmux:x-ai/grok-4.2-fast-non-reasoning', inputUsdPer1M: 3, outputUsdPer1M: 9 }, - { - modelKey: 'zenmux:x-ai/grok-4.3', - inputUsdPer1M: 1.25, - outputUsdPer1M: 2.5, - cacheReadUsdPer1M: 0.2, - cacheWriteUsdPer1M: 0, - }, - { modelKey: 'zenmux:x-ai/grok-4.5', inputUsdPer1M: 2, outputUsdPer1M: 6, cacheReadUsdPer1M: 0.5 }, { modelKey: 'zenmux:x-ai/grok-build-0.1', inputUsdPer1M: 1, @@ -5358,24 +4854,6 @@ export const GENERATED_MODEL_PRICING: readonly PricingConfig[] = [ outputUsdPer1M: 2, cacheReadUsdPer1M: 0.08, }, - { - modelKey: 'zenmux:xiaomi/mimo-v2-pro', - inputUsdPer1M: 1, - outputUsdPer1M: 3, - cacheReadUsdPer1M: 0.2, - }, - { - modelKey: 'zenmux:xiaomi/mimo-v2.5', - inputUsdPer1M: 0.4, - outputUsdPer1M: 2, - cacheReadUsdPer1M: 0.08, - }, - { - modelKey: 'zenmux:xiaomi/mimo-v2.5-pro', - inputUsdPer1M: 1, - outputUsdPer1M: 3, - cacheReadUsdPer1M: 0.2, - }, { modelKey: 'zenmux:z-ai/glm-4.5', inputUsdPer1M: 0.35, diff --git a/scripts/sync-model-metadata.mjs b/scripts/sync-model-metadata.mjs index b0b0782824b..0590a74f3b0 100644 --- a/scripts/sync-model-metadata.mjs +++ b/scripts/sync-model-metadata.mjs @@ -302,6 +302,16 @@ export function toPricing(providerType, modelId, model) { if (!cost || typeof cost !== 'object' || Array.isArray(cost)) { throw new Error(`models.dev model ${providerType}/${modelId} has an unsupported cost shape`); } + // PricingConfig and computeCost() currently represent one flat rate. Do + // not publish a base rate for a model whose actual price depends on input + // volume or an explicit tier table; that would systematically undercharge + // long-context requests until the runtime can select a tier by usage. + if ( + Object.prototype.hasOwnProperty.call(cost, 'context_over_200k') || + Object.prototype.hasOwnProperty.call(cost, 'tiers') + ) { + return undefined; + } const inputUsdPer1M = priceNumber(providerType, modelId, cost.input, 'input'); const outputUsdPer1M = priceNumber(providerType, modelId, cost.output, 'output'); const cacheReadUsdPer1M = optionalPriceNumber( diff --git a/scripts/sync-model-metadata.test.mjs b/scripts/sync-model-metadata.test.mjs index e7e58298f8b..26f32a5770d 100644 --- a/scripts/sync-model-metadata.test.mjs +++ b/scripts/sync-model-metadata.test.mjs @@ -52,26 +52,13 @@ test('models.dev facts preserve the extended metadata contract', () => { ); }); -test('models.dev pricing keeps base rates and ignores tiered rates', () => { - assert.deepEqual( - toPricing('openai', 'gpt-test', { - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 30 }, - tiers: [{ input: 6, output: 30 }], - }, - }), - { - modelKey: 'openai:gpt-test', - inputUsdPer1M: 3, - outputUsdPer1M: 15, - cacheReadUsdPer1M: 0.3, - cacheWriteUsdPer1M: 3.75, - }, - ); +test('models.dev pricing skips models with tiered rates until runtime supports tiers', () => { + for (const cost of [ + { input: 3, output: 15, context_over_200k: { input: 6, output: 30 } }, + { input: 3, output: 15, tiers: [{ input: 6, output: 30 }] }, + ]) { + assert.equal(toPricing('openai', 'gpt-test', { cost }), undefined); + } }); test('subscription and plan access paths do not inherit public API pricing', () => { @@ -175,7 +162,18 @@ test('main() syncs only the mapped providers into the generated snapshot', async limit: { context: 1_000_000, input: 900_000, output: 64_000 }, reasoning: true, tool_call: true, - cost: { input: 1.25, output: 10 }, + cost: { + input: 1.25, + output: 10, + context_over_200k: { input: 2.5, output: 15 }, + }, + }; + catalog.google.models['gemini-2.5-flash'] = { + name: 'Gemini 2.5 Flash', + limit: { context: 1_000_000, input: 900_000, output: 64_000 }, + reasoning: true, + tool_call: true, + cost: { input: 0.3, output: 2.5 }, }; catalog['unmapped-provider'] = { id: 'unmapped-provider', @@ -212,7 +210,8 @@ test('main() syncs only the mapped providers into the generated snapshot', async assert.match(out, /"kimi-for-coding": \{"api":"https:\/\/api\.kimi\.com\/coding\/v1"\}/); assert.doesNotMatch(pricing, /"modelKey":"kimi-coding-plan:k3"/); assert.doesNotMatch(pricing, /"modelKey":"github-copilot:gpt-5\.5"/); - assert.match(pricing, /"modelKey":"google:gemini-2\.5-pro","inputUsdPer1M":1\.25/); + assert.doesNotMatch(pricing, /"modelKey":"google:gemini-2\.5-pro"/); + assert.match(pricing, /"modelKey":"google:gemini-2\.5-flash","inputUsdPer1M":0\.3/); assert.doesNotMatch(pricing, /"modelKey":"gemini-cli:gemini-2\.5-pro"/); // The unmapped provider must appear only in the directory (the complete // upstream catalog), never as a snapshot segment or provider fact.